ネットワーク分離、アーキテクチャの再設計、または IP 競合の解決を目的として、Elastic Compute Service (ECS) インスタンスを同一リージョンおよび同一ゾーン内の別の VPC に移行します。
ECS インスタンスの VPC を変更すると、一時的なサービスの中断が発生します。この操作はオフピーク時間帯に実行してください。開始する前に、スナップショットを作成してデータをバックアップしてください。
潜在的リスク
-
サービスの中断:この操作にはインスタンスが [停止済み] 状態である必要があるため、サービスが中断されます。
-
プライベート IP アドレスの変更:
-
プライマリプライベート IP アドレスは、移行先 vSwitch の CIDR ブロックから新しいアドレスに変更されます。アドレスを指定することも、システムに割り当てさせることもできます。データベース接続文字列、ファイアウォールのホワイトリスト、またはその他のサービス設定など、元の IP がハードコードされているアプリケーションは正常に動作しなくなります。VPC を変更した後、これらの設定を更新してください。
-
パブリック IP アドレスは変更されません。
-
-
ネットワーク接続の切断:インスタンスは、RDS インスタンス、SLB インスタンス、その他の ECS インスタンスなど、元の VPC 内のすべてのリソースへのプライベートネットワーク接続ができなくなります。
-
オペレーティングシステムのネットワーク設定:OS が静的 IP アドレスを使用している場合、VPC の変更後にそのネットワーク設定 (IP アドレス、ゲートウェイ) が新しい環境と一致しなくなり、ネットワーク通信やリモート接続ができなくなります。
操作手順
ステップ 1: 準備
-
スナップショットバックアップの作成:バックアップとロールバック用に、インスタンスのシステムディスクとデータディスクのスナップショットを作成してください。
-
インスタンスの停止
インスタンスは [停止済み] 状態である必要があります。コンソールのステータスは、ロック済みであってはなりません。インスタンスが実行中の場合は、インスタンスを停止してください。
-
前提条件の確認:
-
セカンダリ ENI:インスタンスからすべてのセカンダリ ENI をデタッチします。
-
複数の IP アドレス:プライマリ ENI からセカンダリプライベート IP アドレスの割り当てを解除し、IPv6 アドレスを削除します。
-
Server Load Balancer (SLB):任意の SLB バックエンドサーバーグループからインスタンスを削除します。
-
カスタムルートエントリ:インスタンスをネクストホップとして使用するカスタムルートを削除します。
-
高可用性仮想 IP アドレス (HaVip):任意の HaVip からインスタンスの関連付けを解除します。
-
Global Accelerator (GA):任意の GA インスタンスから、インスタンスを含むエンドポイントを削除します。
-
(任意) IP アドレス取得方法:インスタンスの OS が静的 IP 設定を使用している場合、VPC を変更する前に DHCP に切り替えて、OS が新しい IP アドレス、サブネットマスク、ゲートウェイを自動的に取得するようにします。
Linux
詳細については、「Linux イメージの DHCP の設定」をご参照ください。
Windows
以下の手順では、Windows Server 2022 を例として使用します。
Windows ECS インスタンスに接続します。
詳細については、「Workbench を使用して RDP 経由で Windows インスタンスに接続する」をご参照ください。
ネットワークと共有センターを開きます。
[アダプターの設定の変更] をクリックします。
[イーサネット] という名前のプライマリ ENI をダブルクリックします。次に、[イーサネットの状態] ダイアログボックスで [プロパティ] をクリックします。

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

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

-
-
移行先ネットワークリソースの準備:
-
VPC と vSwitch:インスタンスと同じゾーンに VPC と vSwitch が存在することを確認します。
-
セキュリティグループ:移行先 VPC にセキュリティグループを準備します。既存のルールをコピーするためにセキュリティグループのクローンを作成できます。
-
ステップ 2: VPC の変更
コンソール
-
ECS コンソールに移動します。インスタンスのリソースグループとリージョンを選択します。
-
[インスタンス] ページで、インスタンス ID をクリックして詳細ページを開きます。すべての操作 > VPC の変更 を選択します。
-
VPC を変更します。
-
[準備]:ネットワーク情報と注意事項を確認します。
-
[VPC]:[移行先 VPC]、[移行先 vSwitch]、[移行先セキュリティグループ] を設定します。
1~5つの移行先セキュリティグループを選択できます。選択したセキュリティグループは、すべて通常セキュリティグループ、またはすべてエンタープライズセキュリティグループのいずれかである必要があります。
-
(任意) [プライマリプライベート IP の設定]:移行先 vSwitch の CIDR ブロック内のプライマリプライベート IP アドレスを指定します。空のままにすると、システムが自動的に割り当てます。
-
-
結果を確認します。
インスタンスの詳細 ページの 設定 セクションで、新しい [VPC] と [VSwitch] を確認します。
VPC が変更された後、インスタンスは自動的に起動しません。手動でインスタンスを起動する必要があります。
API
VPC を変更するには、ModifyInstanceVpcAttribute API を呼び出します。
新しい VPC、vSwitch、およびセキュリティグループを確認するには、DescribeInstances API を呼び出します。
VPC を変更してもインスタンスは自動的に起動しません。起動するには StartInstance API を呼び出します。
よくある質問
-
複数の ECS インスタンスの VPC を一括で変更するにはどうすればよいですか?
詳細については、「[インスタンス] ページでの一括操作の実行」をご参照ください。一度に最大 20 個のインスタンスの VPC を変更できます。
-
CIDR ブロックを IP アドレス範囲に変換するにはどうすればよいですか?
詳細については、「CIDR ブロックを IP アドレス範囲に変換する例」をご参照ください。また、移行先 vSwitch 内のインスタンスで
ipcalcコマンドを使用して、CIDR ブロックの IP アドレス範囲を表示することもできます。 -
VPC 変更操作の結果に関するイベント通知をサブスクライブするにはどうすればよいですか?
-
CloudMonitor を通じて ECS システムイベントをサブスクライブします。ECS システムイベント通知をサブスクライブすると、vSwitch イベント通知を受信できます。
-
EventBridge を通じて ECS イベントをサブスクライブします。
-
-
InvalidDependence.GrantAccessエラーを解決するにはどうすればよいですか?
原因:インスタンスが、逆方向の承認リンクを持つ別のクラウドサービスに関連付けられています。
解決策:逆方向の承認リンクを解放してください。他の製品の承認を削除してから、もう一度お試しください。
Workbench を通じてプライベートリンクが生成された場合は、次のように解放します。
-
Workbench コンソールにログインします。[プライベートリンク] ページで、逆方向の承認リンクが存在するかどうかを確認します。存在する場合は、[リンクの解放] をクリックします。
-
[OK] をクリックしてリンクを解放し、再度 VPC の変更を試してください。
-
-
InvalidDependence.NextHopOfCustomRouterエラーを解決するにはどうすればよいですか?
原因:インスタンスがカスタムルートテーブルエントリのネクストホップになっています。
解決策:インスタンスをネクストホップとして使用するルートエントリを削除してください。
-
ルートテーブルコンソールにログインします。インスタンスの元の VPC のリージョンを選択します。
-
[ルートテーブル] ページで、インスタンスをネクストホップとして使用するルートを見つけます。削除 をクリックして削除し、再度 VPC の変更を試してください。

-
-
InvalidDependence.SLBエラーを解決するにはどうすればよいですか?
原因:インスタンスが、トラフィックをアクティブに処理していなくても、SLB サーバーグループに属しています。
解決策:SLB バックエンドサーバーグループからインスタンスを削除してから、もう一度お試しください。詳細については、「サーバーグループの作成と管理」をご参照ください。

-
EnterpriseGroupLimited.MutliGroupTypeエラーを解決するにはどうすればよいですか?
原因:選択したセキュリティグループのタイプに一貫性がありません。選択したグループはすべて通常セキュリティグループ、またはすべてエンタープライズセキュリティグループである必要があります。
解決策:同じタイプのセキュリティグループを選択してください。
-
Invalidinstance.AttachedEniエラーを解決するにはどうすればよいですか?
原因:インスタンスにセカンダリ ENI がアタッチされています。
解決策:インスタンスからすべてのセカンダリ ENI をデタッチしてください。
-
PrimaryEniHasSubIpエラーを解決するにはどうすればよいですか?
原因:プライマリ ENI にセカンダリプライベート IP アドレスが割り当てられています。
解決策:インスタンスからセカンダリプライベート IP アドレスの割り当てを解除してください。
関連ドキュメント
-
アカウント間で VPC を相互接続するには、VPC ピアリング接続または Cloud Enterprise Network (CEN) を使用します。
-
インスタンスを同じリージョン内の別のゾーンに移行するには、「ゾーン間移行」をご参照ください。
-
アカウント間またはリージョン間でインスタンスを移行するには、「異なるアカウント間または同一アカウント内での ECS インスタンスの移行」をご参照ください。