カスタム イメージの作成、削除、使用中止

ブートディスクのカスタム イメージを作成し、それらのイメージを使用して新しいインスタンスを作成できます。これは、ルート永続ディスクを作成して特定の状態に変更し、その状態を保存して新規インスタンスで再利用する場合に理想的です。

あるいは、既存のシステムから Compute Engine にブートディスクのイメージをインポートして、それらをカスタム イメージのリストに追加することもできます。

始める前に

カスタム イメージの作成

ここでは、Linux インスタンスでカスタム イメージを作成する方法を説明します。 Windows イメージの作成手順については、Windows イメージを作成するを参照してください。

カスタム イメージを作成するには、最初にインスタンスを削除して、永続ディスクをインスタンスから接続解除する必要があります。続行する前にインスタンスが不要であることを確認してください。

作成したカスタム イメージは、すべてのプロジェクト編集者またはオーナーが使用できます。 Identity and Access Management(IAM)を使用してイメージを他のプロジェクトと共有することもできます。

インスタンスを削除する

イメージは、インスタンスに接続されていないルートディスクからのみ作成できます。 ルート永続ディスクを使用しているインスタンスを削除しますが、ディスクは後で使用できるように保持します。インスタンスを削除するには、次の手順に従います。

  1. ルート永続ディスクの自動削除状態を設定します。自動削除状態を false に設定して、インスタンスの削除時に自動的に削除されないようにします。

  2. インスタンスを削除します

  3. インスタンスを削除した後で、イメージを作成します

イメージを作成する

コンソール


  1. Google Cloud Platform Console で、[イメージの作成] ページに移動します。
    [イメージの作成] ページに移動する
  2. イメージに使用するプロパティを入力します。たとえば、イメージのイメージ ファミリー名を指定して、このイメージをイメージ ファミリーの一部として管理できます。
  3. [作成] をクリックしてイメージを作成します。

gcloud


  1. イメージを作成するには、次のコマンドを実行します。

    gcloud compute images create [IMAGE_NAME] \
      --source-disk [SOURCE_DISK] \
      --source-disk-zone [ZONE] \
      --family [IMAGE_FAMILY]
    

    ここで:

    • [SOURCE_DISK] は、イメージの作成元のディスクです。
    • [ZONE] は、ディスクが配置されているゾーンです。
    • [IMAGE_FAMILY] は、このイメージが属するイメージ ファミリーを指定するオプションのフラグです。
  2. 次のコマンドを実行して、イメージが正常に作成されたことを確認します。

    gcloud compute images list
    

API


リクエストの本文に sourceDisk URL を含めて images().insert メソッドに POST リクエストを発行します。プロジェクトとゾーンを自分のプロジェクト ID と永続ディスクのゾーンに置き換えます。

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/images

{
  "name": "[IMAGE_NAME]",
  "sourceDisk": "zones/[ZONE]/disks/example-disk"
}

ここで:

  • [PROJECT_ID] は、イメージが属するプロジェクトです。
  • [IMAGE_NAME] は、作成するイメージの名前です。
  • [ZONE] は、ディスクが属するゾーンです。

イメージの追加に関する詳細については、イメージ参照をご覧ください。

イメージの使用を中止する

Google Compute Engine では、イメージに非推奨ステータスを設定することで、所有するカスタム イメージを非推奨にすることができます。使用中止ステータスごとに異なるレスポンスがサーバーから生成され、移行ユーザーがサポートされないイメージの使用を管理可能な方法で中止するのに役立ちます。

イメージの使用中止ステータスを設定するには、次のコマンドを実行します。

gcloud compute images deprecate [IMAGE] --state [STATE] --replacement [REPLACEMENT]

ここで、[IMAGE] は使用中止するイメージの名前です。

使用中止状態は、次のいずれかになります。

  • DEPRECATED - このイメージは使用中止されたとみなされます。ユーザーがこのイメージを使用しようとすると、リクエストは成功しますが、Google Compute Engine によって警告も返されます。このイメージへの新しいリンクは依然として許可されます。イメージ ファミリーは、このイメージがファミリー内で最新のイメージであっても、このイメージをポイントしなくなります。
  • OBSOLETE - このイメージは廃止され、新しいユーザーはこれを使用できません。 Google Compute Engine は、ユーザーがリクエストでこのイメージを使用しようとした場合にエラーを返します。このイメージへの既存のリンクは依然として許可されます。
  • DELETED - このイメージは削除され、ユーザーは使用できません。Google Compute Engine は、ユーザーがこのイメージを使用しようとした場合にエラーを返します。

イメージを削除する

削除できるカスタム イメージは、自分またはプロジェクトへのアクセス権を持つ他のユーザーが追加したカスタム イメージのみです。イメージを削除するには、次のコマンドを実行します。

gcloud compute images delete [IMAGE]

ここで、[IMAGE] は削除するイメージの名前です。

イメージ ファミリー内のイメージのバージョンを設定する

イメージ ファミリーを使用して、イメージのバージョン管理を簡略化します。イメージをイメージ ファミリーに追加し、最新のイメージ バージョンとして設定します。イメージ ファミリーを以前のイメージ バージョンにロールバックする必要があると判断した場合は、ファミリー内の最新のイメージの使用を中止します。

たとえば、image-v1 という名前のイメージをイメージ ファミリーの一部として作成します。

gcloud compute images create image-v1 \
          --source-disk disk-1 \
          --source-disk-zone us-central1-f \
          --family my-image-family

イメージ ファミリーは image-v1 をポイントします。2 つ目のイメージをファミリーに追加します。

gcloud compute images create image-v2 \
          --source-disk disk-2 \
          --source-disk-zone us-central1-f \
          --family my-image-family

image-v2 はイメージ ファミリーに追加した最新のイメージであるため、イメージ ファミリーではこのイメージがポイントされます。gcloud compute images describe-from-family コマンドを実行して、ファミリーでどのイメージがポイントされるかを確認できます。 次に例を示します。

gcloud compute images describe-from-family my-image-family

family: my-image-family
id: '8904691942610171306'
kind: compute#image
name: image-v2
selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/images/image-v2
sourceDisk: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v2
sourceDiskId: '1677449456001963379'
sourceType: RAW
status: READY

イメージ ファミリーをロールバックして image-v2 をポイントしなくなるようにする必要があると判断した場合は、image-v2 の使用を中止すると、ファミリーは再び image-v1 をポイントします。

gcloud compute images deprecate image-v2 --state DEPRECATED --replacement image-v1

イメージ ファミリーが image-v1 を再びポイントしていることを確認します。

gcloud compute images describe-from-family my-image-family

family: my-image-family
id: '2741732787056801255'
kind: compute#image
name: image-v1
selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/images/image-v1
sourceDisk: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v1
sourceDiskId: '1677449456001963379'
sourceType: RAW
status: READY

次のステップ

外出先でもリソースをモニタリング

Google Cloud Console アプリを入手して、プロジェクトの管理にお役立てください。

フィードバックを送信...

Compute Engine ドキュメント