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


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

ディスクの即時スナップショットは、ディスクが実行中の仮想マシン(VM)インスタンスに接続されている場合にのみ作成できます。また、ディスクは読み取り / 書き込みモードでアタッチする必要があります。

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

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

即時スナップショットを別の場所にコピーする場合は、即時スナップショットから標準のスナップショットを作成します。

準備

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

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

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

      Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init

制限事項

即時スナップショットがユースケースに適していることを確認するには、即時スナップショットに関連する制限事項を確認してください。

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

  1. Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。

    Cloud Shell をアクティブにする

    Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。

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

    ゾーンディスク

    gcloud beta 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 beta 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/beta/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/beta/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. 省略可: [フィルタ] フィールドを使用して結果を絞り込みます。[フィルタ] フィールドにプロパティ名または値を入力するか、使用可能なプロパティから選択します。

gcloud

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

  1. Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。

    Cloud Shell をアクティブにする

    Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。

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

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

      gcloud beta compute instant-snapshots list --project=PROJECT_ID
      

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

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

      gcloud beta compute instant-snapshots list --zones=ZONE
      

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

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

      gcloud beta compute instant-snapshots list --regions=REGION
      

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

REST

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

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

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

        GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/aggregated/instantSnapshots
     
    PROJECT_ID はプロジェクトの ID に置き換えます。

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

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

    • ゾーン内のスナップショットを一覧表示します。
        GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/SOURCE_ZONE//instantSnapshots
    
    次のように置き換えます。 - 「PROJECT_ID」: プロジェクトの ID。- 「SOURCE_ZONE」: ターゲット ゾーン(例: us-west1-a)。 また、リージョン内のリージョン インスタント スナップショットを一覧表示します。
        GET https://compute.googleapis.com/compute/beta/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. Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。

    Cloud Shell をアクティブにする

    Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。

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

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

      gcloud beta 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 beta 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/beta/projects/<var>PROJECT_ID</var>/zones/<var>SOURCE_ZONE/</var>/instantSnapshots?filter=sourceDisk:'https://www.googleapis.com/compute/beta/projects/<var>PROJECT_ID</var>/zones/<var>SOURCE_ZONE</var>/disks/<var>DISK_NAME</var>'
    

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

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

    GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/SOURCE_REGION//instantSnapshots?filter=sourceDisk:'https://www.googleapis.com/compute/beta/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. Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。

    Cloud Shell をアクティブにする

    Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。

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

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

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

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

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

      gcloud beta 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/beta/projects/PROJECT_ID/zones/ZONE/instantSnapshots/INSTANT_SNAPSHOT_NAME

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

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

リージョンの即時スナップショット

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

GET https://compute.googleapis.com/compute/beta/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 beta compute instant-snapshots delete コマンドを使用します。

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

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

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

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

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

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

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

REST

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

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

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

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

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

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

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

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

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

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

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

トラブルシューティング

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