Elastic Network Interface (ENI) は、Virtual Private Cloud (VPC) にデプロイされた Elastic Compute Service (ECS) インスタンスにネットワーク接続と IP アドレスを提供する仮想ネットワークインターフェースです。各 ECS インスタンスに 1 つ以上の ENI をバインドできます。ENI は複数の IP アドレスをサポートしています。同じ 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 アドレスのサポート。 1 つの ENI に複数のプライベート IP アドレスを関連付けることができます。これにより、1 つの 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 のホットスワップ機能をサポートしていないインスタンスタイプを示します。
セカンダリ ENI のホットスワップ機能をサポートしていないインスタンスタイプについては、次の制限が適用されます。
インスタンスの作成時に、上記の表にあるインスタンスタイプの ECS インスタンスにセカンダリ ENI をバインドすることはできません。インスタンスを作成した後、セカンダリ ENI をインスタンスにバインドできます。
上記の表にあるインスタンスタイプの ECS インスタンスにセカンダリ ENI をバインドする場合、またはセカンダリ ENI をバインド解除する場合は、インスタンスが停止状態であることを確認してください。
制限
ENI は無料で使用できます。ただし、Alibaba Cloud アカウントで作成できる ENI の数には制限があります。詳細については、「ECS の制限とクォータ」トピックのENI セクションをご参照ください。
ECS インスタンスとインスタンスにバインドされている ENI は、同じ VPC とゾーンに存在する必要があります。
ECS インスタンスにバインドされている ENI は、インスタンスと同じ VPC およびゾーン内の異なる vSwitch に接続できます。
同じサブネットの ENI を 2 つ以上 ECS インスタンスにバインドすると、非対称ルートなどのネットワークの問題が発生する可能性があります。 プライマリまたはセカンダリ ENI ごとに 1 つ以上のセカンダリ プライベート IP アドレスを割り当てて、VPC にデプロイされている ECS インスタンスの使用率を最適化し、フェールオーバー時にトラフィックを迂回させることができます。 詳細については、「セカンダリ プライベート IP アドレス」をご参照ください。
ECS インスタンスにバインドできる ENI の数は、インスタンスタイプによって異なります。詳細については、「インスタンスファミリの概要」の ENI 列をご参照ください。
複数の ENI を 1 つの ECS インスタンスにバインドしても、インスタンスのネットワーク帯域幅が増加または乗算されることはありません。詳細については、「ネットワーク帯域幅」をご参照ください。
ENI の重要な属性
ENI を ECS インスタンスにバインドすると、インスタンスはプライベート IP アドレスや Elastic IP アドレス (EIP) などのリソースを取得できます。このようにして、ECS インスタンスはインターネットまたは他のクラウドリソースと通信できます。次のセクションでは、ENI のいくつかの重要な属性について説明します。
VPC: ENI は、ENI と同じ VPC 内にある ECS インスタンスにのみバインドできます。ENI の作成後、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) アドレスがあります。
ECS コンソールで、または API オペレーションを呼び出すことで、ENI の VPC や MAC アドレスなどの ENI に関する情報を表示できます。詳細については、「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: インスタンスがインターネットにアクセスできるように、ECS インスタンスに固定パブリック IP アドレスを割り当てるか、EIP を関連付けることができます。ENI にはインターネット通信機能がありません。ECS インスタンスのインターネット通信を有効にするには、次のいずれかの方法を使用します。
ECS インスタンスのプライマリ ENI に固定パブリック IP アドレスを割り当てます。詳細については、「固定パブリック IP アドレス」をご参照ください。
ECS インスタンスにバインドされている ENI に EIP を関連付けます。ビジネス要件に基づいて、ENI に EIP を関連付けたり、ENI から EIP を関連付け解除したりできます。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 ドライバーをインストールすることで、インスタンスの低レイテンシと高スループットのネットワーク通信を実現できます。詳細については、「ERI」をご参照ください。
NIC マルチキュー
ネットワークインターフェースコントローラー(NIC)マルチキュー機能を使用すると、NIC に複数の送信(Tx)キューと受信(Rx)キューを設定できます。各キューは異なる CPU コアで処理できます。NIC マルチキュー機能は、複数の CPU コアが NIC 上の異なるキューのネットワークパケットを同時に処理できるようにすることで、ネットワーク I/O スループットを向上させ、レイテンシを削減するように設計されています。
詳細については、「NIC マルチキュー」をご参照ください。
ネットワークカードインデックス
特定の Elastic Compute Service(ECS)インスタンスタイプでは、ネットワークカードインデックスを設定して、より高いネットワークパフォーマンスを実現できます。ネットワークカードインデックスの設定をサポートするインスタンスタイプの ECS インスタンスに Elastic Network Interface(ENI)をアタッチする場合、ネットワークカードインデックスを指定して、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 操作を呼び出して、InstanceIds パラメーターを使用して指定された ECS インスタンスに関する情報をクエリします。 応答の NetworkInterfaces パラメーターには、インスタンスにバインドされている ENI に関する情報(各 ENI のタイプ(Type)、ID(NetworkInterfaceId)、およびプライマリ プライベート IP アドレス(PrimaryIpAddress)など)が含まれています。
インスタンスに接続した後に ECS インスタンスにバインドされている ENI を表示する
Linux インスタンス
この例では、Alibaba Cloud Linux 3.2 を実行する ECS インスタンスを使用します。
Linux ECS インスタンスに接続します。
詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。
次のコマンドを実行して、ENI に関する情報を表示します。
ip a
次の図は、コマンド出力の例を示しています。
この例では、2 つの ENI が Linux ECS インスタンスにバインドされています。 eth0 という名前の ENI はプライマリ ENI として機能し、eth1 という名前の ENI はセカンダリ ENI として機能します。
ENI は UP 状態です。これは、ENI がインスタンスのオペレーティングシステムで有効になっていることを示します。
重要次の図に示すように、ENI が DOWN 状態の場合、ENI は正しくロードされておらず、想定どおりに使用できません。 この場合は、手順 2: Linux オペレーティングシステムが ENI を認識するように構成する を実行して、ENI が UP 状態になるようにしてください。
プライマリ プライベート IP アドレス: ENI が UP 状態になると、ENI のプライマリ プライベート IP アドレスを表示できます。 詳細については、「プライマリ プライベート IP アドレス」をご参照ください。
ECS インスタンスにバインドされている ENI に セカンダリ プライベート IP アドレスを割り当てたが、インスタンスのオペレーティングシステムがセカンダリ プライベート IP アドレスを認識できない場合は、問題を解決する必要があります。 問題の解決方法については、「セカンダリ プライベート IP アドレス」トピックの 手順 3: インスタンスのオペレーティングシステムがセカンダリ プライベート IP アドレスを認識するように構成する セクションをご参照ください。
次のコマンドを実行して、ENI のルート情報を表示します。
route -n
上記のコマンド出力は、eth1 セカンダリ ENI に対して 2 つのルートが構成されていることを示しています。
192.168.xx.xx 宛てのルート: 特定のサブネット内のルートです。 このルートにより、Linux ECS インスタンスは、ルートに一致するトラフィックを他のルーターに転送することなく、サブネット内の他のホストを正しく識別し、直接通信できます。
0.0.0.0 宛てのルート: デフォルトルートです。特定のサブネット内のルートやホストルートなど、宛先アドレスが特定のルートと一致しないパケットを処理するために使用されます。 パケットは、
Iface
に対応するネットワークインターフェース経由で、Gateway
で指定されたネクストホップ アドレスに転送されます。重要複数のデフォルトルートが存在する場合、優先順位が最も高いルートが使用されます。 メトリック値が低いほど、優先順位が高くなります。
送信元入力/送信元出力の原則に基づいて、同じ ENI を使用してデータトラフィックをルーティングする場合、ENI にポリシーベースのルートを構成する ことができます。
Ubuntu 16 など、特定の初期オペレーティングシステムバージョンでは、セカンダリ ENI のデフォルトルートが自動的に構成されない場合があります。 初期のオペレーティングシステムバージョンのいずれかを実行している ECS インスタンスでセカンダリ ENI のデフォルトルートが自動的に構成されていない場合、route -n コマンドを実行して ENI のルート情報を表示した後に、次の図に示すコマンド出力が返されます。 セカンダリ ENI は想定どおりに動作しない可能性があります。 最新のオペレーティングシステムバージョンにアップグレードするか、ENI のデフォルトルートを構成することをお勧めします。 ENI のデフォルトルートの構成方法については、「ENI のルートを構成する」トピックの ENI のデフォルトルートを構成する セクションをご参照ください。
Windows インスタンス
この例では、Windows Server 2022 を実行する ECS インスタンスを使用します。
Windows ECS インスタンスに接続します。
詳細については、「Workbench を使用して RDP 経由で Windows インスタンスに接続する」をご参照ください。
ネットワークと共有センターを開きます。
[アダプターの設定の変更] をクリックします。
この例では、1 つのプライマリ ENI と 1 つのセカンダリ ENI が Windows インスタンスにバインドされています。 次の図は、ENI がインスタンスのオペレーティングシステムで有効になっていることを示しています。 追加の構成は必要ありません。
次の図は、特定の理由により、Windows ECS インスタンスのオペレーティングシステムがセカンダリ ENI を認識できないことを示しています。 問題のトラブルシューティング方法については、「Windows インスタンスの ENI 構成が無効になった場合の対処方法」をご参照ください。
ENI のステータスと詳細を表示します。
ENI の名前をダブルクリックして、ENI のステータスを表示します。
この例では、[イーサネット] という名前のプライマリ ENI を使用します。
[詳細] をクリックして、ENI のプロパティを表示します。
表示されるダイアログボックスで、ENI のプライマリ プライベート IPv4 アドレス、サブネットマスク、およびデフォルトゲートウェイを表示できます。
[コマンド プロンプト] を開きます。
Win+R キーを押します。 [実行] ダイアログボックスで、cmd と入力し、[OK] をクリックします。
次のコマンドを実行して、ENI のルート情報を表示します。
関連情報
Terway Container Network Interface(CNI)プラグインを使用して、Kubernetes クラスタ内のポッドの IP アドレスと通信を管理できます。 Terway は、標準の Kubernetes ネットワークポリシーに基づいてコンテナー間のアクセス ポリシーを定義できます。 ENI のセカンダリ IP アドレスに基づく包括的な ENI モードと、ENI に基づく VPC モードのいずれかのモードを使用して、Kubernetes クラスタ間のネットワーク通信を有効にできます。 詳細については、「Terway を使用する」をご参照ください。
ENI を SLB と組み合わせて使用して、トラフィックを分散および管理できます。 詳細については、「ENI を指定してバックエンドサーバーを追加する」をご参照ください。
Container Service for Kubernetes(ACK)や NAT Gateway など、特定の Alibaba Cloud サービスは、ENI に依存して動作します。 Alibaba Cloud サービスに、サービスによって作成された ENI のライフサイクルを管理する権限を付与できます。 これにより、ENI での誤操作が防止され、サービスの可用性が確保されます。 詳細については、「マネージド ENI」をご参照ください。
Enterprise Edition 転送ルータでサポートされているマルチキャスト機能は、Alibaba Cloud によって開発されたクラウドネイティブ機能です。 この機能は、追加の物理デバイスやサードパーティ製ソフトウェアライセンスなしで、マルチキャストネットワークを構築するのに役立ちます。 ECS インスタンスに接続されている ENI は、マルチキャストソースとしてのみ使用できます。 システムは、ENI のプライマリ プライベート IP アドレスを使用して、マルチキャストトラフィックをマルチキャストグループに送信します。 詳細については、「マルチキャストを管理する」をご参照ください。