マシンイメージを作成する


マシンイメージを使用すると、Compute Engine で実行される VM インスタンス用に、すべての構成、メタデータ、権限、データを複数のディスクから格納できます。マシンイメージを作成するために使用する VM インスタンスは、ソース VM インスタンスと呼ばれます。

マシンイメージを使用するタイミングと方法については、マシンイメージをご覧ください。

このドキュメントでは、ソース VM インスタンスからマシンイメージを作成する手順を説明します。

始める前に

  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

制限事項

  • 特定のインスタンスのマシンイメージは、60 分ごとに最大 6 回作成できます。
  • マシンイメージを保護するには、Cloud Key Management Service(Cloud KMS)または顧客指定の暗号鍵(CSEK)を使用します。暗号鍵はディスクの内容を保護します。ただし、メタデータは保護されません。
  • CSEK でマシンイメージを保護する場合、マシンイメージの生成時にすべてのディスクデータの完全なコピーが保存されます。それ以外は、ディスクデータは差分コピーに保存されます。
  • 次の条件を満たすソース VM からマシンイメージを作成することはできません。

    • 200 TB を超えるディスクがアタッチされている。
    • アタッチされたディスクがない。
    • Hyperdisk Extreme ディスクがアタッチされている。
    • C3D、H3、A3、Z3 マシンタイプを使用する。

インスタンスとディスクのプロパティがマシンイメージでサポートされていない。

VM インスタンスからマシンイメージを作成する場合、またはマシンイメージから VM インスタンスを作成する場合、次のインスタンスとディスクのプロパティは保持または復元されません。

  • disks.architecture
  • disks.description
  • disks.labels
  • disks.locked
  • disks.multiWriter
  • disks.onUpdateAction
  • disks.provisionedIops
  • disks.shieldedInstanceInitialState
  • disks.sourceImage
  • disks.sourceImageEncryptionKey
  • disks.sourceInstantSnapshot
  • disks.sourceSnapshot
  • disks.sourceSnapshotEncryptionKey
  • privateIpv6GoogleAccess
  • resourceManagerTags
  • resourcePolicies
  • secure_tag
  • shieldedInstanceConfig

VM からマシンイメージを作成する

マシンイメージは、Google Cloud コンソールGoogle Cloud CLI、または REST を使用して作成できます。

マシンイメージを作成するには、次の情報が必要です。

  • 作成するマシンイメージの名前。
  • ソース VM インスタンスの名前。
  • ソース VM インスタンスが配置されているゾーン。
  • 説明(省略可)。
  • オプションの storageLocation。ロケーションを指定しない場合は、ソース VM インスタンスのマルチリージョンの Cloud Storage ロケーションがデフォルトのストレージ ロケーションとなります。
  • オプションの暗号鍵。Google が所有、管理する鍵、Cloud Key Management Service(Cloud KMS)鍵、顧客指定の暗号鍵(CSEK)のいずれかを選択できます。暗号鍵が指定されていない場合、マシンイメージは Google が所有、管理する鍵を使用して暗号化されます。
  • インスタンスのクローン作成とスナップショット作成にマシンイメージを使用する場合は、インスタンスからマシンイメージを生成する前に、そのインスタンスに固有の OS とアプリ情報を削除します。たとえば、Windows VM インスタンスの場合は、GCESysprep を使用してレプリケーション用にシステムを準備します。

コンソール

  1. Google Cloud コンソールで、[マシンイメージ] ページに移動します。

    [マシンイメージ] に移動

  2. [マシンイメージを作成] をクリックします。

  3. マシンイメージの [名前] を指定します。

  4. (省略可)説明を指定します。

  5. [ソース VM インスタンス] を選択します。

  6. (省略可)マシンイメージを保存するロケーションを指定します。[マルチリージョン] または [リージョン] のいずれかのストレージを選択します。ロケーションの詳細については、マシンイメージの保存ロケーションをご覧ください。

  7. (省略可)[暗号化] 方式を選択します。

  8. [作成] をクリックします。

gcloud

gcloud compute machine-images create コマンドを使用して、インスタンスからマシンイメージを作成します。

gcloud compute machine-images create MACHINE_IMAGE_NAME \
    --source-instance=SOURCE_VM_NAME

次のように置き換えます。

  • MACHINE_IMAGE_NAME: 作成するマシンイメージの名前。
  • SOURCE_VM_NAME: イメージの作成元となるソース VM インスタンスの名前。

たとえば、次の gcloud コマンドを使用して、my-instance というソース インスタンスから my-machine-image というマシンイメージを作成できます。

gcloud compute machine-images create my-machine-image  \
    --source-instance=my-instance

この処理には数分かかります。マシンイメージが作成されると、次のような出力が表示されます。

Created [https://www.googleapis.com/compute/v1/projects/project-12345/global/machineImages/my-machine-image].
NAME               STATUS
my-machine-image   READY

REST

API で、machineimages.insert メソッドに対して POST リクエストを作成します。リクエストの本文に次の POST リクエストを指定します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/machineImages

{
  "name": "MACHINE_IMAGE_NAME",
  "sourceInstance": "SOURCE_INSTANCE_URL"
}

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID
  • MACHINE_IMAGE_NAME: 作成するマシンイメージの名前。
  • SOURCE_INSTANCE_URL: マシンイメージの作成に使用するソース VM インスタンスの完全な URL か URL の一部。たとえば、myProject というプロジェクトに my-instance というソース インスタンスがあるとします。有効な URL は次のとおりです。

    • https://www.googleapis.com/compute/v1/projects/myProject/global/instances/my-instance
    • projects/myProject/global/instances/my-instance
    • global/instances/my-instance

次のステップ