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

API
RunInstances を呼び出します。NetworkInterface パラメーターで、NetworkInterfaceId で ENI を指定し、InstanceType でプライマリまたはセカンダリとして定義します。
既存インスタンスへの ENI のアタッチ
コンソール
ECS コンソールの [Instances] ページに移動し、対象のインスタンス ID をクリックします。
ENI タブをクリックし、次に セカンダリ ENI のバインド をクリックします。
対象の ENI を選択し、OK をクリックします。
API
AttachNetworkInterface API を呼び出して、既存のインスタンスに ENI をアタッチします。
OS での ENI の設定
プライマリ ENI は自動的に設定されます。セカンダリ ENI をアタッチする際は、それらがオペレーティングシステム (OS) で認識され、アクティブになっていることを確認してください。
ステップ 1:インスタンス内で ENI がアクティブであることの確認
セカンダリ ENI が OS で正しく設定されていない場合、通信できません。次の手順に従って ENI のステータスを確認してください。
Linux インスタンス
OS の例:Alibaba Cloud Linux 3.2
Linux インスタンスに接続します。
詳細については、「Workbench の SSH ツールを使用した Linux インスタンスへのログオン」をご参照ください。
ENI 情報を確認します:
ip a出力には ENI 情報が表示されます:
ENI 識別子:eth0、eth1。この例では、インスタンスにはプライマリ ENI (eth0) とセカンダリ ENI (eth1) があります。
ENI のステータス:
state UPは ENI がアクティブであることを示します。
重要以下に示すように
state DOWNが表示された場合、インターフェイスはロードされておらず、使用できません。ENI を認識するように Linux OS を設定して、アクティブ化してください。
プライマリプライベート IP アドレス:ENI がアクティブになると、そのプライマリプライベート IP アドレスが表示されます。「プライマリプライベート IP アドレス」をご参照ください。
ENI に割り当てられた セカンダリプライベート IP アドレス が OS によって認識されない場合は、「セカンダリプライベート IP アドレスを認識するためのオペレーティングシステムの設定」をご参照ください。
ルーティング情報を表示します:
route -n
システムは通常、セカンダリ ENI (eth1) に対して 2 つのルートを設定します:
宛先が 192.168.xx.xx のルート:同じサブネット内の他のホストとの直接通信を可能にするサブネット固有のルートです。
宛先が 0.0.0.0 のルート:デフォルトルートです。パケットの宛先がより具体的なルートに一致しない場合、システムは
Ifaceで指定されたインターフェイスを介して、ネクストホップのGatewayに転送します。重要複数のデフォルトルートが存在する場合、メトリック値が最も低いルートが最も高い優先度を持ちます。
トラフィックがそれを受信したのと同じ ENI を介して戻るようにするには、ENI のポリシーベースルートを設定してください。
Ubuntu 16 などの一部の古い OS バージョンでは、以下に示すように、セカンダリ ENI のデフォルトルートが自動的に設定されない場合があります。これにより、通信の問題が発生する可能性があります。新しい OS ディストリビューションを使用するか、手動で設定してください。「ENI のデフォルトルートの設定」をご参照ください。

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

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

ENI のステータスと詳細を表示します:
ENI 名をダブルクリックして、そのステータスを表示します:
例えば、プライマリ ENI のイーサネット:

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

[Command Prompt] を開きます。
Win+R キーボードショートカットを使用して [Run] ダイアログボックスを開きます。cmd と入力し、OK をクリックします。
ENI のルーティング情報を表示します:

ステップ 2:ENI を認識するための Linux OS の設定
ENI がアクティブでない場合は、次のいずれかの方法を使用して OS で設定してください。
ほとんどの Windows OS バージョンは ENI を自動的に認識します。ENI がアクティブでない場合は、「Windows インスタンスでの ENI 設定の失敗に関するトラブルシューティング」をご参照ください。
方法 1:multi-nic-util ツールによる自動設定
Alibaba Cloud Linux 3、CentOS 8 以降では、デフォルトで NetworkManager を使用しており、セカンダリ ENI が自動的に有効になります。このツールは必要ありません。
multi-nic-util ツールは、Alibaba Cloud Linux 2、CentOS 6 (6.8+)、CentOS 7 (7.3+)、および Red Hat をサポートしています。
multi-nic-util ツールを Docker またはその他の コンテナ化された環境 で使用しないでください。
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.shENI サービスを再起動してください:
sudo systemctl restart eni.service再度 ENI のステータスを確認し、アクティブであることを確認してください。
方法 2:ネットワーク設定ファイルを使用した手動設定
ネットワーク設定ファイルは、Linux のディストリビューション、バージョン、およびネットワーク管理ツールによって異なります。
編集する前に、元のネットワーク設定ファイルをバックアップしてください。
ファイルを変更した後に Workbench を使用して接続できない場合は、VNC を使用して接続し、変更を比較してファイルを修復してください。
この例では、プライマリプライベート IP アドレスに DHCP が使用されていることを前提としています。静的 IP アドレスを設定するには、「セカンダリプライベート IP アドレスを認識するためのオペレーティングシステムの設定」をご参照ください。
設定ファイル内の IP アドレス、MAC アドレス、ゲートウェイ、およびその他の値が実際の設定と一致していることを確認してください。設定が正しくないと、通信障害が発生する可能性があります。
ENI をアタッチまたはデタッチした後は、接続の問題や設定の競合を避けるために、ネットワーク設定ファイルを更新してください。
ECS インスタンスに接続します。
詳細については、「Workbench の SSH ツールを使用した Linux インスタンスへのログオン」をご参照ください。
お使いの Linux ディストリビューションとバージョンに基づいて、ネットワーク設定ファイルを作成および編集してください。
プライマリ 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 をデフォルトルートとして設定しないでください。eth1 が eth0 を置き換えてしまい、プライマリ ENI の通信障害を引き起こす可能性があります。複数 ENI 環境では、ポリシーベースルートを設定してトラフィックの転送パスを制御してください。
Ubuntu 18 以降
Ubuntu 18.04 LTS 以降、Netplan がデフォルトのネットワーク設定フレームワークです。
対象オペレーティングシステム: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 ネットワーク管理ツールに徐々に置き換えられています。
設定項目:インターフェイスタイプ、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 アドレス、サブネットマスク、デフォルトゲートウェイ、DNS を取得します。staticは手動設定が必要です。
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 アドレスと関連設定を取得します。STARTMODE:起動時にインターフェイスがどのように処理されるか。
'auto'は起動時に検出された場合にインターフェイスをアクティブ化します。
ネットワークサービスを再起動してください:
ステップ 1:インスタンス内で ENI がアクティブであることの確認 に戻り、ENI がアクティブであることを確認してください。
内部通信用のプライベート IP アドレスの割り当て
ENI が VPC と vSwitch 内に作成されると、内部通信のために vSwitch の CIDR ブロックからプライマリプライベート IPv4 アドレスを受け取ります。
マルチアプリケーションのホスティング、フェイルオーバー、または負荷分散をサポートするには、セカンダリプライベート IP アドレスを ENI に割り当ててください。「ENI へのセカンダリプライベート IP アドレスの割り当て」をご参照ください。
インターネット通信用のパブリック IP アドレスのアタッチ
単一のプライマリ ENI のシナリオ:インターネット通信のために、インスタンス (プライマリ ENI) に 固定パブリック IP アドレス を割り当ててください。
複数の ENI または柔軟な管理シナリオ:インターネット通信のために、Elastic IP アドレス (EIP) を関連付けてください。固定パブリック IP アドレスとは異なり、EIP は柔軟に関連付けおよび関連付け解除ができます。
また、EIP を ENI 上の複数のプライベート IP アドレスに関連付けて、インスタンスに複数のパブリック IP アドレスを付与することもできます。「NAT モードで ECS インスタンスに複数の EIP を関連付ける」をご参照ください。
重要セカンダリ ENI に EIP を関連付けた後、ENI がインスタンスにアタッチされ、OS でアクティブになっていることを確認してください。「OS での ENI の設定」をご参照ください。
EIP または NAT ゲートウェイでセカンダリ ENI を使用する場合、アウトバウンドトラフィックがパブリック IP アドレスで設定された ENI を通過せず、EIP 通信が失敗することがあります。ポリシーベースルートを設定して、トラフィックがそれを受信したのと同じ ENI を介して戻るように強制してください。
ENI とルートを正しく設定した後でもパブリック IP アドレスに ping できない場合は、セキュリティグループとファイアウォールを確認してください。「ECS インスタンスのパブリック IP アドレスに ping できない問題のトラブルシューティング」をご参照ください。
ENI とセキュリティグループの関連付け
セキュリティグループは、各 ENI のネットワーク層でインバウンドおよびアウトバウンドトラフィックを制御します。
ECS インスタンスのセキュリティグループルールは、そのプライマリ ENI に適用されます。プライマリ ENI は常にインスタンスと同じセキュリティグループに属します。そのセキュリティグループを変更するには、インスタンスのセキュリティグループの関連付けを変更してください。
セカンダリ ENI は、同じ VPC とゾーン内の任意のセキュリティグループに関連付けることができ、これはインスタンスのセキュリティグループとは異なる場合があります。ENI を作成するときにセキュリティグループを指定するか、後で変更してください。
ENI 上のセカンダリ IPv4 または IPv6 アドレスも、ENI のセキュリティグループルールによって保護されます。送信元 IP、プロトコル、ポート、およびその他の基準に基づいて正確なルールを設定してください。「セキュリティグループルールの管理」をご参照ください。