Elastic Network Interface (ENI) は、Virtual Private Cloud (VPC) 内にデプロイされた Elastic Compute Service (ECS) インスタンスにネットワーク接続と IP アドレスを提供する仮想ネットワークインターフェイス です。各 ECS インスタンスに 1 つ以上の ENI をバインドできます。ENI は複数の IP アドレスに対応しています。ENI と同じ VPC およびゾーン内にある異なる ECS インスタンス間で ENI を移行できます。これにより、ネットワーク設定の柔軟性とスケーラビリティが向上し、さまざまなビジネスシナリオのネットワーク要件に対応できます。たとえば、ENI を使用して、マルチ IP アドレス、マルチ NIC、または高可用性ネットワークを作成できます。
ENI のタイプ
Alibaba Cloud には、次のタイプの ENI があります。
プライマリ ENI
VPC 内の各 ECS インスタンスには、デフォルトの ENI があります。このデフォルトの ENI はプライマリ ENI と呼ばれます。各 ECS インスタンスには、プライマリ ENI が 1 つだけあります。
セカンダリ ENI
ECS インスタンスにプライマリ ENI しかない場合、インスタンスはプライマリ ENI を使用してすべてのネットワークトラフィックを送受信します。これは、ビジネストラフィックが単純なシナリオに適しています。ビジネスで、単一障害点を回避するために、より詳細なネットワーク分類と分離が必要な場合は、ECS インスタンスと同じ VPC およびゾーン内にあるセカンダリ ENI を作成してインスタンスにバインドできます。
セカンダリ ENI は、個別に作成して ECS インスタンスにバインドできます。プライマリ ENI と比較して、セカンダリ ENI は独立して作成し、ECS インスタンスに動的にバインドおよびアンバインドできます。
詳細については、「ENI の作成と使用」をご参照ください。
ENI の機能
複数 IP アドレスのサポート:単一の ENI に複数のプライベート IP アドレスを関連付けることができます。これにより、単一の ECS インスタンスで、異なる IP アドレスを使用したサービス提供や外部リソースへのアクセスが可能になり、ネットワークの柔軟性が向上します。詳細については、「セカンダリプライベート IP」をご参照ください。
インスタンスと同時リリース:ENI の作成時または作成後に、インスタンスと同時リリース機能を有効または無効にできます。この機能のステータスによって、関連付けられた ECS インスタンスがリリースされたときに ENI を保持するか、リリースするかが決まります。デフォルトでは、ENI のインスタンスと同時リリース機能は有効になっており、関連付けられた ECS インスタンスがリリースされると ENI もリリースされます。これにより、O&M 管理が簡素化され、リソースの残留を防ぐことができます。
ENI のインスタンスと同時リリース機能が無効になっている場合、関連付けられた ECS インスタンスがリリースされても、ENI とその設定 (IP アドレスや関連付けられたセキュリティグループなど) は保持されます。ENI と同じ VPC およびゾーン内にある別の ECS インスタンスに、この ENI を速やかにバインドできます。また、新しい ECS インスタンスを作成するときに ENI を再利用することもできます。これにより、O&M の柔軟性とビジネスの継続性が向上します。

ホットスワップ。セカンダリ ENI のホットスワップ機能は、非常に柔軟で便利な機能です。この機能を使用すると、インスタンスを再起動したり、インスタンスで実行中のサービスを中断したりすることなく、実行中状態の ECS インスタンスにセカンダリ ENIを動的にバインドまたはアンバインドできます。たとえば、ECS インスタンスからセカンダリ ENI をアンバインドし、インスタンスを再起動することなく、ENI と同じ VPC およびゾーン内にある別の ECS インスタンスにバインドできます。
説明プライマリ ENI を ECS インスタンスからアンバインドすることはできません。プライマリ ENI はホットスワップ機能に対応していません。
次の表に、セカンダリ ENI のホットスワップ機能に対応していないインスタンスタイプを示します。
セカンダリ ENI のホットスワップ機能に対応していないインスタンスタイプには、次の制限があります。
インスタンスの作成時に、上記の表のインスタンスタイプの ECS インスタンスにセカンダリ ENI をバインドすることはできません。インスタンスを作成した後、インスタンスにセカンダリ ENI をバインドできます。
上記の表のインスタンスタイプの ECS インスタンスにセカンダリ ENI をバインドまたはアンバインドする場合、インスタンスが停止済み状態であることを確認してください。
制限事項
ENI は無料でご利用いただけます。ただし、Alibaba Cloud アカウントで作成できる ENI の数には制限があります。詳細については、「ECS の制限とクォータ」トピックの「制限事項」セクションをご参照ください。
ECS インスタンスとそれにバインドされている ENI は、同じ VPC およびゾーンに存在する必要があります。
ECS インスタンスにバインドされた ENI は、インスタンスと同じ VPC およびゾーン内の異なる vSwitch に接続できます。
同じサブネットに属する 2 つ以上の ENI を ECS インスタンスにバインドすると、非対称ルーティングなどのネットワークの問題が発生する可能性があります。各プライマリまたはセカンダリ ENI に 1 つ以上のセカンダリプライベート IP アドレスを割り当てることで、VPC にデプロイされた ECS インスタンスを最適に利用し、フェールオーバー中にトラフィックを迂回させることができます。詳細については、「セカンダリプライベート IP」をご参照ください。
ECS インスタンスにバインドできる ENI の数は、インスタンスタイプによって異なります。詳細については、「インスタンスファミリーの概要」の[ENI]列をご参照ください。
複数の ENI を ECS インスタンスにバインドしても、インスタンスのネットワーク帯域幅は増加または倍増しません。詳細については、「ネットワーク帯域幅」をご参照ください。
ENI の重要な属性
ENI を ECS インスタンスにバインドすると、インスタンスはプライベート IP アドレスや Elastic IP アドレス (EIP) などのリソースを取得できます。これにより、ECS インスタンスはインターネットまたは他のクラウドリソースと通信できます。以下に、ENI のいくつかの重要な属性について説明します。
VPC:ENI は、ENI と同じ VPC 内の ECS インスタンスにのみバインドできます。ENI の作成後に VPC を変更することはできません。
vSwitch:各 VPC には独立した IP アドレス範囲があります。VPC に複数の vSwitch を作成して、VPC をサブネットに分割できます。デフォルトでは、同じ VPC 内のサブネットは相互に通信できます。ENI に vSwitch を指定すると、ENI は vSwitch に関連付けられた CIDR ブロックから 1 つ以上の IP アドレスを取得します。ENI は、ENI と同じゾーン内の ECS インスタンスにのみバインドできます。インスタンスと ENI は、異なる vSwitch に接続できます。
説明ENI を ECS インスタンスにバインドしたいが、ENI の IP アドレスがインスタンスが存在する VPC の CIDR ブロック内にない場合は、次の手順を実行する必要があります:VPC に セカンダリ CIDR ブロックを追加 し、インスタンスが存在するゾーンに vSwitch を作成し、セカンダリ CIDR ブロックを vSwitch に関連付け、vSwitch に関連付けられた ENI を作成し、その ENI をインスタンスにバインドします。詳細については、「セカンダリ CIDR ブロック」をご参照ください。
MAC アドレス:各 ENI には、一意の識別子として一意のメディアアクセスコントロール (MAC) アドレスがあります。
ENI の VPC や MAC アドレスなどの情報は、ECS コンソールで表示するか、API を呼び出して確認できます。詳細については、「ENI の属性の変更」をご参照ください。
プライベート IP アドレス:内部ネットワーク経由の通信のために、ENI に 1 つ以上のプライベート IP アドレスを割り当てることができます。各 ENI には、ENI に接続された vSwitch に関連付けられた CIDR ブロックから、プライマリプライベート IPv4 アドレスとして IPv4 アドレスが自動的に割り当てられます。
マルチアプリケーション、フェールオーバー、Server Load Balancer (SLB) などのビジネスシナリオで複数のプライベート IP アドレスが必要な場合は、ECS インスタンスにバインドされた ENI に 1 つ以上のセカンダリプライベート IPv4 アドレスを割り当てることができます。詳細については、「セカンダリプライベート IP アドレス」トピックの「ENI へのセカンダリプライベート IP の割り当て」セクションをご参照ください。
ECS インスタンスが IPv6 経由でインターネットまたはプライベートネットワークと通信するようにしたい場合は、インスタンスが存在する VPC およびインスタンスにバインドされた ENI に接続されている vSwitch に IPv6 CIDR ブロックを関連付け、その後 ENI に 1 つ以上の IPv6 アドレスを割り当てることができます。詳細については、「IPv6 通信」をご参照ください。
静的パブリック IP アドレスまたは EIP:インスタンスがインターネットにアクセスできるように、静的パブリック IP アドレスを割り当てるか、EIP を ECS インスタンスに関連付けることができます。ENI にはインターネット通信機能はありません。ECS インスタンスのインターネット通信を有効にするには、次のいずれかの方法を使用できます。
ECS インスタンスのプライマリ ENI に静的パブリック IP アドレスを割り当てます。詳細については、「静的パブリック IP アドレス」をご参照ください。
ECS インスタンスにバインドされた ENI に EIP を関連付けます。ビジネス要件に基づいて、EIP を ENI に関連付けたり、関連付けを解除したりできます。ECS インスタンスが外部アクセス用に複数のパブリック IP アドレスを提供できるようにするには、インスタンスにバインドされた ENI に割り当てられた複数のプライベート IP アドレスに EIP を関連付けることができます。詳細については、「セカンダリ ENI への EIP の関連付け」をご参照ください。
セキュリティグループ:ネットワーク層のセキュリティ制御を提供するために、ENI をセキュリティグループに関連付けることができます。
ECS インスタンスをセキュリティグループに関連付けると、インスタンスのプライマリ ENI がそのセキュリティグループに関連付けられます。詳細については、「インスタンス (プライマリ ENI) へのセキュリティグループの関連付け」をご参照ください。
同じ VPC 内で、ECS インスタンスにバインドされたセカンダリ ENI は、プライマリ ENI のセキュリティグループとは異なるセキュリティグループに関連付けることができます。詳細については、「セカンダリ ENI とセキュリティグループの関連付け」をご参照ください。
ルートテーブル:VPC 内および VPC と他のネットワーク間でデータが転送されるとき、データパケットのルーティングを制御するためにルートテーブルが使用されます。正しいルーティング設定により、ENI がデータを正しく送受信できるようになります。詳細については、「セカンダリ ENI の設定」トピックの「(条件付きで必須) ステップ 4:ルートの設定」セクションをご参照ください。
説明マルチ ENI 環境では、セカンダリ ENI のデフォルトルートの優先度は、プライマリ ENI のデフォルトルートの優先度よりも低くなります。これにより、データがプライマリ ENI から優先的に送信されるようになります。セカンダリ ENI のプライベート IP アドレスに関連付けられたデータパケットをセカンダリ ENI から送信したい場合は、セカンダリ ENI にポリシーベースルーティングを設定して、ENI が受信したデータが同じ ENI から送信されるように設定できます。
ENI のネットワーク拡張機能
eRDMA 機能
ENI に対して Elastic RDMA Interface (ERI) を有効にすることができます。ERI が有効になっている ENI は、Elastic Remote Direct Memory Access (eRDMA) 機能に対応する ERI です。eRDMA 対応の ECS インスタンスに ERI をバインドし、eRDMA ドライバーをインストールすることで、インスタンスに低レイテンシで高スループットのネットワーク通信を実現できます。詳細については、「Elastic RDMA Interface (ERI)」をご参照ください。
NIC マルチキュー
パケット処理を複数の CPU コアに分散させることで、ネットワークのスループットを向上させ、レイテンシーを削減します。
詳細については、「NIC マルチキュー」をご参照ください。
ネットワークカードインデックス
サポート対象のインスタンスタイプでは、ENI を異なるネットワークカードに割り当てることで、帯域幅の利用率を最大化できます。
詳細については、「ネットワークカードインデックス」をご参照ください。
ECS インスタンスにバインドされた ENI の表示
ECS インスタンスにバインドされた ENI に関する情報は、ECS コンソールで、API を呼び出して、またはインスタンス内で表示できます。
ECS コンソールでの ECS インスタンスにバインドされた ENI の表示
ECS コンソール - インスタンスに移動します。
上部メニューで、管理するリソースが属するリージョンとリソースグループを選択します。

表示したい ENI がバインドされている ECS インスタンスの ID をクリックして、インスタンスの詳細ページに移動します。
ENI タブをクリックすると、ECS インスタンスにバインドされている ENI が表示されます。
ENI リストで、ECS インスタンスにバインドされている ENI の ID、名前、タイプ、ステータス、IP アドレスを表示できます。

API 呼び出しによる ECS インスタンスにバインドされた ENI の表示
DescribeInstances API を呼び出して、InstanceIds パラメーターで指定された ECS インスタンスに関する情報を照会します。レスポンスの NetworkInterfaces パラメーターには、インスタンスにバインドされた各 ENI のタイプ (Type)、ID (NetworkInterfaceId)、およびプライマリプライベート IP アドレス (PrimaryIpAddress) などの情報が含まれています。
インスタンス接続後の ECS インスタンスにバインドされた 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 のルーティング情報を表示します:

関連ドキュメント
Terway Container Network Interface (CNI) プラグイン を使用して、Kubernetes クラスター内の Pod の IP アドレスと通信を管理できます。Terway は、標準の Kubernetes ネットワークポリシーに基づいてコンテナ間のアクセスポリシーを定義できます。ENI のセカンダリ IP アドレスに基づく包括的 ENI モードと、ENI に基づく VPC モードのいずれかを使用して、Kubernetes クラスター間のネットワーク通信を有効にできます。詳細については、「Terway ネットワークプラグイン」をご参照ください。
ENI を Server Load Balancer (SLB) と組み合わせて使用して、トラフィックを分散および管理できます。詳細については、「ENI を指定してバックエンドサーバーを追加する」をご参照ください。
Container Service for Kubernetes (ACK) や NAT ゲートウェイなどの特定の Alibaba Cloud サービスは、機能するために ENI に依存しています。Alibaba Cloud サービスに、サービスによって作成された ENI のライフサイクルを管理する権限を付与できます。これにより、ENI に対する偶発的な操作を防ぎ、サービスの可用性を確保できます。詳細については、「マネージド ENI」をご参照ください。
エンタープライズ版トランジットルーターでサポートされているマルチキャスト機能は、Alibaba Cloud が開発したクラウドネイティブ機能です。この機能を使用すると、追加の物理デバイスやサードパーティのソフトウェアライセンスなしでマルチキャストネットワークを構築できます。ECS インスタンスにアタッチされた ENI は、マルチキャストソースとしてのみ使用できます。システムは、ENI のプライマリプライベート IP アドレスを使用して、マルチキャストトラフィックをマルチキャストグループに送信します。詳細については、「マルチキャストの管理」をご参照ください。
よくある質問
ECS インスタンスがないのに、コンソールにセキュリティグループと Elastic Network Interface (ENI) が表示されるのはなぜですか?
ECS インスタンスがないのにコンソールにセキュリティグループと ENI が表示される場合、次の状況が考えられます。
ECS インスタンスのリリース後に保持される ENI:ENI のインスタンスと同時リリース機能が無効になっている場合、関連付けられた ECS インスタンスがリリースされても、ENI とその設定 (IP アドレスや関連付けられたセキュリティグループなど) は保持されます。詳細については、このトピックの「ENI の機能」セクションの「インスタンスと同時リリース」をご参照ください。
他の Alibaba Cloud サービスによって管理される ENI とセキュリティグループ:Server Load Balancer (SLB)、NAT ゲートウェイ、Container Service for Kubernetes (ACK) などの Alibaba Cloud サービスは、ENI とセキュリティグループを自動的に作成および管理します。これらのリソースのライフサイクルは ECS インスタンスとは独立しています。
デフォルトのセキュリティグループ:VPC を初めて使用すると、システムは自動的にデフォルトのセキュリティグループを作成します。このセキュリティグループはどの ECS インスタンスのライフサイクルにも関連付けられておらず、すべての ECS インスタンスがリリースされた後もコンソールに表示されたままになります。
具体的な原因を特定するには、次の API を呼び出すことができます。
DescribeNetworkInterfaces API を呼び出して、各 ENI の作成者とバインド状態を表示します。
DescribeSecurityGroups API を呼び出して、各セキュリティグループのソースと詳細を表示します。