elastic Compute Service (ECS) インスタンスにアタッチされているプライマリまたはセカンダリElastic network interface (ENI) に、1つ以上のセカンダリプライベートIPアドレスを割り当てることができます。 これは、マルチアプリケーション、フェールオーバー、およびServer Load Balancer (SLB) シナリオでの複数のプライベートIPアドレスのビジネス要件を満たしています。 このトピックでは、ECSインスタンスにセカンダリプライベートIPアドレスを割り当てて設定する方法と、セカンダリプライベートIPアドレスの割り当てを解除する方法について説明します。
概要
インスタンスのプライマリENIまたはセカンダリENIに、プライマリプライベートIPアドレスに加えて複数のIPアドレスが必要な場合は、複数のセカンダリプライベートIPアドレスをENIに割り当てることができます。 この場合、1つのECSインスタンスに複数のプライベートIPアドレスがあります。 次の図は、プライマリおよびセカンダリENIへのプライベートIPアドレスの割り当てを示しています。
シナリオ
セカンダリプライベートIPアドレスは、次のシナリオに適しています。
複数のアプリケーションを含むシナリオ: 複数のアプリケーションがECSインスタンスにデプロイされている場合、セカンダリプライベートIPアドレスをアプリケーションに割り当てることができます。 このように、各アプリケーションは通信に別々のIPアドレスを使用でき、単一のインスタンスは複数のサービスを提供してインスタンスの利用率を最大化できます。
フェイルオーバーシナリオ: インスタンスに障害が発生した場合、セカンダリENIのバインドをインスタンスから解除し、ENIを別のインスタンスにバインドできます。 障害が発生したインスタンスのセカンダリプライベートIPアドレス宛てのトラフィックを通常のインスタンスに転送して、サービスの継続性を確保できます。
SLBシナリオ: 複数のセカンダリプライベートIPアドレスが各インスタンスに割り当てられた後、SLBメカニズムは、インスタンス間で異なるプライベートIPアドレスにトラフィックを均等に分散できます。 これにより、システムのスケーラビリティとパフォーマンスが向上します。
セカンダリプライベートIPアドレスをENIに割り当てる
手順1: ENIに1つ以上のセカンダリプライベートIPアドレスを割り当てる
ECSコンソールのECSインスタンスにバインドされているプライマリENIまたはセカンダリENIの [ENI IPアドレスの管理] ダイアログボックスで、セカンダリプライベートIPアドレスを追加または削除できます。 次の手順を実行します。
にログインします。ECSコンソール.
左側のナビゲーションウィンドウで、.
上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。
[Elastic Network Interface] ページで、セカンダリプライベートIPアドレスを割り当てるENIを見つけ、[操作] 列の [ENI IPアドレスの管理] をクリックします。
[ENI IPアドレスの管理] ダイアログボックスで、[セカンダリプライベートIPv4アドレス] または [IPv6] セクションの [増加] をクリックします。
[確認] をクリックして、セカンダリプライベートIPアドレスの割り当てを完了します。
セカンダリプライベートIPアドレスが予想どおりにENIに割り当てられているかどうかを確認します。
ENIがバインドされているインスタンスのインスタンス詳細ページに移動し、[ENI] タブをクリックして、アドレス割り当て情報を表示します。 以下の図は一例です。
(条件付きで必要) ステップ2: ENIのバインド
セカンダリプライベートIPアドレスをセカンダリENIに追加する場合は、セカンダリENIがECSインスタンスにバインドされ、設定されていることを確認してください。 詳細については、「セカンダリENIのバインド」および「セカンダリENIの設定」をご参照ください。
この例では、セカンダリプライベートIPアドレスは、ECSインスタンスに既にバインドされているプライマリENIに割り当てられています。 したがって、この手順を実行する必要はありません。
手順3: セカンダリプライベートIPアドレスを認識するようにインスタンスのオペレーティングシステムを設定する
セカンダリプライベートIPアドレスをインスタンスに割り当てた後、オペレーティングシステムタイプとIPアドレスタイプに基づいて、インスタンスのセカンダリプライベートIPアドレスを設定する必要があります。 実行する必要がある操作は、オペレーティングシステムのタイプとIPアドレスのタイプによって異なります。
設定例
操作を実行する前に、ENIがバインドされているインスタンスが実行中 (実行中) 状態であることを確認してください。 インスタンスの起動方法については、「インスタンスの起動」をご参照ください。
次のオペレーティングシステムでの次の設定操作は参照用です。 構成動作は、オペレーティングシステムのタイプに基づいて異なり得る。
Linuxでの構成例
Linux ECSインスタンスに接続します。
詳細については、「Workbenchを使用したSSH経由のLinuxインスタンスへの接続」をご参照ください。
現在のネットワーク構成とルーティング情報を表示し、デフォルトゲートウェイとサブネットマスクを取得します。
ENIのプライマリプライベートIPv4アドレスの表示
次のコマンドを実行して、ネットワーク設定を照会します。
ip a
コマンドの出力例を次の図に示します。
コマンド出力は、eth0という名前のENIのネットワーク構成を示します。
サブネットマスクとゲートウェイの表示
次のコマンドを実行して、ルーティング情報を照会します。
route -n
次の図に示すサンプルのコマンド出力は、インスタンスのルーティング情報を示しています。
次の表に、インスタンスのネットワーク設定を示します。
ENI | ステータス | デフォルトゲートウェイ | サブネットマスク | プライマリプライベートIPアドレス | セカンダリプライベートIPv4アドレス1 | セカンダリプライベートIPv4アドレス2 |
eth0 (プライマリENIとして機能します) | アップ | 192.168.1.253 | 255.255.255.0 | 192.168.1.201 (自動的に設定されます) | 192.168.1.202 (認識できず、手動で設定する必要があります) | 192.168.1.203 (認識できず、手動で設定する必要があります) |
次のいずれかの方法を使用して、ビジネス要件に基づいてセカンダリプライベートIPv4アドレスを設定します。
nmcli con
コマンドを実行します。
説明 NetworkManagerは、Linuxオペレーティングシステムでネットワーク接続とネットワーク設定を管理するために使用されるデーモンプロセスです。 NetworkManagerは、ネットワーク接続を簡単に管理するためのnmcliコマンドラインツールを提供します。
nmcliは、NetworkManagerを使用してネットワークサービスを管理するすべてのオペレーティングシステムに適しています。Fedora、CentOS、Red Hat Enterprise Linux (RHEL) 、Ubuntu、Debian、およびそれらのディストリビューションが含まれますが、これらに限定されません。
この例では、接続名としてeth0が使用されています。 接続名を実際の接続名に置き換えます。
次のコマンドを実行して、cloud-initのネットワーク設定機能を無効にするファイルを作成します。 これにより、インスタンスの再起動による設定の失敗を防ぎます。 詳細については、このトピックの「cloud-init自動的にネットワーク設定を初期化する」をご参照ください。
sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
ファイルに次の設定を追加します。
network: {config: disabled}
次のコマンドを実行して、現在のネットワーク接続を確認します。
nmcli con show
ネットワーク接続の名前は、Linuxディストリビューションによって異なります。 次の図は、ネットワーク接続の例を示しています。
次のコマンドを実行して、eth0のセカンダリプライベートIPv4アドレス、デフォルトゲートウェイ、およびIPv4設定方法 (手動またはDHCP) を設定します。
sudo nmcli con modify System\ eth0 ipv4.addresses 192.168.1.201/24,192.168.1.202/24,192.168.1.203/24
sudo nmcli con modify System\ eth0 ipv4.gateway 192.168.1.253
sudo nmcli con modify System\ eth0 ipv4.method manual
次のコマンドを実行して、設定を有効にします。
sudo nmcli con up System\ eth0
「接続の有効化に成功しました」と同様のメッセージが返された場合、設定は有効になります。
ENIのネットワーク構成ファイルを変更する
重要 ネットワーク構成ファイルは、Linuxオペレーティングシステムの配布とバージョンによって異なります。
ネットワーク設定ファイルを変更する前に、バックアップすることを推奨します。
ネットワーク設定ファイルを正しく変更してください。 設定が正しくないと、インスタンス接続に失敗する可能性があります。
RHELシリーズ
説明 次の手順は、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、CentOS 6、CentOS 7、CentOS 8、Red Hat 6、Red Hat 7、Red Hat 8、Red Hat 8、Red Hat 9、Anolis 7、Anolis 8、Fedora 33、Fedora 34、Fedora 35に適用されます。
この例では、Alibaba Cloud Linux 3.2が使用されています。
この例では、eth0 ENIが使用されます。 ENI名を実際のENI名に置き換えます。
次のコマンドを実行して、ENIのメイン設定ファイルが存在するかどうかを確認します。 各ENIは、ENIを識別する対応する構成ファイルを有する。
ls /etc/sysconfig/network-scripts/ifcfg-eth0
メイン設定ファイルが存在する場合は、手順bに進みます。
メイン設定ファイルが存在しない場合は、メイン設定ファイルを作成し、基本的なENIパラメーターを設定します。
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
ENI名を指定し、IPアドレスを取得するメソッドとしてStaticを使用し、ENIのプライマリプライベートIPv4アドレス、サブネットマスク、およびゲートウェイ情報を設定します。
この例では、eth0のメイン设定ファイルは存在しません。 必要なパラメーターを設定する必要があります。 サンプルコードスニペット:
The ENI name. Example: eth0.
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=dhcp
#Activate the ENI when the operating system starts.
ONBOOT=yes
次のコマンドを実行してeth0のネットワーク設定ファイルを開き、eth0のセカンダリプライベートIPv4アドレス1を設定します。
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
サンプルコードスニペット:
#The ENI name in the format of <ENI name>:<Serial number of the secondary private IP address>.
DEVICE=eth0:0
TYPE=Ethernet
#The method used to obtain an IP address, which is set to Static.
BOOTPROTO=static
#The IPv4 address and subnet mask that require manual configuration.
IPADDR=192.168.1.202
NETMASK=255.255.255.0
eth0のセカンダリプライベートIPv4アドレス2の設定
説明 セカンダリプライベートIPアドレス2を設定する動作は、セカンダリプライベートIPアドレス1を設定する動作と同様である。 以下の点にご注意ください。
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0:1
サンプルコードスニペット:
#The ENI name in the format of <ENI name>:<Serial number of the secondary private IP address>.
DEVICE=eth0:1
TYPE=Ethernet
BOOTPROTO=static
#The IPv4 address and subnet mask that require manual configuration.
IPADDR=192.168.1.203
NETMASK=255.255.255.0
Ubuntu 22、Ubuntu 24、およびDebian 12
次のコマンドを実行して、cloud-initのネットワーク設定機能を無効にします。
重要 /etc/netplan/50-cloud-init.yamlネットワーク設定ファイルは、インスタンスの起動時にcloud-init
によって自動的に生成されます。 ファイルを変更する前に、cloud-initのネットワーク設定機能を無効にする必要があります。 詳細については、このトピックの「cloud-init自動的にネットワーク設定を初期化する」をご参照ください。
sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
次の設定を設定ファイルに追加します。
network: {config: disabled}
次のコマンドを実行してネットワーク設定ファイルを開き、ENIを設定します。
sudo vim /etc/netplan/50-cloud-init.yaml
サンプルコードスニペット:
network:
version: 2
ethernets:
eth0: #The name of the ENI.
dhcp4: false #By default, DHCP is enabled to automatically assign IP addresses. If the parameter is set to false, you must manually configure IP addresses for the ENI.
match:
macaddress: 00:16:3e:16:43:xx #Replace this parameter with the actual MAC address of your ENI.
set-name: eth0
addresses:
- 192.168.1.201/24 #The primary private IP address of the ENI.
- 192.168.1.202/24 #Secondary private IP address 1.
- 192.168.1.203/24 #Secondary private IP address 2.
routes:
- to: default
via: 192.168.1.253 #The default gateway.
ネットワークサービスを再起動して、新しい設定を有効にします。
説明 nmcli con
コマンドを実行する場合、ネットワークサービスを再起動する必要はありません。 NetworkManagerはネットワーク設定ファイルを監視し、新しい設定を自動的に適用します。
オペレーティングシステム | ネットワークサービスを再起動するコマンド |
| sudoサービスネットワーク再起動
sudo systemctl再起動ネットワーク
|
| sudoサービスネットワーク再起動
|
Alibaba Cloud Linux 3 CentOS 8 レッドハット8 アナリス8 フェドラ33、フェドラ34、およびフェドラ35
| sudo systemctl restart NetworkManager またはsudo reboot
|
| sudoネットプラン適用
|
| sudo systemctl restart networking またはsudo reboot
|
手順2を繰り返して、設定が有効かどうかを確認します。
Windowsの構成例
説明 この手順は、Windowsオペレーティングシステムに適用されます。
この例では、Windows Server 2022が使用されます。
この例では、Ethernetという名前のプライマリENIが使用されています。 セカンダリENIを使用する場合は、ENI名を実際のENI名に置き換えます。 例: イーサネット2
Windows ECSインスタンスに接続します。
詳細については、「Workbenchを使用したRDP経由のWindowsインスタンスへの接続」をご参照ください。
現在のネットワーク構成とルーティング情報を表示して、ENIのデフォルトゲートウェイとサブネットマスクを取得します。
コマンドプロンプトまたはWindows PowerShellを開きます。
次のコマンドを実行して、現在のENIとそのIPアドレスに関する情報を表示します。
ipconfig
次のコマンド出力は、現在のENIとそのIPアドレスに関する情報を示しています。
次の表に、ENIのネットワーク構成とルーティング情報を示します。
ENI | サブネットマスク | デフォルトゲートウェイ | プライマリプライベートIPアドレス | 設定するセカンダリプライベートIPv4アドレス1 | 設定するセカンダリプライベートIPv4アドレス2 |
イーサネット (プライマリENIとして機能) | 255.255.255.0 | 192.168.1.253 | 192.168.1.201 (自動的に設定されます) | 192.168.1.202 (認識できず、手動で設定する必要があります) | 192.168.1.203 (認識できず、手動で設定する必要があります) |
ネットワークと共有センターを開きます。
[アダプタ設定の変更] をクリックします。
Ethernetという名前のプライマリENIをダブルクリックします。 次に、[イーサネットステータス] ダイアログボックスで [プロパティ] をクリックします。
[イーサネットのプロパティ] ダイアログボックスで、[インターネットプロトコルバージョン4 (TCP/IPv4)] をダブルクリックします。
[インターネットプロトコルバージョン4 (TCP/IPv4) プロパティ] ダイアログボックスで、[次のIPアドレスを使用] を選択し、[詳細設定] をクリックします。
重要 IPアドレスを自動取得するポリシーが手動設定に変更されました。 プライマリプライベートIPアドレスを含む次のパラメーターを設定します。 それ以外の場合、プライマリプライベートIPアドレスを使用してインスタンスに接続することはできません。
[高度なTCP/IP設定] ダイアログボックスで、IPアドレスを設定します。
[IPアドレス] セクションで、[追加] をクリックします。 次に、イーサネットに割り当てられているプライマリプライベートIPアドレスとセカンダリプライベートIPアドレスと、照会したサブネットマスクを入力します。
この例では、イーサネットの2つのセカンダリプライベートIPアドレスを入力します。
[デフォルトゲートウェイ] セクションで、[追加] をクリックし、[ゲートウェイ] フィールドに照会したデフォルトゲートウェイを入力します。
[OK] をクリックして各ダイアログボックスに設定を保存し、セカンダリプライベートIPv4アドレスの設定を完了します。 手順2を繰り返して、設定が有効かどうかを確認します。
他のオペレーティングシステムでの設定例
Ubuntu 14、Ubuntu 16、Debian 8、Debian 9、Debian 10、およびDebian 11
次のコマンドを実行してネットワーク設定ファイルを開き、ENIを設定します。
sudo vi /etc/network/interfaces
説明 Debian 10の一部のリリース以降、/etc/network/interfaces
ファイルには、/etc/network/interfaces.d/
ディレクトリに格納されているネットワークインターフェイス設定ファイルへのシンボリックリンクが含まれていますが、ネットワークインターフェイス設定は含まれていません。
ビジネスシナリオに基づいて、/etc/network/interfacesファイルではなく、ネットワークインターフェイス設定ファイルで次の設定項目を設定できます。
例:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth0:0
iface eth0:0 inet static
address 192.168.1.202
netmask 255.255.255.0
auto eth0:1
iface eth0:1 inet static
address 192.168.1.203
netmask 255.255.255.0
ネットワークサービスを再起動して、新しい設定を有効にします。
SLESシリーズ
説明 次の手順は、SUSE Linux 11、SUSE Linux 12、SUSE Linux 15、およびopenSUSE 15のオペレーティングシステムに適用されます。
この例では、SUSE Linux 15 SP5が使用されます。
この例では、eth0 ENIが使用されます。 ENI名を実際のENI名に置き換えます。
次のコマンドを実行してeth0の設定ファイルを開きます。このファイルでは、セカンダリプライベートIPv4アドレスとそのサブネットマスクを指定できます。
sudo vi /etc/sysconfig/network/ifcfg-eth0
サンプル设定ファイル:
#Disable DHCP to allow you to manually configure IP addresses.
BOOTPROTO=static
STARTMODE=auto
USERCONTROL=no
#Suffix serial numbers to multiple IP addresses.
IPADDR_1=192.168.1.201
NETMASK_1=255.255.255.0
LABEL_1=
IPADDR_2=192.168.1.202
NETMASK_2=255.255.255.0
LABEL_2=0
IPADDR_3=192.168.1.203
NETMASK_3=255.255.255.0
LABEL_3=1
説明 テンプレート設定ファイルに関するヘルプ情報を表示するには、sudo cat /etc/sysconfig/network/ifcfg.template
コマンドを実行します。
次のコマンドを実行して、デフォルトのゲートウェイ情報がグローバルネットワーク構成ファイルに存在するかどうかを確認します。
cat /etc/sysconfig/network/routes
デフォルトのゲートウェイ情報がグローバルネットワーク構成ファイルに存在しない場合は、デフォルトのゲートウェイ情報をファイルに追加します。 例:
default 192.168.1.253 - -
ネットワークサービスを再起動して、新しい設定を有効にします。
セカンダリプライベートIPアドレスの割り当て解除
ENIがセカンダリプライベートIPアドレスを必要としなくなった場合、ENIからセカンダリプライベートIPアドレスの割り当てを解除できます。 次の手順を実行して、セカンダリプライベートIPアドレスの割り当てを解除できます。
前提条件
ENIからセカンダリプライベートIPアドレスの割り当てを解除する前に、次の前提条件が満たされていることを確認してください。
1つ以上のセカンダリプライベートIPアドレスがENIに割り当てられます。
ENIはAvailable (Available) またはInUse (InUse) 状態です。
プライマリENIからセカンダリプライベートIPアドレスの割り当てを解除すると、プライマリENIがバインドされているECSインスタンスは実行中 (実行中) または停止 (停止中) の状態になります。
手順
にログインします。ECSコンソール.
左側のナビゲーションウィンドウで、.
上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。
[Elastic Network Interface] ページで、セカンダリプライベートIPアドレスの割り当てを解除するENIを見つけ、[操作] 列の [ENI IPアドレスの管理] をクリックします。
[ENI IPアドレスの管理] ダイアログボックスで、割り当てを解除するセカンダリプライベートIPアドレスを [セカンダリプライベートIPv4アドレス] セクションで見つけ、IPアドレスの右側にあるアイコンをクリックします。
[OK] をクリックします。
ENIリストを更新します。 ENIのIPアドレス列に割り当て解除したセカンダリプライベートIPアドレスが表示されなくなった場合、セカンダリプライベートIPアドレスはENIから割り当て解除されます。
関連する API
cloud-initは自動的にネットワーク設定を初期化します
cloud-initは、初期パスワードの生成、ホスト名の設定、ユーザーデータスクリプトの実行など、Linuxオペレーティングシステムの初期化操作を自動化するオープンソースの初期化ツールです。 cloud-initは、すべてのAlibaba Cloudパブリックイメージにプリインストールされています。 ECSインスタンスが起動すると、cloud-initはインスタンスのネットワーク設定を自動的に生成します。
ネットワーク設定ファイルの説明を参照して、ファイルがcloud-initによって自動的に生成されているかどうかを確認します。
cloud-initがネットワーク設定ファイルを自動的に生成するかどうかの情報を表示できます。 この例では、Alibaba Cloud Linux 3.2の /etc/sysconfig/network-scripts/ifcfg-eth0設定ファイルの説明が表示されます。
cloud-initのネットワーク設定機能を無効にします。
cloud-initのネットワーク設定機能を無効にするシナリオ: 次のシナリオでは、cloud-initのネットワーク設定機能を無効にすることができます。 そうしないと、インスタンスが再起動すると、cloud-initによって自動的に生成されたネットワーク設定がカスタムネットワーク設定を上書きする可能性があります。
cloud-initのネットワーク設定機能を無効にする方法: /etc/cloud/cloud.cfg.d/99-disable-network-config.cfgファイルを作成し、network: {config: disabled}
設定をファイルに追加します。
重要 cloud-initの詳細については、Linuxインスタンスオペレーティングシステムにログインし、/etc/cloud/cloud.cfg.d/READMEファイルで情報を表示します。
IPアドレスの設定
オペレーティングシステムでIPアドレスを設定するために使用される方法には、DHCP (デフォルト) と静的が含まれます。 セカンダリプライベートIPアドレスを設定するときは、ビジネスシナリオに基づいて設定方法を選択します。
静的設定: サブネットマスク、デフォルトゲートウェイ、DNSサーバーアドレスなど、必要なネットワークパラメーターを手動で設定する必要があります。
DHCP動的取得: DHCPは、ネットワーク内のデバイスがIPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSサーバーアドレスなどのネットワーク構成を自動的に取得できるようにするネットワークプロトコルです。 DHCP動的取得が有効になっている場合、LinuxインスタンスのセカンダリプライベートIPアドレスを設定することもできます。