インスタント スナップショットの作成と管理


このドキュメントでは、インスタント スナップショットを作成および管理する方法について説明します。インスタント スナップショットはディスクの内容をキャプチャし、これを使用して数分で新しいディスクを作成できます。

インスタント スナップショットは、ソースディスクと同じゾーンまたはリージョンに保存され、標準スナップショットに代わるものではなく、障害復旧用のオフサイト バックアップを提供するものです。Compute Engine で使用できるその他のデータ保護オプションについてご確認ください。

インスタント スナップショットのデータにアクセスするには、インスタント スナップショットを使用して新しいディスクを作成します。

インスタント スナップショットを別の場所にコピーする場合や、ソースディスクが削除された後にスナップショット データを保持する場合は、インスタント スナップショットから標準スナップショットを作成します。

始める前に

  • インスタント スナップショットの制限事項を確認して、ユースケースにインスタント スナップショットが適していることを確認します。
  • まだ設定していない場合は、認証を設定します。認証とは、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 を使用して認証するをご覧ください。

必要なロールと権限

インスタント スナップショットの作成に必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

これらの事前定義ロールには、インスタント スナップショットの作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

インスタント スナップショットを作成するには、次の権限が必要です。

  • インスタント スナップショットを作成する: compute.instantSnapshots.create
  • インスタント スナップショットを表示する: compute.instantSnapshots.list
  • インスタント スナップショットの詳細を表示する: compute.instantSnapshots.get
  • インスタント スナップショットを削除する: compute.instantSnapshots.delete

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

Persistent Disk ボリュームのインスタント スナップショットを作成する

ゾーンディスクのインスタント スナップショットは、ソースディスクと同じゾーンに保存されます。同様に、リージョン ディスクの即時スナップショットは、ディスクと同じリージョンに保存されます。

gcloud CLI、Google Cloud コンソール、または REST を使用して、ゾーンまたはリージョン Persistent Disk ボリュームのインスタント スナップショットを作成できます。

コンソール

  1. Google Cloud コンソールで [VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. 作業するプロジェクトを選択します。

  3. [名前] 列で、バックアップするディスクにアタッチされている VM の名前をクリックします。

  4. [ストレージ] セクションで、次のいずれかの方法でディスクを選択します。

    • VM のブートディスクをバックアップするには、[ブートディスク] セクションでブートディスクの名前をクリックします。
    • アタッチされた Persistent Disk ボリュームをバックアップするには、[追加ディスク] セクションで、アタッチする Persistent Disk ボリュームの名前をクリックします。
  5. インスタント スナップショットの作成を完了するには、[スナップショットの作成] ページで、次の操作を行います。

    1. [名前] フィールドに、インスタント スナップショットを識別する一意の名前を入力します。
    2. 省略可: [説明] フィールドにスナップショットの詳細を追加します。
    3. [タイプ] フィールドで、[インスタント スナップショット] を選択します。[ロケーション] フィールドは自動的にディスクと同じゾーンまたはリージョンに設定されます。
    4. [スナップショット ソースの種類] フィールドで、[ディスク] が選択されていることを確認します。
    5. 省略可: プロジェクトを整理するには、1 つ以上のラベルを追加します。
    6. [作成] をクリックします。

gcloud

インスタント スナップショットを作成するには、gcloud compute instant-snapshots create コマンドを使用します。

ゾーンディスク

ゾーンディスクのインスタント スナップショットを作成するには:

 gcloud compute instant-snapshots create INSTANT_SNAPSHOT_NAME \
   --source-disk=SOURCE_DISK_NAME \
   --zone=SOURCE_DISK_ZONE
 

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

  • INSTANT_SNAPSHOT_NAME: インスタント スナップショットの一意の名前。
  • SOURCE_DISK_NAME: ソースディスクの名前。
  • SOURCE_DISK_ZONE: ソースディスクのゾーン。インスタント スナップショットは同じゾーンに作成されます。

リージョン ディスク

リージョン ディスクのインスタント スナップショットを作成するには:

 gcloud compute instant-snapshots create INSTANT_SNAPSHOT_NAME \
   --source-disk=SOURCE_DISK_NAME \
   --region=SOURCE_DISK_REGION
 

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

  • INSTANT_SNAPSHOT_NAME: インスタント スナップショットの一意の名前。
  • SOURCE_DISK_NAME: ソースディスクの名前。
  • SOURCE_DISK_REGION: ソースディスクのリージョン。インスタント スナップショットは同じリージョンに作成されます。

REST

インスタント スナップショットを作成するには、instantSnapshots.insert メソッドに POST リクエストを行います。

  • ゾーンディスクのインスタント スナップショットを作成します。

    POST リクエストの URL でゾーンを指定します。リクエストの本文で、新しいスナップショットの名前とソースディスクの URL を指定します。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/DISK_ZONE/instantSnapshots
    {
     "name": "INSTANT_SNAPSHOT_NAME",
     "sourceDisk": "projects/PROJECT_ID/zones/DISK_ZONE/disks/SOURCE_DISK_NAME"
    }
    

    以下を対応する値に置き換えます。

    • PROJECT_ID: ディスクを含むプロジェクトの名前。
    • DISK_ZONE: ディスクが配置されているゾーン。インスタント スナップショットはこのゾーンに作成されます。
    • INSTANT_SNAPSHOT_NAME: インスタント スナップショットの一意の名前。
    • SOURCE_DISK_NAME: ソースディスクの名前。
  • リージョン ディスクのインスタント スナップショットを作成します。

    POST リクエストの URL でリージョンを指定します。リクエストの本文に、新しいスナップショットの名前とソースディスクを含めます。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/DISK_REGION/instantSnapshots
    {
      "name": "INSTANT_SNAPSHOT_NAME",
      "sourceDisk": "projects/PROJECT_ID/regions/DISK_REGION/disks/SOURCE_DISK_NAME"
    }
    

    リクエスト本文の次の部分を対応する値に置き換えます。

    • PROJECT_ID: ディスクを含むプロジェクトの名前。
    • DISK_REGION: ソースディスクが配置されるリージョン。スナップショットは同じリージョンに作成されます。
    • INSTANT_SNAPSHOT_NAME: スナップショットの一意の名前。
    • SOURCE_DISK_NAME: ソースディスクの名前。

リクエスト レスポンス

POST リクエストが成功すると、レスポンス本文は、ポーリングして即時スナップショットの作成ステータスを取得できるオブジェクトになります。詳しくは、API レスポンスの処理をご覧ください。

新しい Persistent Disk ボリュームにインスタント スナップショットを復元する

インスタント スナップショットでバックアップされたデータを復元するには、インスタント スナップショットから新しいディスクを作成します。

プロジェクトまたはロケーションでインスタント スナップショットを表示する

gcloud CLI、Google Cloud コンソール、または REST を使用して、プロジェクトまたはロケーション内のすべてのインスタント スナップショットのリストを表示できます。

コンソール

  1. Google Cloud コンソールで、[スナップショット] ページに移動します。

    [スナップショット] ページに移動

  2. [インスタント スナップショット] タブをクリックします。インスタント スナップショットのリストが表示されます。

  3. 省略可: [filter_listフィルタ] フィールドを使用して、結果を絞り込みます。[filter_listフィルタ] フィールドにプロパティ名または値を入力するか、使用可能なプロパティから選択します。

gcloud

特定のプロジェクトまたはロケーションの即時スナップショットを一覧表示するには、gcloud compute instant-snapshots list コマンドを使用します。

プロジェクト内のすべてのスナップショット、またはゾーンまたはリージョン内のスナップショットを一覧表示します。

  • 特定のプロジェクト内のすべての即時スナップショットを一覧表示します。

    gcloud compute instant-snapshots list --project=PROJECT_ID
    

    PROJECT_ID は、プロジェクトの ID に置き換えます。

  • --zones 引数を使用して、ゾーン内のインスタント スナップショットを一覧表示します。

    gcloud compute instant-snapshots list --zones=ZONE
    

    ZONE は、ターゲット ゾーンの名前に置き換えます。

  • --regions 引数を使用して、リージョンのインスタント スナップショットを一覧表示します。

    gcloud compute instant-snapshots list --regions=REGION
    

    REGION は、ターゲット リージョンの名前に置き換えます。

REST

特定のプロジェクトまたはロケーションの即時スナップショットのリストを取得できます。

  • プロジェクト内のスナップショットを一覧表示します。

    instantSnapshots.aggregatedList メソッドに GET リクエストを行います。

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instantSnapshots
    

    PROJECT_ID は、プロジェクトの ID に置き換えます。

  • ゾーンまたはリージョン内の即時スナップショットを一覧表示します。

    instantSnapshots.list メソッドに GET リクエストを行います。

    • ゾーン内のインスタント スナップショットを一覧表示します。

      GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/SOURCE_ZONE//instantSnapshots
      

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

      • PROJECT_ID: プロジェクトの ID。
      • SOURCE_ZONE: ターゲット ゾーン。例: us-west1-a
    • リージョン内のリージョン インスタント スナップショットを一覧表示します。

      GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/SOURCE_REGION/instantSnapshots
      

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

      • PROJECT_ID: プロジェクトの ID。
      • SOURCE_REGION: ターゲット リージョン。例: us-west1

ディスクのインスタント スナップショットを表示する

ディスクのインスタント スナップショットのリストを表示するには、gcloud CLI、Google Cloud コンソール、または REST を使用します。

コンソール

  1. Google Cloud コンソールで、[スナップショット] ページに移動します。

    [スナップショット] ページに移動

  2. [インスタント スナップショット] タブをクリックします。プロジェクト内のすべての即時スナップショットのリストが表示されます。

  3. ソースディスクで結果を絞り込みます。

    1. [filter_list フィルタ] フィールドに「Source disk:」と入力します。ソースディスクのフィルタの入力

      インスタント スナップショットがあるディスクのリストが表示されます。

    2. [] リストからディスクの名前を選択します。即時スナップショットのリストには、ディスクのすべての即時スナップショットが表示されます。

      ディスク名が表示されない場合は、[filter_list フィルタ] フィールドに、ディスク名の最初の数文字を入力して、表示されるフィルタ オプションのリストを変更します。

gcloud

  1. gcloud compute instant-snapshots list コマンドと --filter 引数を使用して、ディスクの即時スナップショットを一覧表示します。

    • ゾーンディスクの即時スナップショットを一覧表示します。

      gcloud compute instant-snapshots list \
      --filter="sourceDisk:projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME
      

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

      • PROJECT_ID: プロジェクトの ID。
      • ZONE: ディスクのゾーン名(例: us-west1-a)。
      • DISK_NAME: ソースディスクの名前(例: disk-1)。
    • リージョン ディスクの即時スナップショットを一覧表示します。

      gcloud compute instant-snapshots list \
      --filter=sourceDisk:projects/PROJECT_ID/regions/SOURCE_REGION/disks/DISK_NAME
      

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

      • PROJECT_ID: プロジェクトの ID。
      • SOURCE_REGION: ディスクのリージョン名(例: us-west1)。
      • DISK_NAME: ディスクの名前(例: disk-1)。

REST

instantSnapshots.list メソッドに GET リクエストを行って、ゾーンディスクまたはリージョン ディスクのインスタント スナップショットを一覧表示します。

filter=sourceDisk クエリ パラメータを使用して、ディスクの名前を指定します。

  • ゾーン Persistent Disk ボリュームの即時スナップショットを一覧表示します。

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/SOURCE_ZONE/instantSnapshots?filter=sourceDisk:'https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/SOURCE_ZONE/disks/DISK_NAME'
    

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

    • PROJECT_ID: プロジェクトの ID。
    • SOURCE_ZONE: ターゲット ゾーン(例: us-west1-a)。
    • DISK_NAME: ソースディスクの名前(例: disk-1)。
  • リージョン Persistent Disk ボリュームのインスタント スナップショットを一覧表示します。

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/SOURCE_REGION/instantSnapshots?filter=sourceDisk:'https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/SOURCE_REGION/disks/DISK_NAME'
    

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

    • PROJECT_ID: プロジェクトの ID。
    • SOURCE_REGION: ターゲット リージョン(例: us-west1)。
    • DISK_NAME: ソースディスクの名前(例: disk-1)。

インスタント スナップショットに関する情報を表示する

ロケーション、ソースディスク、サイズなど、インスタント スナップショットに関する詳細情報を取得するには、gcloud CLI、Google Cloud コンソール、または REST を使用します。

コンソール

  1. Google Cloud コンソールで、[スナップショット] ページに移動します。

    [スナップショット] ページに移動

  2. [インスタント スナップショット] タブをクリックします。インスタント スナップショットのリストが表示されます。

  3. [名前] 列で、インスタント スナップショットの名前をクリックします。選択したスナップショットの [インスタント スナップショットの詳細] ページが開き、そのプロパティが表示されます。

gcloud

  1. インスタント スナップショットに関する情報を表示するには、gcloud compute instant-snapshots describe コマンドを使用します。

    • スナップショットがゾーンディスクの場合は、--zone フラグを使用してゾーンを指定します。

      gcloud compute instant-snapshots describe INSTANT_SNAPSHOT_NAME  \
         --zone=ZONE
      

      以下を対応する値に置き換えます。

      • INSTANT_SNAPSHOT_NAME: インスタント スナップショットの名前。
      • ZONE: インスタント スナップショットが作成されたゾーン。例: us-west1-a
    • スナップショットがリージョン ディスクの場合は、--region フラグを使用してリージョンを指定します。

      gcloud compute instant-snapshots describe INSTANT_SNAPSHOT_NAME \
      --region=REGION
      

      以下を対応する値に置き換えます。

      • INSTANT_SNAPSHOT_NAME: インスタント スナップショットの名前。
      • REGION: スナップショットが作成されたリージョン(例: us-central1)。

REST

使用する API メソッドのリクエストは、リージョンとゾーンのどちらのインスタント スナップショットを使用するかによって異なります。

ゾーンのインスタント スナップショット

リクエストでゾーンを指定して、instantSnapshots.get メソッドに GET リクエストを行います。

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instantSnapshots/INSTANT_SNAPSHOT_NAME

以下を対応する値に置き換えます。

  • PROJECT_ID: インスタント スナップショットを含むプロジェクトの名前。
  • ZONE: インスタント スナップショットが作成されたゾーン。
  • INSTANT_SNAPSHOT_NAME: インスタント スナップショットの名前。

リージョンのインスタント スナップショット

リクエストでリージョンを指定して、instantSnapshots.get メソッドに GET リクエストを行います。

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instantSnapshots/INSTANT_SNAPSHOT_NAME

以下を対応する値に置き換えます。

  • PROJECT_ID: インスタント スナップショットを含むプロジェクトの名前。
  • REGION: インスタント スナップショットが作成されたリージョン。
  • INSTANT_SNAPSHOT_NAME: インスタント スナップショットの名前。

インスタント スナップショットの削除

インスタント スナップショットを削除するには、gcloud CLI、Google Cloud コンソール、または REST を使用します。

コンソール

  1. Google Cloud コンソールで、[スナップショット] ページに移動します。

    [スナップショット] ページに移動

  2. [インスタント スナップショット] タブをクリックします。

  3. 削除するスナップショットを 1 つ以上選択します。

  4. [スナップショット] ページの上部の [削除] をクリックします。

gcloud

インスタント スナップショットを削除するには、ソースゾーンまたはソース リージョンを指定して gcloud compute instant-snapshots delete コマンドを使用します。

  • ゾーンディスクのインスタント スナップショットを削除します。

    gcloud compute instant-snapshots delete INSTANT_SNAPSHOT_NAME \
        --zone=ZONE
     

    以下を対応する値に置き換えます。

    • ZONE: ゾーンの名前。
    • INSTANT_SNAPSHOT_NAME: インスタント スナップショットの名前。
  • リージョン ディスクのインスタント スナップショットを削除します。

    gcloud compute instant-snapshots delete INSTANT_SNAPSHOT_NAME \
       --region=REGION
    

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

    • REGION: リージョンの名前。
    • INSTANT_SNAPSHOT_NAME: インスタント スナップショットの名前。

REST

instantSnapshots.delete メソッドに対する DELETE リクエストを使用してインスタント スナップショットを削除します。

  • ゾーンディスクのインスタント スナップショットを削除します。

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instantSnapshots/INSTANT_SNAPSHOT_NAME
    

    以下を対応する値に置き換えます。

    • PROJECT_ID: プロジェクトの ID。
    • ZONE: ゾーンの名前。
    • INSTANT_SNAPSHOT_NAME: インスタント スナップショットの名前。
  • リージョン ディスクのインスタント スナップショットを削除します。

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instantSnapshots/INSTANT_SNAPSHOT_NAME

    以下を対応する値に置き換えます。

    • PROJECT_ID: プロジェクトの ID。
    • REGION: リージョンの名前。
    • INSTANT_SNAPSHOT_NAME: インスタント スナップショットの名前。

インスタント スナップショットのストレージ ロケーションを変更する

インスタント スナップショットは、常にソースディスクと同じロケーションに保存されます。別のゾーンまたはリージョンからインスタント スナップショットにアクセスできるようにすることはできません。代わりに、インスタント スナップショットから標準スナップショットを作成し、標準スナップショットを使用できます。

インスタント スナップショットから標準スナップショットを作成する方法をご確認ください。

トラブルシューティング

インスタント スナップショットの使用で発生した問題を解決するには、インスタント スナップショットのトラブルシューティングをご覧ください。