各 ECS インスタンスには、1 つのプライマリ ENI (Elastic Network Interface) があります。高可用性やトラフィックの分離のために、1 つ以上のセカンダリ ENI をアタッチできます。
ENI の作成
コンソール
ECS コンソールで、[ENI] ページに移動し、[ENI の作成] をクリックします。
次の主要なパラメーターを設定し、その他のパラメーターはデフォルト設定のままにします:
VPC と vSwitch: ENI が存在するネットワークを指定します。
ENI は、アタッチ先のインスタンスと同じ VPC (Virtual Private Cloud) および vSwitch に存在する必要があります。
セキュリティグループ: 1 つ以上のセキュリティグループを関連付けて、インバウンドおよびアウトバウンドトラフィックを制御できます。
API
CreateNetworkInterface 操作を呼び出して ENI を作成します。
ENI を ECS インスタンスにアタッチする
インスタンスを作成するときに、既存の ENI をプライマリ ENI またはセカンダリ ENI として指定できます。インスタンスは、IP アドレス、ルート、MAC アドレス、関連付けられたセキュリティグループなど、ENI からネットワーク構成を継承します。
既存のインスタンスに ENI をアタッチする場合、それはセカンダリ ENI のみです。これにより、トラフィックの分離や IP アドレスの追加などの目的で、インスタンスのネットワーク機能が拡張されます。
インスタンスにアタッチできる ENI の数は、インスタンスファミリーによって異なります。
前提条件
ENI とインスタンスは同じ VPC と vSwitch に存在する必要があります。
一部のインスタンスタイプでは、ENI をアタッチする前にインスタンスを停止する必要があります。
インスタンス作成時に ENI をアタッチする
コンソール
インスタンス作成中に既存のセキュリティグループを選択するか、新しいセキュリティグループを作成すると、システムは自動的に新しいプライマリ ENI を作成します。このシナリオでは、既存の ENI をプライマリ ENI としてアタッチすることはできません。
ECS コンソールで [カスタム起動] ページに移動します。
[ネットワークとゾーン] を選択した後、[ネットワークとセキュリティグループ] セクションに移動します。[Elastic Network Interface] セクションで、[プライマリ ENI] または [セカンダリ ENI] に [既存の ENI] を選択します。

API
RunInstances を呼び出します。NetworkInterface パラメーターで、NetworkInterfaceId を使用して ENI (Elastic Network Interface) を指定し、InstanceType を使用してプライマリまたはセカンダリ ENI として定義します。
既存のインスタンスへのアタッチ
コンソール
ECS コンソールで [インスタンス] ページに移動し、ターゲットインスタンスの ID をクリックして詳細ページを開きます。
インスタンス詳細ページで、[ENI] タブをクリックし、[セカンダリ ENI のアタッチ] をクリックします。
ターゲット ENI を選択し、[OK] をクリックします。
API
AttachNetworkInterface 操作を呼び出して、既存のインスタンスに ENI をアタッチします。
インスタンス内で ENI が有効になるように設定する
プライマリ ENI は通常、インスタンスの作成後に自動的にアクティブ化され、通常は設定は不要です。1 つ以上のセカンダリ ENI を ECS インスタンスにアタッチした後、インスタンス内で ENI がアクティブであることを確認する必要があります。
ステップ 1: インスタンス内で ENI がアクティブであることを確認する
セカンダリ ENI がインスタンス内で正しく設定されていない場合、正常に通信できません。次のステップに従って、ENI がアクティブであることを確認してください。
Linux インスタンス
オペレーティングシステムの例: Alibaba Cloud Linux 3.2。
Linux インスタンスにリモート接続します。
詳細については、「Workbench の SSH ツールを使用して Linux インスタンスにログオンする」をご参照ください。
次のコマンドを実行して、インスタンスの ENI 情報を表示および確認します。
ip a出力には、現在のインスタンスの ENI 情報が表示されます:
ENI 識別子: eth0, eth1。この例では、インスタンスにはプライマリ ENI (eth0) とセカンダリ ENI (eth1) の 2 つの ENI があります。
ENI ステータス: state UP。これは、ENI が通常状態であり、インスタンス内でアクティブであることを示します。
重要次の図に示すように state DOWN が表示された場合、ENI の読み込みに失敗し、使用できません。ENI が通常状態であることを確認するには、Linux オペレーティングシステムが ENI を認識するように設定する必要があります。

ENI のプライマリプライベート IP アドレス: ENI が通常状態になると、各 ENI のプライマリプライベート IP アドレスを表示できます。詳細については、「プライマリプライベート IP アドレス」をご参照ください。
セカンダリプライベート IP アドレスが ENI に割り当てられているが、オペレーティングシステムによって認識されない場合は、再設定できます。詳細については、「オペレーティングシステムがセカンダリプライベート IP アドレスを認識するように設定する」をご参照ください。
次のコマンドを実行して、ENI のルーティング情報を表示します。
route -n
出力は、システムが通常、セカンダリ ENI (eth1) に 2 つのルートを設定することを示しています:
宛先が 192.168.xx.xx のルート: このルートはサブネットに固有であり、ローカルホストが同じサブネット内の他のホストを直接識別して通信できるようにします。
宛先が 0.0.0.0 のルート: これはデフォルトルートです。データパケットの宛先アドレスが、特定のサブネットやホストのルートなど、ルートテーブル内のより具体的なルートと一致しない場合、システムはデフォルトルートを選択します。その後、パケットは
Ifaceで指定されたネットワークインターフェースを介して、Gatewayで指定されたネクストホップアドレスに送信されます。重要複数のデフォルトルートが存在する場合、ルートの優先度はメトリック値によって決まります。メトリック値が小さいほど、優先度が高くなります。
トラフィックパスを正確に制御し、トラフィックが受信したのと同じ ENI を介して返されるようにする必要がある場合は、ENI のポリシーベースルートを設定できます。
Ubuntu 16 などの一部の古いオペレーティングシステムでは、セカンダリ ENI のデフォルトルートが自動的に設定されない場合があります。ルーティング情報は次の図のようになります。これにより、ENI が正しく機能しなくなる可能性があります。新しいオペレーティングシステムのディストリビューションを使用するか、自分でルートを設定できます。詳細については、「ENI のデフォルトルートを設定する」をご参照ください。

Windows インスタンス
オペレーティングシステムの例: Windows Server 2022。
Windows インスタンスにリモート接続します。
詳細については、「Workbench の RDP ツールを使用して Windows インスタンスにログオンする」をご参照ください。
ネットワークと共有センターを開きます。
[アダプターの設定の変更] をクリックします。
この例では、インスタンスに 2 つの ENI (プライマリ 1 つとセカンダリ 1 つ) がアタッチされています。次の情報が表示された場合、ENI はインスタンス内でアクティブであり、これ以上の設定は必要ありません。

他の理由でセカンダリ ENI が認識されない場合は、次の情報が表示されることがあります。詳細については、「Windows インスタンスでの ENI 設定の失敗のトラブルシューティング」をご参照ください。

ENI のステータスと詳細を表示します。
ENI 名をダブルクリックしてステータスを表示します。
プライマリ ENI [イーサネット] を例にとります:

[詳細] をクリックして ENI のプロパティを表示します。
表示されるダイアログボックスで、ENI のプライマリプライベート IPv4 アドレス、サブネットマスク、デフォルトゲートウェイ、およびその他の情報を表示できます:

[コマンドプロンプト] を開きます。
Win+R キーボードショートカットを使用して [ファイル名を指定して実行] ダイアログボックスを開きます。cmd と入力し、[OK] をクリックします。
次のコマンドを実行して、ENI のルーティング情報を表示します。

ステップ 2: Linux OS が ENI を認識するように設定する
ENI がアクティブでない場合は、次の 2 つの方法のいずれかを使用して、システム内で ENI を設定してアクティブ化できます。
ほとんどの Windows オペレーティングシステムは ENI を自動的に認識できます。ENI が認識されない場合は、「Windows インスタンスでの ENI 設定の失敗のトラブルシューティング」をご参照ください。
方法 1: multi-nic-util ツールを使用した自動設定
multi-nic-util ツールは、次のオペレーティングシステムにのみ適用可能です: Alibaba Cloud Linux 2、CentOS 6 (6.8 以降)、CentOS 7 (7.3 以降)、および RedHat。
Docker またはその他のコンテナー化された環境では multi-nic-util ツールを使用しないでください。
multi-nic-util ツールを使用すると、ECS インスタンスの既存のネットワーク構成が上書きされます。このリスクに注意してください。
前述の理由でこのツールを使用できない場合は、「方法 2: ネットワーク設定ファイルを使用した手動設定」をご参照ください。
次のコマンドを実行して、multi-nic-util ツールをダウンロードしてインストールします。インターネットアクセスが必要です。
wget https://image-offline.oss-cn-hangzhou.aliyuncs.com/multi-nic-util/multi-nic-util-0.6.tgz && \ tar -zxvf multi-nic-util-0.6.tgz && \ cd multi-nic-util-0.6 && \ bash install.sh次のコマンドを実行して ENI サービスを再起動します。
sudo systemctl restart eni.service再度インスタンス内の ENI を表示して、そのステータスが通常であることを確認します。
方法 2: ネットワーク設定ファイルを使用した手動設定
ネットワーク設定ファイルは、ネットワーク管理方法とツールに基づいて、Linux ディストリビューションとバージョンによって異なります。
編集する前に、元のネットワーク設定ファイルをバックアップしてください。
ネットワーク設定ファイルを変更した後に Workbench を使用してインスタンスに接続できない場合は、VNC を使用してインスタンスに接続して変更を比較し、ファイルを修正できます。
この例では、ネットワーク管理プロトコルはデフォルトで動的ホスト構成プロトコル (DHCP) として設定されています。ネットワークインターフェースは自動的にプライマリプライベート IP アドレスを取得します。静的 IP アドレスを使用してネットワークインターフェースを設定する場合は、「オペレーティングシステムがセカンダリプライベート IP アドレスを認識するように設定する」をご参照ください。
ネットワーク設定ファイル内の IP アドレス、MAC アドレス、ゲートウェイ、およびその他の情報が実際の設定と一致していることを確認してください。ネットワーク設定が正しくないと、インスタンスの通信障害が発生する可能性があります。
ENI をデタッチまたはアタッチした後は、ネットワーク接続の問題や設定の競合を防ぐために、ネットワーク設定ファイルに変更が反映されていることを確認してください。
ECS インスタンスにリモート接続します。
詳細については、「Workbench の SSH ツールを使用して Linux インスタンスにログオンする」をご参照ください。
Linux ディストリビューションとバージョンに基づいて、ENI のネットワーク設定ファイルを作成および編集します。
プライマリ ENI の設定ファイルは通常、自動的に生成されます。次の例は、セカンダリ ENI のものです。
RHEL/CentOS ファミリー
適用可能なオペレーティングシステム: Alibaba Cloud Linux 2/3、CentOS 6/7/8、Red Hat 6/7/8/9、Anolis 7/8、Fedora 33/34/35 など。
ネットワークインターフェース設定ファイル: /etc/sysconfig/network-scripts/ifcfg-*
各ネットワークインターフェースには、ifcfg-eth0、ifcfg-eth1、ifcfg-eth2 などの対応する設定ファイルがあります。
設定例: 次のコマンドを実行して、インスタンスにアタッチされているセカンダリ ENI (eth1) の設定ファイルを作成および編集します。
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1DEVICE=eth1 TYPE=Ethernet BOOTPROTO=dhcp ONBOOT=yes DEFROUTE=noDEVICE: eth1 や eth2 などのネットワークインターフェース識別子を指定します。
TYPE: ネットワークインターフェースのタイプ。
Ethernetはイーサネットインターフェースを示します。BOOTPROTO: IP アドレスを取得する方法を設定します。
dhcpに設定すると、インターフェースは DHCP サーバーから IP アドレスを取得します。staticに変更した場合は、静的 IP アドレス、サブネットマスク、およびその他の情報を手動で設定する必要があります。ONBOOT: システム起動時にこのネットワークインターフェースをアクティブにするかどうかを制御します。
yesの値は、ネットワークインターフェースがシステム起動時に自動的に有効になることを意味します。値がnoの場合、手動で起動しない限り自動的に有効になりません。DEFROUTE: 現在のネットワークインターフェースをデフォルトルートの出口として設定するかどうかを指定します。
プライマリ ENI (eth0) の場合、このパラメーターを設定する必要はありません。システムは通常、プライマリ ENI に対して最も優先度の高いデフォルトルートを自動的に生成します。
セカンダリ ENI の起動時に ECS インスタンスのアクティブなデフォルトルートを変更しないようにするには、eth1 をデフォルトルートとして設定しないでください。設定すると、eth1 が eth0 を置き換えてデフォルトルートの出口となり、プライマリ ENI の通信障害を引き起こす可能性があります。マルチ ENI 環境では、ENI のポリシーベースルートを設定して、トラフィック転送パスを制御できます。
Ubuntu 18 以降
Netplan は、Ubuntu 18.04 LTS 以降の Ubuntu でデフォルトのネットワーク設定方法となっている、より新しいネットワーク設定フレームワークです。
適用可能なオペレーティングシステム: Ubuntu 18/20/22/24
ネットワークインターフェース設定ファイル: /etc/netplan/*.yaml
システムは /etc/netplan フォルダ内の YAML ファイルを認識します。各ネットワークインターフェースに個別の YAML ファイルを設定できます。
プライマリ ENI のデフォルトのネットワーク設定ファイルである 50-cloud-init.yaml は、システム起動時に cloud-init によって自動的に生成されます。
設定例: 次のコマンドを実行して、インスタンスにアタッチされているセカンダリ ENI (eth1) の設定ファイルを作成および編集します。
sudo vi /etc/netplan/eth1-netcfg.yaml説明プライマリ ENI のネットワーク設定ファイルはデフォルトで既に存在します。YAML ファイルのフォーマットが正しいことを確認するために、
cp 50-cloud-init.yaml ethX-netcfg.yamlを実行してセカンダリ ENI の設定ファイルを生成し、以下に示すように情報を変更できます。network: version: 2 ethernets: eth1: dhcp4: true match: macaddress: 00:16:3e:xx:xx:xx set-name: eth1dhcp4: このインターフェースで IPv4 の DHCP を有効にするかどうかを指定します。有効な値は true と false です。
match: MAC アドレスなどのネットワークインターフェースのプロパティと一致させます。
コンソールで、または API 操作を呼び出すことで、ENI の MAC アドレスを表示できます。
従来の Debian ベースの Linux (初期の Ubuntu)
適用可能なオペレーティングシステム: Debian、Ubuntu 14/16 などの初期バージョンの Ubuntu、Debian 8/9/10 など。
ネットワークインターフェース設定ファイル: /etc/network/interfaces
このファイルを編集することで、ユーザーはネットワークインターフェースの IP アドレス、サブネットマスク、ゲートウェイ、DNS、およびその他の情報を手動で設定し、静的 IP や DHCP などのモードを設定できます。
Systemd とそのネットワーク管理ツールの普及に伴い、この方法は Ubuntu の新しいバージョンやその他の一部のディストリビューションでは徐々に置き換えられています。
主な設定項目: このファイルには、インターフェースタイプ、IP アドレス、サブネットマスク、ゲートウェイ、DNS 情報などの設定が含まれています。
設定例: 次のコマンドを実行して、ネットワーク設定ファイルを編集します。
sudo vi /etc/network/interfaces説明プライマリ ENI (eth0) とセカンダリ ENI (eth1) の設定は同じファイルで管理されます。プライマリ ENI の情報を省略しないように注意してください。
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth1 # 新しく設定されたネットワークインターフェースを示します。 iface eth1 inet dhcpauto <interface>: システム起動時にネットワークインターフェースを自動的にアクティブ化します。
iface <interface> inet <method>: ネットワークインターフェースの設定方法を定義します。
inet: IPv4 関連の設定が定義されていることを示します。
method: IP アドレスを取得する方法を設定します。
dhcpに設定すると、インターフェースは DHCP を使用して IP アドレス、サブネットマスク、デフォルトゲートウェイ、およびその他の必要なネットワークパラメーターを自動的に取得します。staticに変更した場合は、静的 IP アドレス、サブネットマスク、およびその他の情報を手動で設定する必要があります。
SLES ファミリー
適用可能なオペレーティングシステム: SUSE Linux 11/12/15、OpenSUSE 15 など。
ネットワークインターフェース設定ファイル: /etc/sysconfig/network/ifcfg-*
各ネットワークインターフェースには、ifcfg-eth0、ifcfg-eth1、ifcfg-eth2 などの対応する設定ファイルがあります。
設定例: 次のコマンドを実行して、インスタンスにアタッチされているセカンダリ ENI (eth1) の設定ファイルを作成および編集します。
sudo vi /etc/sysconfig/network/ifcfg-eth1BOOTPROTO='dhcp' STARTMODE='auto'BOOTPROTO: IP アドレスの取得方法を指定します。
dhcpは、インターフェースがネットワーク上の DHCP サーバーから IP アドレスおよびその他の関連するネットワーク設定情報 (サブネットマスク、デフォルトゲートウェイ、DNS サーバーアドレスなど) を自動的に取得することを意味します。STARTMODE: システム起動時にこのネットワークインターフェースがどのように処理されるかを定義します。
'auto'に設定すると、システムは起動時に利用可能であると検出された場合にこのネットワークインターフェースをアクティブ化しようとします。
次のコマンドを実行して、ネットワークサービスを再起動します。
ステップ 1: インスタンス内で ENI がアクティブであることを確認するに戻り、ENI が通常状態であることを確認します。
プライベートネットワーク通信用のプライベート IP アドレスの割り当て
ENI が特定の VPC と vSwitch に割り当てられると、デフォルトでサブネットからプライマリプライベート IPv4 アドレスが割り当てられます。ECS インスタンスはこのプライベート IP アドレスを内部通信に使用します。
複数アプリケーションのデプロイ、フェールオーバー、ロードバランシングなどのシナリオで複数の IP アドレスが必要な場合は、サブネットから複数のプライベート IP アドレスを ENI に割り当てることができます。詳細については、「ENI にセカンダリプライベート IP アドレスを割り当てる」をご参照ください。
インターネット通信用のパブリック IP アドレスのアタッチ
単一のプライマリ ENI シナリオ: インターネット通信のために、インスタンス (プライマリ ENI) に固定パブリック IP アドレスを割り当てることができます。詳細については、「固定パブリック IP アドレス」をご参照ください。
複数の ENI または柔軟な管理シナリオ: インターネット通信のために、EIP (Elastic IP Address) を ENI に関連付けることができます。固定パブリック IP アドレスと比較して、EIP は柔軟に関連付けおよび関連付け解除ができます。詳細については、「EIP を ENI に関連付ける」をご参照ください。
また、1 つ以上の ENI を ECS インスタンスにアタッチし、ENI 上の複数のプライベート IP アドレスに EIP を関連付けることもできます。これにより、ECS インスタンスは複数のパブリック IP アドレスを持つことができます。詳細については、「一般モードで複数の EIP を ECS インスタンスに関連付ける」をご参照ください。
重要セカンダリ ENI に EIP を関連付けた後、ENI がインスタンスにアタッチされ、インスタンス内でアクティブであることを確認する必要があります。これにより、EIP が使用可能になります。詳細については、「インスタンス内で ENI が有効になるように設定する」をご参照ください。
セカンダリ ENI を EIP または NAT Gateway と共に使用する場合、アウトバウンドトラフィックがパブリック IP アドレスで設定された ENI を通過しないことがあります。これにより、EIP 通信が失敗する可能性があります。この場合、ポリシーベースルートを設定して、トラフィックが受信したのと同じ ENI を介して強制的に返されるようにすることができます。これにより、インバウンドパスとアウトバウンドパスの一貫性が確保されます。詳細については、「ENI のポリシーベースルートを設定する」をご参照ください。
ENI とルートが正しく設定された後でもパブリック IP アドレスに ping できない場合は、セキュリティグループとファイアウォールの設定を確認する必要があるかもしれません。詳細については、「ECS インスタンスのパブリック IP アドレスに ping できない問題のトラブルシューティング」をご参照ください。
ENI とセキュリティグループの関連付け
ENI をセキュリティグループに関連付けることで、ネットワークレイヤーのセキュリティ制御が提供されます。
ECS インスタンスに関連付けられたセキュリティグループのルールは、インスタンスのプライマリ ENI に適用されます。プライマリ ENI は、インスタンスと同じセキュリティグループに追加されます。プライマリ ENI に関連付けられたセキュリティグループを個別に変更することはできません。ECS インスタンスのセキュリティグループを変更することで、プライマリ ENI のセキュリティグループを変更できます。詳細については、「インスタンスのセキュリティグループへの追加、削除、または変更」をご参照ください。
ECS インスタンスにアタッチされたセカンダリ ENI は、同じ VPC の同じゾーンにあるセキュリティグループに関連付けることができます。このセキュリティグループは、インスタンスが属するものとは異なる場合があります。ENI を作成するときに ENI に関連付けるセキュリティグループを指定するか、作成後にENI に関連付けられたセキュリティグループを変更することができます。
複数のセカンダリ IPv4 または IPv6 アドレスを ENI に割り当てた場合、これらのアドレスも ENI と同じセキュリティグループに関連付けられます。ソース IP アドレス、アプリケーション層プロトコル、ポート、およびその他の基準に基づいて正確なセキュリティグループルールを設定し、各 ENI のトラフィックへのアクセスを制御できます。詳細については、「セキュリティグループルールの管理」をご参照ください。