Elastic Compute Server (ECS) インスタンス上の各 Elastic Network Interface (ENI) には、Virtual Private Cloud (VPC) 内での通信に使用されるプライマリプライベート IPv4 アドレスが割り当てられています。このアドレスは ENI にバインドされており、削除はできませんが、変更は可能です。
基本概念
以下の図は、ECS インスタンス、ENI、プライベート IP アドレスの関係を示しています。インスタンスで複数の IP アドレスが必要な場合は、プライマリ ENI にセカンダリプライベート IP アドレスを割り当てるか、ECS インスタンスにセカンダリ ENI をアタッチすることができます。
ENI (Elastic Network Interface): ECS インスタンスにアタッチできる仮想ネットワークインターフェースです。各インスタンスには、デタッチ不可能なプライマリ ENI が 1 つあり、必要に応じてセカンダリ ENI をアタッチできます。
プライマリプライベート IPv4 アドレス: 各 ENI には、プライマリプライベート IPv4 アドレスが 1 つ必要です。
プライマリ ENI のプライマリプライベート IPv4 アドレスは変更できます。
セカンダリ ENI のプライマリプライベート IPv4 アドレスは、作成後は変更できません。別のアドレスを使用するには、ENI をデタッチして削除してから、新しいセカンダリ ENI を作成する必要があります。
セカンダリプライベート IPv4 アドレス: ENI (通常はプライマリ ENI) に1 つ以上のセカンダリプライベート IP アドレスを割り当てることで、単一インスタンスで複数の IP アドレスを設定できます。プライマリプライベート IP アドレスを変更する前に、まずすべてのセカンダリプライベート IP アドレスの割り当てを解除する必要があります。
システム予約 IP アドレス: vSwitch の CIDR ブロック内で、最初のアドレスと最後の 3 つの IPv4 アドレスはシステムによって予約されており、指定できません。たとえば、vSwitch の CIDR ブロックが 192.168.1.0/24 の場合、192.168.1.0、192.168.1.253、192.168.1.254、192.168.1.255 のアドレスがシステム予約 IP アドレスになります。
ECS インスタンスの作成時にプライマリ ENI のプライマリプライベート IPv4 アドレスを指定する
新しいインスタンスを作成するときに、そのプライマリ ENI に静的プライベート IPv4 アドレスを直接割り当てることができます。
コンソール
ECS コンソール - カスタム購入 ページに移動します。
[ネットワークとゾーン] セクションで、既存の VPC と vSwitch を選択するか、[VPC の作成] と [vSwitch の作成] をクリックして VPC コンソールで VPC と vSwitchを作成します。作成後、ECS 作成ウィザードに戻り、
をクリックして新しい VPC と vSwitch を選択します。[プライマリ ENI のプライマリプライベート IP アドレスの指定] を選択し、選択した vSwitch の CIDR ブロック内から利用可能な IP アドレスを入力します。
システムは IP アドレスの可用性をリアルタイムで検証します。使用中のアドレスやシステム予約 IP アドレスは指定できません。

API
ECS インスタンスの作成時にプライマリプライベート IP アドレスを割り当てるには、RunInstances API を呼び出し、PrivateIpAddress パラメーターを指定します。
既存インスタンスのプライマリ ENI のプライマリプライベート IPv4 アドレスを変更する
既存インスタンスのプライマリプライベート IP アドレスの変更は、インスタンスの再起動とネットワークの中断を伴う高リスク操作です。必ずメンテナンス期間中や業務のオフピーク時に実行し、以下の手順に厳密に従ってください。
リスク評価
サービス中断: この操作では、インスタンスを [停止済み] 状態である必要があり、サービス中断が発生します。
インスタンスのネットワーク接続の切断:
インスタンスのオペレーティングシステム (OS) が静的 IP アドレスで設定されている場合、プライベート IP アドレスを変更すると、OS のネットワーク構成 (IP アドレスやゲートウェイなど) と新しい設定との間に不一致が生じる可能性があります。これにより、インスタンスへのリモート接続ができなくなり、通信が中断されます。
元の IP アドレスがハードコードされているアプリケーション、クラウドサービス (データベースの接続文字列、ホワイトリストのルール、他のサービスの設定など)、およびシステム設定ファイル (/etc/hosts など) はすべて機能しなくなります。変更後に手動で更新する必要があります。
ステップ 1: 準備
インスタンスの停止
インスタンスは、停止済み状態であり、コンソールでロック済みになっていない必要があります。インスタンスが実行中の場合は、まずインスタンスを停止する必要があります。
前提条件の確認
複数のプライベート IP アドレス: プライマリ ENI にセカンダリプライベート IPv4 または IPv6 アドレスが割り当てられている場合は、まずセカンダリプライベート IP アドレスの割り当てを解除するか、割り当てられた IPv6 アドレスを削除する必要があります。
(オプション) インスタンス内での IP 取得方法: インスタンスの OS が静的 IP アドレスで設定されている場合は、処理を進める前にネットワーク構成を DHCP (Dynamic Host Configuration Protocol) に変更することを推奨します。DHCP を使用すると、インスタンスは IP アドレス、サブネットマスク、デフォルトゲートウェイなどの構成情報を自動的に取得します。
Linux
詳細については、「Linux イメージでネットワークを DHCP として設定する方法」をご参照ください。
Windows
以下の手順では、Windows Server 2022 を例として使用します。
Windows インスタンスに接続します。
詳細については、「ワークベンチを使用して RDP 経由で Windows インスタンスに接続する」をご参照ください。
ネットワークと共有センターを開きます。
[アダプターの設定の変更] をクリックします。
[イーサネット] という名前のプライマリ ENI をダブルクリックします。次に、[イーサネットの状態] ダイアログボックスで、[プロパティ] をクリックします。

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

[インターネットプロトコルバージョン 4 (TCP/IPv4) のプロパティ] ダイアログボックスで、[IP アドレスを自動的に取得する] を選択します。

(オプション) ネットワークリソースの準備
同じ vSwitch 内の未割り当ての IP アドレスに変更するだけの場合は、このステップをスキップできます。以下のシナリオでは、ネットワークリソースを準備する必要があります。
プライマリプライベート IP アドレスを同じゾーン内の別の CIDR ブロックに移動するには、宛先 CIDR ブロック用の vSwitch を作成します。
ターゲット CIDR ブロックが現在の VPC のアドレス空間外にある場合は、まずVPC にセカンダリ CIDR ブロックを追加し、次にターゲット CIDR ブロック用の vSwitch を作成します。
ステップ 2: ECS インスタンスのプライマリ ENI のプライマリプライベート IP アドレスを変更する
コンソール
ECS コンソール - インスタンス ページに移動します。ページの左上で、対象インスタンスのリソースグループとリージョンを選択します。
vSwitch を変更したい対象インスタンスを見つけ、インスタンス ID をクリックして詳細ページに移動します。
[すべての操作] をクリックし、 を選択します。
プライマリプライベート IP アドレスを変更します。
(オプション) vSwitch を変更するには、現在の vSwitch と同じゾーンにあるターゲット vSwitch を選択します。
[プライベート IP アドレス] を設定します。新しいプライベート IP アドレスは、ターゲット vSwitch の CIDR ブロック内の利用可能なアドレスである必要があります。
アドレスを指定しない場合、システムは自動的に新しいプライマリプライベート IP アドレスを割り当てます。
変更が完了したら、[インスタンスの詳細] ページの [設定情報] セクションで新しい vSwitch を表示できます。
インスタンスのプライマリ ENI のプライマリプライベート IP アドレスを変更した後、インスタンスは自動的に起動しません。手動でインスタンスを起動する必要があります。
API
ModifyInstanceVpcAttribute API を呼び出して、ECS インスタンスのプライマリ ENI の vSwitch とプライマリプライベート IP アドレスを変更します。
変更完了後、DescribeInstances API を呼び出して、インスタンスの新しい vSwitch とプライベート IP アドレスを確認できます。
vSwitch を変更した後、インスタンスは自動的に起動しません。StartInstance API を呼び出して手動で起動する必要があります。
セカンダリ ENI のプライマリプライベート IPv4 アドレスを設定する
セカンダリ ENI のプライマリプライベート IP アドレスを手動で指定できるかどうかは、その作成方法によって異なります。
ECS インスタンスと同時に作成: IP アドレスを指定することはできず、システムによって自動的に割り当てられます。
個別に作成: vSwitch の CIDR ブロック内から利用可能な任意の IP アドレスを手動で指定できます。アドレスを指定しない場合、システムが自動的に割り当てます。
セカンダリ ENI のプライマリプライベート IPv4 アドレスは、作成後は変更できません。アドレスを変更するには、ENI をデタッチしてから新しいセカンダリ ENI を作成する必要があります。新しい ENI の作成時に、vSwitch の CIDR ブロックから利用可能なアドレスを指定し、その後インスタンスにアタッチします。