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

Elastic Compute Service:セカンダリプライベートIPアドレスの割り当て

最終更新日:Aug 28, 2024

1つ以上のセカンダリプライベートIPアドレスをプライマリまたはセカンダリのelastic network interface (ENI) に割り当てて、マルチアプリケーション、フェールオーバー、およびServer Load Balancer (SLB) シナリオのビジネス要件を満たすことができます。 このトピックでは、ECS (Elastic Compute Service) インスタンスにセカンダリプライベートIPアドレスを割り当て、セカンダリプライベートIPアドレスを設定する方法について説明します。

シナリオ

セカンダリプライベートIPアドレスは、次のシナリオに適しています。

  • マルチアプリケーションシナリオ: インスタンスが複数のアプリケーションをホストしている場合、各アプリケーションが送信接続に個別のIPアドレスを使用できるように、セカンダリプライベートIPアドレスをアプリケーションに割り当てることができます。 これにより、1つのインスタンスで複数のサービスを提供し、インスタンスの利用率を最大化できます。

  • フェイルオーバーシナリオ: インスタンスに障害が発生した場合、インスタンスからセカンダリENIのバインドを解除し、ENIを別のインスタンスにバインドして、障害が発生したインスタンスのセカンダリプライベートIPアドレス宛てのトラフィックを通常のインスタンスに転送できます。 これにより、サービスの継続性が確保される。

  • SLBシナリオ: 各インスタンスに複数のセカンダリプライベートIPアドレスを割り当てることで、SLBメカニズムを実装して、複数のインスタンスにトラフィックを均等に分散できます。 これにより、システムのスケーラビリティとパフォーマンスが向上します。

制限事項

セカンダリプライベートIPアドレスを割り当てるときは、次の制限事項に注意してください。

  • セキュリティグループの制限: Virtual private Cloud (VPC) タイプのセキュリティグループに含まれるプライベートIPアドレスの数に制限があります。 詳細については、「制限」トピックのセキュリティグループの制限セクションを参照してください。

  • ENIの制限: ENIに割り当てることができるプライベートIPアドレスの最大数は、ENIのステータスによって異なります。

    • [使用可能] 状態のENIでは、最大10個のプライベートIPアドレスを割り当てることができます。

    • [InUse] 状態のENIの場合、割り当てることができるプライベートIPアドレスの最大数は、ENIがバインドされているインスタンスのインスタンスタイプによって異なります。 詳細については、「インスタンスファミリーの概要」をご参照ください。

手順

ステップ1: 準備をする

次の要件が満たされていることを確認してください。

  • ENIがバインドされているインスタンスは、実行中 (実行中) 状態です。 詳細については、「インスタンスの起動」をご参照ください。

  • ENIはインスタンスにバインドされています。 詳細については、「セカンダリENIのバインド」をご参照ください。

ステップ2: セカンダリプライベートIPアドレスの割り当て

  1. ECSコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、ネットワーク&セキュリティ > Elastic Network Interfaceを選択します。

  3. 上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。 地域

  4. [Elastic Network Interface] ページで、セカンダリプライベートIPアドレスを割り当てるENIを見つけ、[操作] 列の [ENI IPアドレスの管理] をクリックします。

  5. [ENI IPアドレスの管理] ダイアログボックスで、[セカンダリプライベートIPv4アドレス] または [IPv6] セクションの [増加] をクリックします。

    • フィールドを空のままにすると、ENIが接続されているvSwitchのプライベートIPv4またはIPv6 CIDRブロック内からランダムなIPアドレスが自動的に割り当てられます。

    • IPアドレスを入力する場合は、IPアドレスがENIが接続されているvSwitchのプライベートIPv4またはIPv6 CIDRブロック内にあることを確認してください。

    image

  6. [確認]をクリックします。

ステップ3: インスタンスのセカンダリプライベートIPアドレスを設定する

セカンダリプライベートIPアドレスをインスタンスに割り当てた後、オペレーティングシステムタイプとIPアドレスタイプに基づいて、インスタンスのセカンダリプライベートIPアドレスを設定する必要があります。 実行する必要がある操作は、オペレーティングシステムのタイプとIPアドレスのタイプによって異なります。

説明

セカンダリプライベートIPv6アドレスの設定方法については、「ECSインスタンスのIPv6アドレスの設定」をご参照ください。

Windows インスタンス

  1. ECSインスタンスに接続します。

    接続方法の詳細については、「接続方法の概要」をご参照ください。

  2. インスタンスのサブネットマスクとデフォルトゲートウェイを表示します。

    1. コマンドプロンプトまたはWindows PowerShellを開きます。

    2. ipconfigコマンドを実行して、インスタンスのサブネットマスクとデフォルトゲートウェイを表示します。

      次の図に示すサンプルのコマンド出力が返されます。 コマンド出力は、イーサネットが使用されていることを示します。windows-viewip-original

  3. [ネットワークと共有センター] をクリックします。

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

  5. 使用中のネットワーク接続をダブルクリックします。 この例では、Ethernetという名前のネットワーク接続が使用されています。 [Ethernetステータス] ダイアログボックスで [プロパティ] をクリックします。

  6. [イーサネットのプロパティ] ダイアログボックスで、[インターネットプロトコルバージョン4 (TCP/IPv4)] をダブルクリックします。

  7. [インターネットプロトコルバージョン4 (TCP/IPv4) プロパティ] ダイアログボックスで、[次のIPアドレスを使用] を選択し、[詳細設定] をクリックします。

  8. [高度なTCP/IP設定] ダイアログボックスで、IPアドレスを設定します。

    1. [IPアドレス] セクションで、[追加] をクリックし、割り当てられたIPアドレスの1つをIPアドレスフィールドに入力し、取得したサブネットマスクを [サブネットマスク] フィールドに入力します。

      この手順を繰り返して、同じアダプタに複数のIPアドレスを追加できます。

      添加IP地址

    2. [デフォルトゲートウェイ] セクションで、[追加] をクリックし、[デフォルトゲートウェイ] フィールドに取得したデフォルトゲートウェイを入力します。

  9. [OK] をクリックします。

  10. ipconfigコマンドを実行して、設定結果を確認します。

    次の図は、2つのセカンダリプライベートIPアドレスを設定するためのサンプルコマンドの出力を示しています。windows-viewip-new

説明

インスタンスのセカンダリプライベートIPアドレスを設定した後、Windowsインスタンスがインターネットにアクセスできない場合、の手順に従って問題のトラブルシューティングを行います。WindowsインスタンスのセカンダリプライベートIPアドレスを設定した後、インスタンスはインターネットに接続できません。 これはなぜですか。 「ネットワークFAQ」トピックのセクション。

Red Hat Enterprise Linux (RHEL) オペレーティングシステムを実行するLinuxインスタンス

重要

この手順は、次のオペレーティングシステムに適用されます。Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、CentOS 6、CentOS 7、CentOS 8、Red Hat 6、Red Hat 7、Red Hat 8、Anolis 7、Anolis 8、Fedora 33、およびFedora 34。

  1. ECSインスタンスに接続します。

    接続方法の詳細については、「接続方法の概要」をご参照ください。

  2. ネットワーク設定を表示します。

    • ifconfigコマンドを実行してサブネットマスクを照会し、route -nコマンドを実行してデフォルトゲートウェイを照会します。

      コマンド出力の例を次の図に示します。view-ips

      上記のコマンド出力では、netmaskに対応する255.255.**.** がIPv4サブネットマスクで、Gatewayに対応する192.**.**.253がデフォルトゲートウェイです。

      説明

      インスタンスで使用されるLinuxディストリビューションがifconfigコマンドをサポートしていない場合は、代わりにip aコマンドまたはip addr showコマンドを実行します。

    • ls /etc/sysconfig/network-scripts/ifcfg-<Name of the ENI> コマンドを実行し、ENIのプライマリプライベートIPアドレスを含む設定ファイルが存在するかどうかを確認します。

      コマンド出力の例を次の図に示します。

      • 指定されたファイルが存在しません

        image.png上記のメッセージが返された場合、ENIのプライマリプライベートIPアドレスを含む構成ファイルは存在しません。 sudo vi /etc/sysconfig/network-scripts/ifcfg-<Name of the ENI> コマンドを実行して、設定ファイルでENIのプライマリプライベートIPアドレスを指定する必要があります。

        例:

        DEVICE=<Name of the ENI> // Example: eth1
        TYPE=Ethernet
        BOOTPROTO=static
        ONBOOT=yes
        
        IPADDR=<Assigned primary private IPv4 address>
        NETMASK=<IPv4 subnet mask>
        GATEWAY=<Default gateway>
      • 指定されたファイルが存在します

        image.png

        上記のメッセージが返された場合、ENIのプライマリプライベートIPアドレスを含む構成ファイルが存在します。 この手順を無視して、次の手順に進みます。

  3. ネットワーク設定ファイルを変更します。

    説明

    次の例では、eth1という名前のセカンダリENIが使用されます。 ビジネス要件に基づいてDEVICEの値を置き換える必要があります。

    • 単一のセカンダリプライベートIPv4アドレスを設定するには、sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1:0コマンドを実行して、設定ファイルに設定項目を追加します。

      例:

      DEVICE=eth1:0
      TYPE=Ethernet
      BOOTPROTO=static
      
      IPADDR=<Assigned secondary private IPv4 address 1>
      NETMASK=<IPv4 subnet mask>
    • セカンダリプライベートIPv4アドレスをさらに設定する場合は、[デバイス] シーケンス番号をインクリメントし、対応する設定項目を追加します。

      たとえば、sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1:1コマンドを実行して、次のサンプル設定項目を追加します。

      DEVICE=eth1:1
      TYPE=Ethernet
      BOOTPROTO=static
      
      IPADDR=<Assigned secondary private IPv4 address 2>
      NETMASK=<IPv4 subnet mask>
  4. 設定を有効にするために、オペレーティングシステムに基づいて対応するコマンドを実行します。

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

    コマンド

    • Alibaba Cloud Linux 2

    • CentOS 7

    • レッドハット7

    • アナリス7

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

    • sudoサービスネットワーク再起動

    • sudo systemctl再起動ネットワーク

    • CentOS 6

    • レッドハット6

    sudo service network restartコマンドを実行して、ネットワークサービスを再起動します。

    • Alibaba Cloud Linux 3

    • CentOS 8

    • レッドハット8

    • アナリス8

    • Fedora 33/34

    次の操作を実行します。

    1. sudo systemctl restart NetworkManagerコマンドを実行して、ネットワークサービスを再起動します。

    2. sudo nmcli device reapply eth1コマンドを実行してeth1 ENIに再接続するか、sudo rebootコマンドを実行してインスタンスを再起動します。

  5. ifconfigコマンドを実行して、設定が有効かどうかを確認します。

    次の図は、2つのセカンダリプライベートIPアドレスを設定するためのサンプルコマンドの出力を示しています。add-secip

Debianオペレーティングシステムを実行するLinuxインスタンス

次の手順を実行する前に、次の項目に注意してください。

  • この手順は、Ubuntu 18、Ubuntu 20、Ubuntu 14、Ubuntu16、Debian 8、Debian 9、Debian 10のオペレーティングシステムに適用されます。

  • 次の例では、eth0プライマリENIが使用されています。 セカンダリENIを使用する場合は、ENI IDを実際のENI IDに置き換えます。

  1. ECSインスタンスに接続します。

    接続方法の詳細については、「接続方法の概要」をご参照ください。

  2. インスタンスが実行するオペレーティングシステムに基づいて、セカンダリプライベートIPアドレスを設定します。

    • Debianシリーズ: Ubuntu 18およびUbuntu 20

      1. cloud-initネットワーク設定を無効にします。 sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfgコマンドを実行して、設定ファイルを開き、対応する設定項目をファイルに追加します。

        例:

        network: {config: disabled}
      2. sudo vim /etc/netplan/50-cloud-init.yamlコマンドを実行してネットワーク設定ファイルを開き、動的ホスト設定プロトコル (DHCP) を使用して割り当てられたIPアドレスを静的IPアドレスに変更します。

        例:

        network:
            version: 2
            ethernets:
                eth0:
                    match:
                        macaddress: 00:16:3e:36:**:**
                    addresses:
                      - <Primary private IPv4 address>/<Subnet mask bit>
                      - <Assigned secondary private IPv4 address 1>/<Subnet mask bit>
                      - <Assigned secondary private IPv4 address 2>/<Subnet mask bit>
                    gateway4: <Default gateway>
        説明

        <Subnet mask bit> は、サブネットマスクに対応するサブネットマスクビットに置き換える必要があります。 たとえば、255.255.255.0サブネットマスクのサブネットマスクビットを /24に設定します。

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

      4. ip -aコマンドを実行して、設定が有効かどうかを確認します。

        次の図は、2つのセカンダリプライベートIPアドレスを設定するためのサンプルコマンドの出力を示しています。ubuntu18-viewsecip

    • Debianシリーズ: Ubuntu 14、Ubuntu 16、Debian 8、Debian 9、およびDebian 10

      1. sudo vi /etc/network/interfacesコマンドを実行して、ネットワーク設定ファイルを開き、対応する設定項目をファイルに追加します。

        例:

        auto eth0:0
        iface eth0:0 inet static
        address <Assigned secondary private IPv4 address 1>
        netmask <IPv4 mask>
        
        auto eth0:1
        iface eth0:1 inet static
        address <Assigned secondary private IPv4 address 2>
        netmask <IPv4 mask>
      2. sudo rebootコマンドを実行して、インスタンスを再起動します。

      3. ifconfigコマンドを実行して、設定が有効かどうかを確認します。

        次の図は、2つのセカンダリプライベートIPアドレスを設定するためのサンプルコマンドの出力を示しています。ubuntu-debian-secip

SUSE Linux Enterprise Server (SLES) オペレーティングシステムを実行するLinuxインスタンス

次の手順を実行する前に、次の項目に注意してください。

  • この手順は、SUSE 11、SUSE 12、SUSE 15、OpenSUSE 15、OpenSUSE 42のオペレーティングシステムに適用されます。

  • 次の例では、eth0プライマリENIが使用されています。 セカンダリENIを使用する場合は、ENI IDを実際のENI IDに置き換えます。

  1. ECSインスタンスに接続します。

    接続方法の詳細については、「接続方法の概要」をご参照ください。

  2. sudo vi /etc/sysconfig/network/ifcfg-eth0コマンドを実行して、ネットワーク設定ファイルを開き、対応する設定項目を追加します。 例:

    IPADDR_0=<Assigned secondary private IPv4 address 1>
    NETMASK_0=<IPv4 subnet mask>
    LABEL_0='0'
    
    IPADDR_1=<Assigned secondary private IPv4 address 2>
    NETMASK_1=<IPv4 subnet mask>
    LABEL_1='1'
  3. sudo service network restartまたはsudo systemctl restart networkコマンドを実行して、ネットワークサービスを再起動します。

  4. ifconfigコマンドを実行して、設定が有効かどうかを確認します。

    次の図は、2つのセカンダリプライベートIPアドレスを設定するためのサンプルコマンドの出力を示しています。suse-secip