
オンプレミスからGCPへ:V2Vイメージを活用したVMの構築
- Google Cloud
- V2V
- オンプレミス
- システム移行
まえがき
はじめまして。トップゲートの Ozawa です。
本記事では、オンプレミスからGoogle Cloud Platform(GCP)へのシステム移行に際して、V2V(Virtual to Virtual)のイメージを使用して仮想マシン(VM)を作成する一連の手順について解説します。
はじめに
リフト&シフトとは
リフト&シフトは、オンプレミス環境からクラウド環境へのアプリケーション移行戦略の一つです。既存のシステムをそのまま“持ち上げて(Lift)”、“移設(Shift)”するという形態です。
Lift とは、既存のオンプレミスシステムをそのままクラウド環境へ持ち込むことです。クラウド移行を実現するためには、はじめにオンプレミス環境に存在するデータなどをクラウド環境に移す必要があります。そして、リフトが完了した後はシフトを行います。
シフトとは、クラウドへ持ち込んだ業務システムを徐々にクラウド環境に最適化していくことです。元々オンプレミスで運用していたシステムは、そのままクラウド環境で利用することはできません。クラウドの特性を踏まえながら、自社の生産性向上や業務効率化に繋がるよう、少しずつシステムに修正を加えていきます。
V2V変換の必要性
V2V(Virtual to Virtual)変換は、既存の仮想マシン(VM)を別のハイパーバイザーまたはクラウドプロバイダーに移行する際の手法です。これはアーキテクチャの差異を吸収し、継続的な運用を可能にします。
本手順では CentOS7のvmdkファイルを使用した手順を紹介いたします。
作成手順
GCP環境での手順は以下の通りになります。
- 既存環境からVMのディスクイメージを「vmdk」形式でエクスポート
- 必要権限の設定
- Cloud Storageにディスクイメージ格納用のバケットを作成
- ディスクイメージの作成
- VMインスタンスの作成
VMDK形式でエクスポート
対象のVMを「cent7-sample.vmdk」でエクスポート
上記作業はすでにできているものとして詳細は割愛いたします。
必要権限の設定
イメージをインポートまたはエクスポートするには、各ロールに対して権限が付与されているかを事前に確認し、付与されていない場合は権限付与を行ってください。
- 作業者
- ストレージ管理者のロール(roles/storage.admin)
- 閲覧者のロール(roles/viewer)
- プロジェクト IAM 管理者のロール(roles/resourcemanager.projectIamAdmin)
- Cloud Build 編集者のロール(roles/cloudbuild.builds.editor)
- Cloud Build
- サービス アカウント トークン作成者のロール(`roles/iam.serviceAccountTokenCreator`)
- サービス アカウント ユーザーのロール(`roles/iam.serviceAccountUser`)
- Compute 管理者のロール(`roles/compute.admin`)
- Compute Engine
- Compute ストレージ管理者のロール(`roles/compute.storageAdmin`)
- VM イメージのエクスポートとインポートに必要です。
- ストレージ オブジェクト閲覧者のロール(`roles/storage.objectViewer`)
- VM イメージのインポートに必要です。
- ストレージ オブジェクト管理者のロール(`roles/storage.objectAdmin`)
- VM イメージのエクスポートに必要です。
- Compute ストレージ管理者のロール(`roles/compute.storageAdmin`)
Cloud Storageバケットの作成
作成手順
- 「Cloud Storege」「バケット」「+作成」をクリックします。
- バケット名を入力します。

- ここでは「topgate-v2v-image-sample」と入力しています。
- データの保存場所の選択を行います。
- ここで選択するリージョンはVMを作成するリージョンと合わせる必要があります。

4. それ以外の項目はそのままにして「作成」ボタンをクリックします。

VMDKファイルのアップロード
作成したバケットに vmdk ファイルをアップロードします。
ここでは、「cent7-sample.vmdk」という名称でアップロードを行っております。
ディスクイメージの作成
手順
- 「Compute Engine」「イメージ」をクリックします。
- 「[+]イメージを作成」をクリックします。
- 「名前」を入力します。
- ここでは「centos7-sample」を入力しています。
- ソースを「仮想ディスク(VMDK、VHD)」を選択します。
- 「仮想ディスクのオペレーティングシステム」に対応するOSを選択します。
- ここでは「CentOS 7」を選択しています。

- 「作成」をクリックします。

VMインスタンスの作成
手順
- 「Compute Engine」「イメージ」をクリックします。
- 「+インスタンスを作成」をクリックします。
- 「新規VMインスタンス」をクリックします。
- 「名前」を入力します。
- 「リージョン」「ゾーン」を選択します。

- ここでのリージョンはCloud Storageのバケットリージョンと同じものを選択する必要があります
6. ブートディスクの「変更」をクリックします。

- カスタムイメージを選択し、「イメージ」に先程作成したイメージを選択します。
- 「選択」をクリック

- その他の項目は既定値として、「作成」をクリック

- VMインスタンスが作成されます。

まとめ
いかがでしたでしょうか。本記事では vmdkファイルからのマシンイメージ作成に焦点を当てGoogle Cloud へのV2Vイメージ作成手順について解説いたしました。
本手順がGUIによる構築方法を紹介していますが、大規模な環境で多数のVMインスタンスを一括で構築する際には、TerraformなどのInfrastructure as Code(IaC)の利用が更に効率的です。
本手順では「vmdk」からのマシンイメージ作成をご紹介いたしましたが、他クラウドのIaaSからGoogle Cloudへ移行する際にはMigrate for Compute Engine もあり無料で利用が可能です。
リフト&シフトのプロジェクトにおいて、ぜひGoogle Cloudをご検討ください。Google Cloudは、優れたパフォーマンスと柔軟性を提供し、お客様のビジネスに最適なソリューションを実現します。本記事が、その第一歩として役立つことを心より願っております。