Edited at

GCPのプロジェクト間でインスタンスを移行する

More than 1 year has passed since last update.

最近GCPのプロジェクト間でインスタンスを移行する作業を行いました。

その時の手順について記載します。


前提


  • gcloudコマンドがインストールされていること。

  • 移行元・移行先両方のプロジェクトに対し、編集者以上の権限があること。


手順

移行するインスタンスのスナップショットを作成する。

gcloud compute disks snapshot [移行元インスタンス名] \

--zone [移行元インスタンスのゾーン] \
--snapshot-names [作成するスナップショット名] \
--project [移行元プロジェクトID]

作成したスナップショットからディスクを作成する。

gcloud compute disks create [作成するディスク名] \

--zone [作成するディスクのゾーン] \
--source-snapshot [作成したスナップショット名] \
--project [移行元プロジェクトID]

作成したディスクからイメージを作成する。

gcloud compute images create [作成するイメージ名] \

--source-disk [作成したディスク名] \
--source-disk-zone [作成したディスクのゾーン] \
--project [移行元プロジェクトID]

作成したイメージから移行先でインスタンスを作成する。

gcloud compute instances create [移行先インスタンス名] \

--zone [移行先インスタンスのゾーン] \
--image [作成したイメージ名] \
--image-project [移行元プロジェクトID] \
--project [移行先プロジェクトID]

以上でインタンスを別のプロジェクトに移行することができます。

実際の作業では、イメージ作成後にTerraformを利用してインスタンスを作成しました。


後片付け

不要であれば、作成したスナップショット・ディスク・イメージは削除します。

スナップショットを削除する。

gcloud compute snapshots delete [作成したスナップショット名] \

--project [移行元プロジェクトID]

ディスクを削除する。

gcloud compute disks delete [作成したディスク名] \

--zone [作成したディスクのゾーン] \
--project [移行元プロジェクトID]

イメージを削除する。

gcloud compute images delete [作成したイメージ名] \

--project [移行元プロジェクトID]