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

Elastic IP Address:NAT モードで複数の EIP を ECS インスタンスに関連付ける

最終更新日:Nov 18, 2025

複数の Elastic IP Address (EIP) を使用して単一の Elastic Compute Service (ECS) インスタンスで異なるサービスをホストするには、NAT モードでインスタンス上の Elastic Network Interface (ENI) に EIP を関連付けます。

複数の EIP は、プライマリ ENI とセカンダリ ENI の両方に関連付けることができます。このトピックでは、セカンダリ ENI を例として使用します。

仕組み

  1. 複数の EIP の関連付け: 複数のプライベート IP アドレスを持つセカンダリ ENI を ECS インスタンスにアタッチします。次に、NAT モードでこれらのプライベート IP アドレスに複数の EIP を 1 対 1 で関連付けます。

  2. ポリシーベースルーティングを設定して、対称的なトラフィックパスを確保します:

    • インバウンドトラフィック: 外部リクエストが EIP にアクセスすると、システムはその EIP に関連付けられたプライベート IP アドレスにトラフィックを自動的に転送します。

    • アウトバウンドトラフィック: ECS インスタンスでポリシーベースルーティングを設定して、インスタンスが正しい EIP から応答トラフィックを返すようにします。ポリシーベースルーティングは、データパケットのソース IP アドレス (プライベート IP アドレス) に基づいて、ネクストホップと出力デバイス (セカンダリ ENI) を決定します。この設定により、マルチ NIC 環境での対称ルーティングが保証され、ルーティングの競合が防止されます。

使用上の注意

  • アタッチできる ENI の数と割り当てることができるセカンダリプライベート IP アドレスの数は、インスタンスファミリーによって異なります。

    たとえば、ecs.c6.large インスタンスは最大 2 つの ENI (プライマリ 1 つとセカンダリ 1 つ) のアタッチをサポートし、各 ENI は最大 6 つのプライベート IP アドレスをサポートします。プライマリ ENI とセカンダリ ENI の両方で、1 つの EIP をプライマリプライベート IP アドレスに、5 つの EIP をセカンダリプライベート IP アドレスに関連付けることができます。

  • NAT モードで関連付けられた EIP は、NAT Application Level Gateway (ALG) を必要とするプロトコルをサポートしません。

    • EIP は、プライマリ ENI とセカンダリ ENI の両方に関連付けることができます。

    • 関連付けることができる EIP の数は、ENI 上のプライベート IP アドレスの数によって決まり、それらの間には 1 対 1 のマッピングがあります。

  • インスタンスの Virtual Private Cloud (VPC) が集中型インターネットアクセスに IPv4 ゲートウェイを使用している場合は、インスタンスがインターネットにアクセスできるように、IPv4 ゲートウェイへのルートを追加します。

手順

ステップ 1: 複数の EIP の関連付け

  1. 複数のプライベート IP アドレスを持つセカンダリ ENI を ECS インスタンスにアタッチします。

    すでにセカンダリ ENI がある場合は、ECS インスタンスに直接バインドできます。
    1. ECS コンソール - ENI ページに移動し、インスタンスのリージョンを選択します。

    2. [ENI の作成] をクリックします。

      他のパラメーターについては、デフォルト設定を維持します。作成後、ターゲット ENI の [操作] 列にある [ENI IP アドレスの管理] をクリックして、プライベート IP アドレスを追加、削除、または変更します。
      • ECS インスタンスの VPC、vSwitch、およびセキュリティグループを選択します。

      • プライマリプライベート IP アドレス: vSwitch 内の未使用の IP アドレスを指定します。または、パラメーターを空のままにすると、システムが利用可能な IP アドレスをランダムに割り当てます。このパラメーター値は作成後に変更できません。

      • セカンダリプライベート IPv4 アドレス: [自動割り当て] を選択し、割り当てる予定のセカンダリプライベート IP アドレスの数を入力します。

    3. ターゲット ENI の [操作] 列で、[インスタンスにバインド] をクリックし、ターゲット ECS インスタンスを選択します。

  2. オペレーティングシステムがセカンダリプライベート IP アドレスを認識するように設定します。

    この例では、ターゲット ECS インスタンスは Alibaba Cloud Linux 3.2 オペレーティングシステムを実行しています。他のオペレーティングシステムで IP アドレスを認識する方法については、「インスタンスのオペレーティングシステムがセカンダリプライベート IP アドレスを認識するように設定する」をご参照ください。
    1. ECS インスタンスにログインし、ip a コマンドを実行して ENI 情報を表示および確認します。

      • ネットワークインターフェイス識別子: eth0 (プライマリ ENI)、eth1 (セカンダリ ENI)。

      • ネットワークインターフェイスのステータス: state UP は、ENI がインスタンス内で正しく機能していることを示します。ステータスが state DOWN の場合は、Linux OS が ENI を認識するように設定する必要があります。

      image

    2. nmcli con を使用して、セカンダリプライベート IP アドレスを設定します。

      1. 再起動後も設定が維持されるようにするには、sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg を実行してファイルを作成し、network: {config: disabled} 設定を追加して、cloud-init によるネットワークの自動初期化を無効にします

      2. nmcli con show を実行して、eth1 の接続名を表示します。

        image

      3. 次のコマンドを実行して、セカンダリプライベート IPv4 アドレスとセカンダリ ENI のデフォルトゲートウェイを設定します。

        route -n を実行して、デフォルトゲートウェイを表示できます。
        sudo nmcli con modify "<eth1 connection name>" ipv4.addresses <Secondary private IPv4 address 1>,<Secondary private IPv4 address 2>
        sudo nmcli con modify "<eth1 connection name>" ipv4.gateway <default gateway>

        image

    3. sudo nmcli con up "<eth1 connection name>" を実行して、変更されたネットワーク接続をアクティブにします。Connection successfully activated メッセージは、設定が成功したことを示します。再度 ip a を実行して、セカンダリプライベート IP アドレスを表示します。

      image

  3. 複数の EIP を作成し、セカンダリ ENI に関連付けます。

    1. EIP 購入ページに移動します。

      ここでは関連する設定項目のみをリストします。詳細な選択ガイドラインについては、「EIP 選択ガイド」をご参照ください。
      • 課金方法: 従量課金モデルは変動するワークロードに適しており、サブスクリプションは長期的で安定したサービスに最適です。この例では、[従量課金] を選択します。

      • リージョン: ECS インスタンスのリージョンと同じである必要があります。

      • 回線タイプ: このパラメーターは一部のリージョンでのみカスタマイズできます。

      • セキュリティ保護: このパラメーターは、従量課金方法を使用する BGP (マルチ ISP) EIP に対してのみカスタマイズできます。

      • IP アドレスプール: IP アドレスプールがある場合は、そこから EIP を割り当てることができます。

      • 数量: 関連付ける予定の EIP の数を選択します。

    2. 各 EIP をセカンダリ ENI 上のプライベート IP アドレスに個別に関連付けます。

      1. VPC コンソール - Elastic IP Address ページに移動し、EIP が配置されているリージョンを選択します。

      2. ターゲット EIP の [アクション] 列で、[リソースへの関連付け] をクリックします。表示されるダイアログボックスで [ENI] を選択し、次にセカンダリプライベート IP アドレスを選択します。

ステップ 2: ポリシーベースルーティングの設定

ECS インスタンスでポリシーベースルーティングを設定して、対称的なトラフィックパスを確保します。

  1. ECS インスタンスにログインし、ルートテーブル table 1001 とプライベート IP アドレスのルーティングポリシーを作成して、セカンダリ ENI eth1 のデフォルトルートを追加します。

    ip -4 route add default via <Default gateway> dev eth1 metric 1001 && \
    ip -4 route add default via <Default gateway> dev eth1 table 1001 && \
    ip -4 rule add from <Private IPv4 address 1 of the secondary ENI> lookup 1001 && \
    ip -4 rule add from <Private IPv4 address 2 of the secondary ENI> lookup 1001 && \
    ip -4 rule add from <Private IPv4 address 3 of the secondary ENI> lookup 1001
  2. ip route list table 1001 && ip rule list を実行して、作成されたルートテーブルとポリシーベースルートを表示します。

    image

  3. システム起動時にルートが自動的に適用されるように設定して、インスタンスの再起動後も設定が維持されるようにします。

    1. vim /etc/rc.local を実行し、ルートテーブルとポリシーベースルートを作成するためのコマンドをファイルに追加します。

    2. sudo chmod +x /etc/rc.local を実行して、ファイルを実行可能にします。

ステップ 3: 設定の確認

アウトバウンド IP アドレスの確認

ECS インスタンスにログインし、curl --interface <セカンダリ ENI のプライベート IP アドレス> https://ifconfig.me を実行します。異なるプライベート IP アドレスから送信されたリクエストのパブリック出力 IP アドレスが、関連付けられた EIP と一致することを確認します。

image

インバウンドおよびアウトバウンドのトラフィックパスの確認

  1. インターネットにアクセスできる別のテスト ECS インスタンスにログインし、ping <セカンダリ ENI に関連付けられた EIP> を実行します。

  2. 同時に、ターゲット ECS インスタンスにログインし、tcpdump -i eth1 icmp を実行して eth1 上の ICMP パケットをキャプチャします。

パケットが eth1 を通じて出入りしていることがわかります。これは、トラフィックパスが対称であることを確認します。

image

本番環境での適用

  • リスク防止: このソリューションでは単一の ECS インスタンスを使用します。サービスの 高可用性 (HA) を確保するために、Server Load Balancer (SLB) の使用を推奨します。インスタンスの再起動やネットワーク設定の変更が発生した場合、ビジネスの中断が発生する可能性があることに注意してください。

  • モニタリングとアラート: ネットワークトラフィック、CPU、メモリ使用率など、セカンダリ ENI の主要なメトリックに対するモニタリングとアラートを設定して、異常を迅速に検出します。

  • セキュリティ強化: セカンダリ ENI のセキュリティグループルールを設定し、必要なポートとソース IP アドレスのみがサービスにアクセスできるように許可します。

課金

  • EIP の課金:

    • EIP 設定料金 (パブリック IP 保持料金):

      • 従量課金 EIP: EIP がセカンダリ ENI に関連付けられている場合、インターネットトラフィックがなくても、パブリック IP アドレスの保持に対して設定料金が請求されます。

      • サブスクリプション EIP: 設定料金は請求されません。

    • インターネットデータ転送料金:

      • 従量課金 EIP: 選択した課金方法 (帯域幅課金またはトラフィック課金) に基づいて料金が請求されます。

      • サブスクリプション EIP: 選択した課金方法 (帯域幅課金またはトラフィック課金) に基づいて料金が請求されます。

  • その他のリソースの課金: ECS インスタンスなどのリソースは、それぞれ独自のルールに従って課金されます。セカンダリ ENI は無料です。