ネットワークインターフェイスの設定に関するベストプラクティス - Amazon Elastic Compute Cloud

ネットワークインターフェイスの設定に関するベストプラクティス

  • ネットワークインターフェイスは、インスタンスの実行中、インスタンスの停止中、インスタンスの起動中にインスタンスにアタッチできます (それぞれ、ホットアタッチ、ウォームアタッチ、コールドアタッチと呼ばれています)。

  • セカンダリネットワークインターフェイスは、インスタンスの実行中または停止中にデタッチできます。ただし、プライマリネットワークインターフェイスをデタッチすることはできません。

  • インスタンスが同じアベイラビリティーゾーンと VPC にあるが、異なるサブネットにある場合、ネットワークインターフェースを 1 つのインスタンスから別のインスタンスに移動できます。

  • CLI、API、または SDK を使用してインスタンスを起動する場合、プライマリネットワークインターフェイスおよび追加のネットワークインターフェイスを指定できます。

  • 複数のネットワークインターフェイスを使用して Amazon Linux または Windows Server インスタンスを起動すると、インスタンスのオペレーティングシステム上でインターフェイス、プライベート IPv4 アドレス、ルートテーブルが自動的に設定されます。

  • 追加ネットワークインターフェイスをウォームアタッチまたはホットアタッチする際、場合によっては、手動で 2 つ目のインターフェイスを起動し、プライベート IPv4 アドレスを設定し、ルートテーブルを適宜変更する必要が生じます。Amazon Linux または Windows Server を実行するインスタンスは、ウォームアタッチまたはホットアタッチを自動的に認識し、それらのインスタンス自体を設定します。

  • 別のネットワークインターフェイスをインスタンスにアタッチすること (NIC チーミング設定など) で、デュアルホーム接続インスタンスに対するネットワーク帯域幅を、増加または倍増させることはできません。

  • 同じサブネットから複数のネットワークインターフェイスをインスタンスにアタッチすると、非対称ルーティングなどのネットワーク問題が発生する場合があります。可能であれば、代わりにプライマリネットワークインターフェイス上でセカンダリプライベート IPv4 アドレスを使用します。

ec2-net-utils を使用したネットワークインターフェイスの設定

Amazon Linux AMI には、AWS によって ec2-net-utils という、AWS がインストールした追加のスクリプトが含まれることがあります。これらのスクリプトはオプションで、ネットワークインターフェイスの設定を自動化します。これらのスクリプトは Amazon Linux でのみ使用できます。

パッケージをまだインストールしていない場合は、以下のコマンドを使用して Amazon Linux にインストールします。インストール済みで、利用可能な更新がある場合は、更新します。

$ 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-ethN)。また、ルート設定ファイルも生成します (/etc/sysconfig/network-scripts/route-ethN)。

DHCP スクリプト

ネットワークインターフェイスが新しい DHCP リースを受け取るたびに、このスクリプトがインスタンスメタデータに対し、Elastic IP アドレスを求めるクエリを実行します。これにより、各 Elastic IP アドレスごとに、そのアドレスからのアウトバンドトラフィックが正しいネットワークインターフェイスを使用するよう、ルーティングポリシーデータベースにルールが追加されます。また、各プライベート IP アドレスを、セカンダリアドレスとしてネットワークインターフェイスに追加します。

ec2ifup ethN

標準の ifup の機能を拡張します。このスクリプトが設定ファイル ifcfg-ethN および route-ethN を書き換えた後、ifup を実行します。

ec2ifdown ethN

標準の ifdown の機能を拡張します。このスクリプトがルーティングポリシーデータベースからネットワークインターフェイスのルールをすべて削除した後、ifdown を実行します。

ec2ifscan

まだ設定されていないネットワークインターフェイスを探して、それらを設定します。

このスクリプトは、ec2-net-utils の初期リリースでは提供されていません。

ec2-net-utils によって生成された設定ファイルをリストするには、以下のコマンドを使用します。

$ ls -l /etc/sysconfig/network-scripts/*-eth?

インスタンスごとのオートメーションを無効にするには、対応する EC2SYNC=noifcfg-ethN ファイルに を追加します。たとえば、eth1 インターフェイスの自動化を無効にするには、以下のコマンドを使用します。

$ sed -i -e 's/^EC2SYNC=yes/EC2SYNC=no/' /etc/sysconfig/network-scripts/ifcfg-eth1

オートメーションを完全に無効にするには、次のコマンドを使用してパッケージを削除できます。

$ yum remove ec2-net-utils