すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:ENI (Elastic Network Interface) の作成と使用

最終更新日:Nov 09, 2025

各 ECS インスタンスには、1 つのプライマリ ENI (Elastic Network Interface) があります。高可用性やトラフィックの分離のために、1 つ以上のセカンダリ ENI をアタッチできます。

ENI の作成

コンソール

  1. ECS コンソールで、[ENI] ページに移動し、[ENI の作成] をクリックします。

  2. 次の主要なパラメーターを設定し、その他のパラメーターはデフォルト設定のままにします:

    • 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 の活性交換機能をサポートしない ECS インスタンスタイプ

    インスタンスファミリー

    インスタンスタイプ

    s6、共有標準インスタンスファミリー

    ecs.s6-c1m1.small、ecs.s6-c1m2.large、ecs.s6-c1m2.small、ecs.s6-c1m4.large、および ecs.s6-c1m4.small

    e、エコノミー型インスタンスファミリー

    ecs.e-c1m1.large、ecs.e-c1m2.large、ecs.e-c1m4.large、ecs.e-c4m1.large、および ecs.e-c2m1.large

    t6、バースト可能型 t6

    ecs.t6-c1m1.large、ecs.t6-c1m2.large、ecs.t6-c1m4.large、ecs.t6-c2m1.large、および ecs.t6-c4m1.large

    t5、バースト可能型 t5

    ecs.t5-c1m1.large、ecs.t5-c1m2.large、ecs.t5-c1m4.large、ecs.t5-lc1m1.small、ecs.t5-lc1m2.large、ecs.t5-lc1m2.small、ecs.t5-lc1m4.large、および ecs.t5-lc2m1.nano

    xn4、n4、mn4、および e4、旧世代の共有インスタンスファミリー

    • ecs.xn4.small

    • ecs.n4.small および ecs.n4.large

    • ecs.mn4.small および ecs.mn4.large

    • ecs.e4.small および ecs.e4.large

インスタンス作成時に ENI をアタッチする

コンソール

重要

インスタンス作成中に既存のセキュリティグループを選択するか、新しいセキュリティグループを作成すると、システムは自動的に新しいプライマリ ENI を作成します。このシナリオでは、既存の ENI をプライマリ ENI としてアタッチすることはできません。

  1. ECS コンソールで [カスタム起動] ページに移動します。

  2. [ネットワークとゾーン] を選択した後、[ネットワークとセキュリティグループ] セクションに移動します。[Elastic Network Interface] セクションで、[プライマリ ENI] または [セカンダリ ENI][既存の ENI] を選択します。

    image

API

RunInstances を呼び出します。NetworkInterface パラメーターで、NetworkInterfaceId を使用して ENI (Elastic Network Interface) を指定し、InstanceType を使用してプライマリまたはセカンダリ ENI として定義します。

既存のインスタンスへのアタッチ

コンソール

  1. ECS コンソールで [インスタンス] ページに移動し、ターゲットインスタンスの ID をクリックして詳細ページを開きます。

  2. インスタンス詳細ページで、[ENI] タブをクリックし、[セカンダリ ENI のアタッチ] をクリックします。

  3. ターゲット ENI を選択し、[OK] をクリックします。

API

AttachNetworkInterface 操作を呼び出して、既存のインスタンスに ENI をアタッチします。

インスタンス内で ENI が有効になるように設定する

プライマリ ENI は通常、インスタンスの作成後に自動的にアクティブ化され、通常は設定は不要です。1 つ以上のセカンダリ ENI を ECS インスタンスにアタッチした後、インスタンス内で ENI がアクティブであることを確認する必要があります。

ステップ 1: インスタンス内で ENI がアクティブであることを確認する

警告

セカンダリ ENI がインスタンス内で正しく設定されていない場合、正常に通信できません。次のステップに従って、ENI がアクティブであることを確認してください。

Linux インスタンス

オペレーティングシステムの例: Alibaba Cloud Linux 3.2。

  1. Linux インスタンスにリモート接続します。

    詳細については、「Workbench の SSH ツールを使用して Linux インスタンスにログオンする」をご参照ください。

  2. 次のコマンドを実行して、インスタンスの ENI 情報を表示および確認します。

    ip a

    出力には、現在のインスタンスの ENI 情報が表示されます:

  3. 次のコマンドを実行して、ENI のルーティング情報を表示します。

    route -n

    centos8-route

    出力は、システムが通常、セカンダリ ENI (eth1) に 2 つのルートを設定することを示しています:

    • 宛先が 192.168.xx.xx のルート: このルートはサブネットに固有であり、ローカルホストが同じサブネット内の他のホストを直接識別して通信できるようにします。

    • 宛先が 0.0.0.0 のルート: これはデフォルトルートです。データパケットの宛先アドレスが、特定のサブネットやホストのルートなど、ルートテーブル内のより具体的なルートと一致しない場合、システムはデフォルトルートを選択します。その後、パケットは Iface で指定されたネットワークインターフェースを介して、Gateway で指定されたネクストホップアドレスに送信されます。

      重要
      • 複数のデフォルトルートが存在する場合、ルートの優先度はメトリック値によって決まります。メトリック値が小さいほど、優先度が高くなります。

      • トラフィックパスを正確に制御し、トラフィックが受信したのと同じ ENI を介して返されるようにする必要がある場合は、ENI のポリシーベースルートを設定できます。

      Ubuntu 16 などの一部の古いオペレーティングシステムでは、セカンダリ ENI のデフォルトルートが自動的に設定されない場合があります。ルーティング情報は次の図のようになります。これにより、ENI が正しく機能しなくなる可能性があります。新しいオペレーティングシステムのディストリビューションを使用するか、自分でルートを設定できます。詳細については、「ENI のデフォルトルートを設定する」をご参照ください。

      image

Windows インスタンス

オペレーティングシステムの例: Windows Server 2022。

  1. Windows インスタンスにリモート接続します。

    詳細については、「Workbench の RDP ツールを使用して Windows インスタンスにログオンする」をご参照ください。

  2. ネットワークと共有センターを開きます。

  3. [アダプターの設定の変更] をクリックします。

    この例では、インスタンスに 2 つの ENI (プライマリ 1 つとセカンダリ 1 つ) がアタッチされています。次の情報が表示された場合、ENI はインスタンス内でアクティブであり、これ以上の設定は必要ありません。

    image

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

    image

  4. ENI のステータスと詳細を表示します。

    1. ENI 名をダブルクリックしてステータスを表示します。

      プライマリ ENI [イーサネット] を例にとります:

      image

    2. [詳細] をクリックして ENI のプロパティを表示します。

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

      image

  5. [コマンドプロンプト] を開きます。

    Win+R キーボードショートカットを使用して [ファイル名を指定して実行] ダイアログボックスを開きます。cmd と入力し、[OK] をクリックします。

  6. 次のコマンドを実行して、ENI のルーティング情報を表示します。

    image

ステップ 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: ネットワーク設定ファイルを使用した手動設定」をご参照ください。

  1. 次のコマンドを実行して、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
  2. 次のコマンドを実行して ENI サービスを再起動します。

    sudo systemctl restart eni.service
  3. 再度インスタンス内の ENI を表示して、そのステータスが通常であることを確認します。

方法 2: ネットワーク設定ファイルを使用した手動設定

ネットワーク設定ファイルは、ネットワーク管理方法とツールに基づいて、Linux ディストリビューションとバージョンによって異なります。

警告
  • 編集する前に、元のネットワーク設定ファイルをバックアップしてください。

    ネットワーク設定ファイルを変更した後に Workbench を使用してインスタンスに接続できない場合は、VNC を使用してインスタンスに接続して変更を比較し、ファイルを修正できます。

  • この例では、ネットワーク管理プロトコルはデフォルトで動的ホスト構成プロトコル (DHCP) として設定されています。ネットワークインターフェースは自動的にプライマリプライベート IP アドレスを取得します。静的 IP アドレスを使用してネットワークインターフェースを設定する場合は、「オペレーティングシステムがセカンダリプライベート IP アドレスを認識するように設定する」をご参照ください。

  • ネットワーク設定ファイル内の IP アドレス、MAC アドレス、ゲートウェイ、およびその他の情報が実際の設定と一致していることを確認してください。ネットワーク設定が正しくないと、インスタンスの通信障害が発生する可能性があります。

  • ENI をデタッチまたはアタッチした後は、ネットワーク接続の問題や設定の競合を防ぐために、ネットワーク設定ファイルに変更が反映されていることを確認してください。

  1. ECS インスタンスにリモート接続します。

    詳細については、「Workbench の SSH ツールを使用して Linux インスタンスにログオンする」をご参照ください。

  2. 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-eth1
      DEVICE=eth1      
      TYPE=Ethernet
      BOOTPROTO=dhcp
      ONBOOT=yes
      DEFROUTE=no
      • DEVICE: 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: eth1
      • dhcp4: このインターフェースで 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 dhcp
      • auto <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-eth1
      BOOTPROTO='dhcp'
      STARTMODE='auto'
      • BOOTPROTO: IP アドレスの取得方法を指定します。dhcp は、インターフェースがネットワーク上の DHCP サーバーから IP アドレスおよびその他の関連するネットワーク設定情報 (サブネットマスク、デフォルトゲートウェイ、DNS サーバーアドレスなど) を自動的に取得することを意味します。

      • STARTMODE: システム起動時にこのネットワークインターフェースがどのように処理されるかを定義します。'auto' に設定すると、システムは起動時に利用可能であると検出された場合にこのネットワークインターフェースをアクティブ化しようとします。

  3. 次のコマンドを実行して、ネットワークサービスを再起動します。

    設定を有効にするには、ネットワークサービスを再起動します。

    オペレーティングシステム

    ネットワークサービスを再起動するコマンド

    • Alibaba Cloud Linux 2

    • CentOS 7

    • Red Hat 7

    • Anolis 7

    • SUSE Linux 11、SUSE Linux 12、および SUSE Linux 15

    • openSUSE 15 および openSUSE 42

    sudo service network restart

    または sudo systemctl restart network

    • CentOS 6

    • Red Hat 6

    sudo service network restart

    • Alibaba Cloud Linux 3

    • CentOS 8

    • Red Hat 8

    • Anolis 8

    • Fedora 33、Fedora 34、および Fedora 35

    sudo systemctl restart NetworkManager または sudo reboot

    • Ubuntu 18、Ubuntu 20、および Ubuntu 22

    • Debian 12

    sudo netplan apply

    • Ubuntu 14 および Ubuntu 16

    • Debian 8、Debian 9、Debian 10、および Debian 11

    sudo systemctl restart networking または sudo reboot

  4. ステップ 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 のトラフィックへのアクセスを制御できます。詳細については、「セキュリティグループルールの管理」をご参照ください。