ネットワークインターフェイスの設定に関するベストプラクティス
-
ネットワークインターフェイスは、インスタンスの実行中、インスタンスの停止中、インスタンスの起動中にインスタンスにアタッチできます (それぞれ、ホットアタッチ、ウォームアタッチ、コールドアタッチと呼ばれています)。
-
セカンダリネットワークインターフェイスは、インスタンスの実行中または停止中にデタッチできます。ただし、プライマリネットワークインターフェイスをデタッチすることはできません。
-
インスタンスが同じアベイラビリティーゾーンと VPC にあるが異なるサブネットにある場合、セカンダリネットワークインターフェイスを 1 つのインスタンスから別のインスタンスに移動できます。
-
CLI、API、または SDK を使用してインスタンスを起動する場合、プライマリネットワークインターフェイスおよび追加のネットワークインターフェイスを指定できます。
-
複数のネットワークインターフェイスを使用して Amazon Linux または Windows Server インスタンスを起動すると、インスタンスのオペレーティングシステム上でインターフェイス、プライベート IPv4 アドレス、ルートテーブルが自動的に設定されます。
-
追加ネットワークインターフェイスをウォームアタッチまたはホットアタッチする際、場合によっては、手動で 2 つ目のインターフェイスを起動し、プライベート IPv4 アドレスを設定し、ルートテーブルを適宜変更する必要が生じます。Amazon Linux または Windows Server を実行するインスタンスは、ウォームアタッチまたはホットアタッチを自動的に認識し、それらのインスタンス自体を設定します。
-
別のネットワークインターフェイスをインスタンスにアタッチすること (NIC チーミング設定など) で、デュアルホーム接続インスタンスに対するネットワーク帯域幅を、増加または倍増させることはできません。
-
同じサブネットから複数のネットワークインターフェイスをインスタンスにアタッチすると、非対称ルーティングなどのネットワーク問題が発生する場合があります。可能であれば、代わりにプライマリネットワークインターフェイス上でセカンダリプライベート IPv4 アドレスを使用します。
-
Windows インスタンス – 複数のネットワークインターフェイスを使用する場合は、静的ルーティングを使用するようにそのネットワークインターフェイスを設定する必要があります。
Amazon Linux 2 向けに ec2-net-utils を使用してネットワークインターフェイスを設定する
注記
AL2023 の場合、amazon-ec2-net-utils
パッケージはインターフェイス固有の設定を /run/systemd/network
ディレクトリに生成します。詳細については、「 Amazon Linux 2023 ユーザーガイド」の「ネットワーキングサービス」を参照してください。
Amazon Linux 2 AMI には、ec2-net-utils という、AWS がインストールした追加のスクリプトが含まれることがあります。これらのスクリプトはオプションで、ネットワークインターフェイスの設定を自動化します。これらのスクリプトは Amazon Linux 2 でのみ使用できます。
パッケージをまだインストールしていない場合は、以下のコマンドを使用して Amazon Linux 2 にインストールします。インストール済みの場合、追加の更新があれば、更新します。
$
yum install ec2-net-utils
ec2-net-utils には、以下のコンポーネントが含まれます。
- udev ルール (
/etc/udev/rules.d
) -
実行中のインスタンスにネットワークインターフェイスがアタッチ、デタッチ、または再アタッチされたときに、そのネットワークインターフェイスを特定し、ホットプラグスクリプトが実行されることを確認します (
53-ec2-network-interfaces.rules
)。MAC アドレスをデバイス名にマッピングします (75-persistent-net-generator.rules
を生成する70-persistent-net.rules
)。 - ホットプラグスクリプト
-
DHCP での使用に適したインターフェイス設定ファイルを生成します (
/etc/sysconfig/network-scripts/ifcfg-eth
N)。また、ルート設定ファイルも生成します (/etc/sysconfig/network-scripts/route-eth
N)。 - DHCP スクリプト
-
ネットワークインターフェイスが新しい DHCP リースを受け取るたびに、このスクリプトがインスタンスメタデータに対し、Elastic IP アドレスを求めるクエリを実行します。これにより、各 Elastic IP アドレスごとに、そのアドレスからのアウトバンドトラフィックが正しいネットワークインターフェイスを使用するよう、ルーティングポリシーデータベースにルールが追加されます。また、各プライベート IP アドレスを、セカンダリアドレスとしてネットワークインターフェイスに追加します。
- ec2ifup ethN (
/usr/sbin/
) -
標準の ifup の機能を拡張します。このスクリプトが設定ファイル
ifcfg-eth
N およびroute-eth
N を書き換えた後、ifup を実行します。 - ec2ifdown ethN (
/usr/sbin/
) -
標準の ifdown の機能を拡張します。このスクリプトがルーティングポリシーデータベースからネットワークインターフェイスのルールをすべて削除した後、ifdown を実行します。
- ec2ifscan (
/usr/sbin/
) -
まだ設定されていないネットワークインターフェイスを探して、それらを設定します。
このスクリプトは、ec2-net-utils の初期リリースでは提供されていません。
ec2-net-utils によって生成された設定ファイルをリストするには、以下のコマンドを使用します。
$
ls -l /etc/sysconfig/network-scripts/*-eth?
オートメーションを無効にするには、対応する ifcfg-eth
N ファイルに EC2SYNC=no
を追加します。例えば、eth1 インターフェイスの自動化を無効にするには、以下のコマンドを使用します。
$
sed -i -e 's/^EC2SYNC=yes/EC2SYNC=no/' /etc/sysconfig/network-scripts/ifcfg-eth1
オートメーションを完全に無効にするには、次のコマンドを使用してパッケージを削除できます。
$
yum remove ec2-net-utils