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

API
RunInstances を呼び出します。NetworkInterface パラメーターで、NetworkInterfaceId を使用して ENI を指定し、InstanceType を使用してプライマリまたはセカンダリ ENI として定義します。
既存インスタンスへのアタッチ
コンソール
ECS コンソールの [インスタンス] ページに移動し、対象インスタンスの ID をクリックして詳細ページを開きます。
インスタンス詳細ページで、[ENI] タブをクリックし、次に [セカンダリ ENI のバインド] をクリックします。
対象の ENI を選択し、[確認] をクリックします。
API
AttachNetworkInterface 操作を呼び出して、既存のインスタンスに ENI をアタッチします。
インスタンス内での ENI の有効化設定
プライマリ ENI は通常、インスタンス作成後に自動的にアクティブ化され、通常は設定は不要です。ECS インスタンスに 1 つ以上のセカンダリ ENI をアタッチした後は、インスタンス内で ENI がアクティブであることを確認する必要があります。
ステップ 1:インスタンス内での ENI のアクティブ状態の確認
セカンダリ ENI がインスタンス内で正しく設定されていない場合、正常に通信できません。以下の手順に従って、ENI がアクティブであることを確認してください。
Linux インスタンス
オペレーティングシステムの例:Alibaba Cloud Linux 3.2
Linux インスタンスにリモート接続します。
詳細については、「ワークベンチの 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 アドレス」をご参照ください。
ENI にセカンダリプライベート IP アドレスが割り当てられているが、オペレーティングシステムに認識されない場合は、再設定できます。詳細については、「オペレーティングシステムでセカンダリプライベート 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 インスタンスにリモート接続します。
詳細については、「ワークベンチの 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 つの方法のいずれかを使用してシステム内で設定し、アクティブ化できます。
ほとんどの Windows オペレーティングシステムは 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.8 以降、CentOS 7.3 以降、および Red Hat をサポートしています。
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 ディストリビューションやバージョンごとに異なります。
編集する前に、元のネットワーク設定ファイルをバックアップしてください。
ネットワーク設定ファイルを変更した後にワークベンチを使用してインスタンスに接続できない場合は、VNC を使用してインスタンスに接続し、変更を比較してファイルを修正できます。
この例では、ネットワーク管理プロトコルはデフォルトで動的ホスト構成プロトコル (DHCP) として設定されています。ネットワークインターフェースは自動的にプライマリプライベート IP アドレスを取得します。静的 IP アドレスを使用してネットワークインターフェースを設定する場合は、「オペレーティングシステムでセカンダリプライベート IP アドレスを認識するように設定する」をご参照ください。
ネットワーク設定ファイル内の IP アドレス、MAC アドレス、ゲートウェイ、その他の情報が実際の設定と一致していることを確認してください。ネットワーク設定が正しくないと、インスタンスの通信障害が発生する可能性があります。
ENI をデタッチまたはアタッチした後は、ネットワーク接続の問題や設定の競合を防ぐために、ネットワーク設定ファイルが変更を反映していることを確認してください。
ECS インスタンスにリモート接続します。
詳細については、「ワークベンチの 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 または柔軟な管理シナリオ:Elastic IP Address (EIP) を ENI に関連付けて、インターネット通信を行うことができます。固定パブリック IP アドレスと比較して、EIP は柔軟に関連付けたり、関連付けを解除したりできます。詳細については、「EIP と ENI の関連付け」をご参照ください。
また、1 つ以上の ENI を ECS インスタンスにアタッチし、ENI 上の複数のプライベート IP アドレスに EIP を関連付けることもできます。これにより、ECS インスタンスは複数のパブリック IP アドレスを持つことができます。詳細については、「NAT モードで複数の EIP を ECS インスタンスに関連付ける」をご参照ください。
重要EIP をセカンダリ ENI に関連付けた後、EIP を使用できるようにするには、ENI がインスタンスにアタッチされ、インスタンス内でアクティブであることを確認する必要があります。詳細については、「インスタンス内での 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 に関連付けられたセキュリティグループを変更することができます。
ENI に複数のセカンダリ IPv4 または IPv6 アドレスを割り当てる場合、これらのアドレスも ENI と同じセキュリティグループに関連付けられます。送信元 IP アドレス、アプリケーション層プロトコル、ポート、その他の基準に基づいて正確なセキュリティグループルールを設定し、各 ENI のトラフィックへのアクセスを制御できます。詳細については、「セキュリティグループルールの管理」をご参照ください。