インスタント スナップショットを別の場所にコピーする


特定のシナリオでは、インスタント スナップショットをソースディスクから別のゾーンまたはリージョンにコピーできます。たとえば、次のような状況が考えられます。

  • ディスクを削除するとインスタント スナップショットが削除されるため、ソースディスクを削除する前に、インスタント スナップショット上のデータを保持する。
  • インスタント スナップショットを別のロケーションに保存することで、ゾーンまたはリージョンの停止から保護する。
  • イベントやプロジェクトのマイルストーンのデータが含まれるインスタント スナップショットを長期保存に移行する。
  • あるロケーションのインスタント スナップショットを使用して、別のロケーションに新しいディスクを作成する。

このようなシナリオでは、インスタント スナップショットから標準スナップショットまたはアーカイブ スナップショットを作成し、新たに作成したスナップショットを使用する必要があります。

このページでは、インスタント スナップショットから標準スナップショットまたはアーカイブ スナップショットを作成する方法について説明します。

始める前に

  • まだ設定していない場合は、認証を設定します。認証とは、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.snapshots.create
    • ソースのインスタント スナップショットに対する compute.instantSnapshots.useReadOnly

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

制限事項

インスタント スナップショットのソースディスクが顧客指定の暗号鍵(CSEK)で暗号化されている場合、インスタント スナップショットも同じ鍵で暗号化されます。

そのため、CSEK で暗号化されたインスタント スナップショットから標準スナップショットを作成するには、ソースディスクの暗号化に使用した鍵を指定する必要があります。

インスタント スナップショットから標準スナップショットまたはアーカイブ スナップショットを作成する

gcloud CLI、Google Cloud コンソール、または REST を使用して、インスタント スナップショットから標準スナップショットまたはアーカイブ スナップショットを作成できます。

コンソール

  1. インスタント スナップショットの確認:

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

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

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

    3. [名前] 列で、復元するスナップショットの名前をメモします。

  2. [スナップショットを作成] をクリックします。

  3. [名前] フィールドに、スナップショットを識別する一意の名前を入力します。

  4. 省略できます。[説明] フィールドにスナップショットの詳細を追加します。

  5. [スナップショットのソースタイプ] で、[即時スナップショット] を選択します。

  6. [ソースの即時スナップショット] リストで、使用するインスタント スナップショットを選択します。

  7. [タイプ] で、[スナップショット] または [アーカイブ スナップショット] を選択します。

  8. [ロケーション] セクションで、スナップショットのストレージ ロケーションを選択します。スナップショット設定で定義されている事前定義またはカスタマイズされたデフォルトのロケーションが自動的に選択されます。必要に応じて、スナップショット設定をオーバーライドして、次の方法でカスタム ストレージ ロケーションにスナップショットを保存できます。

    1. スナップショットを保存するストレージ ロケーションの種類を選択します。

    2. [ロケーションを選択] フィールドで、使用する特定のリージョンまたはマルチリージョンを選択します。ソースディスクに最も近いリージョンまたはマルチリージョンを使用するには、[ディスクの場所に基づく] を選択します。

  9. インスタント スナップショットが CSEK で暗号化されている場合は、暗号鍵を指定します。

    1. [復号] セクションの [暗号鍵] フィールドに暗号鍵を入力します。
    2. 鍵が RSA 公開鍵でラップされている場合は、[ラップされている鍵] を選択します。
  10. [作成] をクリックしてスナップショットを作成します。

gcloud

gcloud compute snapshots create コマンドを使用して、ゾーンまたはリージョンのインスタント スナップショットから標準スナップショットを作成します。インスタント スナップショットがゾーンディスクとリージョン ディスクのどちらであるかに応じて、異なるフラグを使用します。

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

スナップショット設定で定義されたストレージ ロケーション ポリシーを使用して、ゾーンのインスタント スナップショットから標準スナップショットまたはアーカイブ スナップショットを作成するか、別のストレージの場所を使用します。詳細については、スナップショットの保存場所を選択するをご覧ください。

  • スナップショットの設定で構成した事前定義済みまたはカスタマイズされたデフォルトの場所に標準スナップショットまたはアーカイブ スナップショットを作成するには、次のコマンドを使用します。
gcloud compute snapshots create NEW_STANDARD_SNAPSHOT_NAME \
  --source-instant-snapshot=SRC_INSTANT_SNAPSHOT_NAME \
  --source-instant-snapshot-zone=SOURCE_ZONE \
  --snapshot-type=SNAPSHOT_TYPE

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

  • NEW_STANDARD_SNAPSHOT_NAME: 新しい標準スナップショットの一意の名前
  • SRC_INSTANT_SNAPSHOT_NAME: ソースのインスタント スナップショットの名前
  • SOURCE_ZONE: 即時スナップショットが配置されているゾーン
  • SNAPSHOT_TYPE: 作成するスナップショットのタイプ(STANDARD または ARCHIVE)。このフラグを省略すると、標準スナップショットが作成されます。

  • スナップショット設定をオーバーライドし、カスタム ストレージ ロケーションに標準スナップショットまたはアーカイブ スナップショットを作成するには、--storage-location フラグを指定してスナップショットの保存場所を指定します。

gcloud compute snapshots create NEW_STANDARD_SNAPSHOT_NAME \
  --source-instant-snapshot=SRC_INSTANT_SNAPSHOT_NAME \
  --source-instant-snapshot-zone=SOURCE_ZONE \
  --storage-location=STORAGE_LOCATION \
  --snapshot-type=SNAPSHOT_TYPE

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

  • NEW_STANDARD_SNAPSHOT_NAME: 新しいスナップショットの一意の名前
  • SRC_INSTANT_SNAPSHOT_NAME: ソースのインスタント スナップショットの名前
  • SOURCE_ZONE: 即時スナップショットが配置されているゾーン
  • STORAGE_LOCATION: カスタム ストレージ ロケーションの場合、これは Cloud Storage マルチリージョンまたは スナップショットを保存する Cloud Storage リージョンです。保存場所は 1 つだけ指定できます。

    --storage-location フラグは、スナップショット設定で構成した事前定義またはカスタマイズされたデフォルトの保存場所をオーバーライドする場合にのみ使用します。

  • SNAPSHOT_TYPE: 作成するスナップショットのタイプ(STANDARD または ARCHIVE)。このフラグを省略すると、標準スナップショットが作成されます。

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

スナップショット設定で定義されたストレージ ロケーション ポリシーを使用して、リージョンのインスタント スナップショットから標準スナップショットまたはアーカイブ スナップショットを作成するか、別のストレージの場所を使用します。詳細については、スナップショットの保存場所を選択するをご覧ください。

  • スナップショットの設定で構成した事前定義済みまたはカスタマイズされたデフォルトの場所に標準スナップショットまたはアーカイブ スナップショットを作成するには、次のコマンドを使用します。
gcloud compute snapshots create NEW_STANDARD_SNAPSHOT_NAME \
  --source-instant-snapshot=SRC_INSTANT_SNAPSHOT_NAME \
  --source-instant-snapshot-region=SOURCE_REGION \
  --snapshot-type=SNAPSHOT_TYPE

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

  • NEW_STANDARD_SNAPSHOT_NAME: 新しい標準スナップショットの一意の名前
  • SRC_INSTANT_SNAPSHOT_NAME: ソースのインスタント スナップショットの名前
  • SOURCE_REGION: 即時スナップショットが配置されているリージョン
  • SNAPSHOT_TYPE: 作成するスナップショットのタイプ(STANDARD または ARCHIVE)。このフラグを省略すると、標準スナップショットが作成されます。

  • スナップショット設定をオーバーライドし、カスタム ストレージ ロケーションに標準スナップショットまたはアーカイブ スナップショットを作成するには、--storage-location フラグを指定してスナップショットの保存場所を指定します。

gcloud compute snapshots create NEW_STANDARD_SNAPSHOT_NAME \
  --source-instant-snapshot=SRC_INSTANT_SNAPSHOT_NAME \
  --source-instant-snapshot-region=SOURCE_REGION \
  --storage-location=STORAGE_LOCATION \
  --snapshot-type=SNAPSHOT_TYPE

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

  • NEW_STANDARD_SNAPSHOT_NAME: 新しいスナップショットの一意の名前
  • SRC_INSTANT_SNAPSHOT_NAME: ソースのインスタント スナップショットの名前
  • SOURCE_REGION: 即時スナップショットが配置されているリージョン
  • STORAGE_LOCATION: カスタム ストレージ ロケーションの場合、これは Cloud Storage マルチリージョンまたは スナップショットを保存する Cloud Storage リージョンです。保存場所は 1 つだけ指定できます。

    --storage-location フラグは、スナップショット設定で構成した事前定義またはカスタマイズされたデフォルトの保存場所をオーバーライドする場合にのみ使用します。

  • SNAPSHOT_TYPE: 作成するスナップショットのタイプ(STANDARD または ARCHIVE)。このフラグを省略すると、標準スナップショットが作成されます。

REST

ゾーンまたはリージョンのインスタント スナップショットから標準スナップショットを作成するには、snapshots.insert メソッドに POST リクエストを行います。

API リクエストのプロパティは、インスタント スナップショットがゾーンディスクとリージョン ディスクのどちらであるかによって異なります。

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

スナップショット設定で定義されたストレージ ロケーション ポリシーを使用して、ゾーンのインスタント スナップショットから標準スナップショットまたはアーカイブ スナップショットを作成するか、別のストレージの場所を使用します。詳細については、スナップショットの保存場所を選択するをご覧ください。

  • スナップショット構成で構成された事前定義またはカスタマイズされたデフォルトの場所に、標準またはアーカイブ スナップショットを作成するには、snapshots.insert メソッドPOST リクエストを行います。

  • スナップショット設定をオーバーライドしてカスタム ストレージ ロケーションにスナップショットを作成するには、リクエストに storageLocations プロパティを含めます。

POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT/global/snapshots
{
  "name": "NEW_STANDARD_SNAPSHOT_NAME",
  "snapshotType": "NEW_SNAPSHOT_TYPE",
  "sourceInstantSnapshot": "projects/SOURCE_PROJECT/zones/SOURCE_ZONE/instantSnapshots/SOURCE_INSTANT_SNAPSHOT_NAME",
  "sourceInstantSnapshotEncryptionKey": "SOURCE_ENCRYPTION_KEY"
}

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

  • DESTINATION_PROJECT: 新しいスナップショットを作成するプロジェクト
  • NEW_STANDARD_SNAPSHOT_NAME: 新しいスナップショットの一意の名前
  • NEW_SNAPSHOT_TYPE: 作成するスナップショットのタイプ(STANDARD または ARCHIVE)。
  • SOURCE_PROJECT: ソースのインスタント スナップショットを含むプロジェクト
  • SOURCE_ZONE: 即時スナップショットが配置されているゾーン
  • SOURCE_INSTANT_SNAPSHOT_NAME: ソースのインスタント スナップショットの名前
  • SOURCE_ENCRYPTION_KEY: インスタント スナップショットが顧客指定の暗号鍵または顧客管理の暗号鍵で暗号化されている場合は、この値を鍵情報に置き換えます。それ以外の場合は、このプロパティを省略できます。
  • STORAGE_LOCATION: 省略可。スナップショットを保存する Cloud Storage マルチリージョン または Cloud Storage リージョンです。ストレージ ロケーションは 1 つだけ指定できます。

storageLocations パラメータは、スナップショット設定で構成した事前定義またはカスタマイズされたデフォルトのストレージ ロケーションをオーバーライドする場合にのみ使用します。

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

スナップショットの設定で定義されたストレージ ロケーション ポリシーを使用して、リージョンのインスタント スナップショットからリージョンの標準スナップショットまたはアーカイブ スナップショットを作成するか、選択した別のストレージの場所を使用します。詳細については、スナップショットの保存場所を選択するをご覧ください。

スナップショット設定で構成された事前定義またはカスタマイズされたデフォルトの場所に、標準またはアーカイブ スナップショットのボリュームを作成するには、snapshots.insert メソッドPOST リクエストをします。

POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT/global/snapshots
{
"name": "NEW_STANDARD_SNAPSHOT_NAME",
"snapshotType": "NEW_SNAPSHOT_TYPE",
"sourceInstantSnapshot": "projects/SOURCE_PROJECT/regions/SOURCE_REGION/instantSnapshots/SOURCE_INSTANT_SNAPSHOT_NAME",
"sourceInstantSnapshotEncryptionKey": "SOURCE_ENCRYPTION_KEY"
}

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

  • DESTINATION_PROJECT: 新しいスナップショットを作成するプロジェクト。
  • NEW_STANDARD_SNAPSHOT_NAME: 新しいスナップショットの一意の名前。
  • NEW_SNAPSHOT_TYPE: 作成するスナップショットのタイプ(STANDARD または ARCHIVE)。
  • SOURCE_PROJECT: ソースのインスタント スナップショットを含むプロジェクト。
  • SOURCE_REGION: インスタント スナップショットが配置されているリージョン。
  • SOURCE_INSTANT_SNAPSHOT_NAME: ソースのインスタント スナップショットの名前。
  • SOURCE_ENCRYPTION_KEY: インスタント スナップショットが顧客指定の暗号鍵または顧客管理の暗号鍵で暗号化されている場合は、この値を鍵情報に置き換えます。それ以外の場合は、このプロパティを省略できます。

API リクエスト レスポンス

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

次のステップ