永続ディスクのスナップショットを作成する

スナップショットを作成して、ゾーン永続ディスクまたはリージョン永続ディスクからデータを定期的にバックアップします。スナップショットの削除、およびスナップショットから永続ディスクへのデータの復元については、永続ディスクのスナップショットの復元と削除をご覧ください。

始める前に

このタスクに必要な権限

このタスクを実行するには、次の権限が必要です。

  • インスタンスに関する compute.disks.createSnapshot
  • インスタンスに関する compute.snapshots.delete

ディスクが実行中のインスタンスに接続されている場合でも、ディスクからスナップショットを作成できます。スナップショットはグローバル リソースであるため、同じプロジェクトに属するすべてのリソースからアクセスできます。また、プロジェクト間でスナップショットを共有することもできます。スナップショットは公開イメージカスタム イメージとは異なるものです。これらは主に、インスタンス用のブートディスクの作成、またはインスタンス テンプレート用のブートディスクの構成に使用されます。

スナップショットは増分であり自動的に圧縮されるため、ディスクの完全なイメージを定期的に作成するよりも短時間かつ大幅に低いコストで永続ディスクの定期的なスナップショットを作成できます。増分スナップショットは次のように機能します。

  • 永続ディスクの最初の正常なスナップショットは、永続ディスクのすべてのデータを含む完全なスナップショットです。
  • 2 番目のスナップショットには、1 番目のスナップショットより後に新規作成または変更されたデータのみが含まれます。スナップショット 1 以降に変更されていないデータは含まれません。変更されていないデータについては、スナップショット 2 にスナップショット 1 への参照が含まれます。
  • スナップショット 3 には、スナップショット 2 以降に新規作成または変更されたデータは含まれますが、スナップショット 1 または 2 以降に変更されていないデータは含まれません。変更されていないデータについては、スナップショット 3 にスナップショット 1 とスナップショット 2 のブロックへの参照が含まれます。

これが、永続ディスクのすべての後続のスナップショットについて繰り返されます。スナップショットは常に、正常に取得された最新のスナップショットに基づいて作成されます。

スナップショットの作成方法を説明する図

Compute Engine ではデータの整合性を確保するため、自動チェックサムを使用して各スナップショットの複数のコピーを複数のロケーションに保存します。IAM の役割を使用して、プロジェクト間でスナップショットを共有します。

プロジェクトで使用可能なスナップショットのリストを表示するには、gcloud compute snapshots list コマンドを使用します。

gcloud compute snapshots list

作成時刻、サイズ、ソースディスクなど、特定のスナップショットについての情報を一覧表示するには、gcloud compute snapshots describe コマンドを使用します。

gcloud compute snapshots describe [SNAPSHOT_NAME]

ここで、[SNAPSHOT_NAME] はスナップショット情報を表示するスナップショットの名前です。

スナップショットのストレージ ロケーションの選択

は、

スナップショットを作成するときに、ストレージ ロケーションを指定できます。スナップショットのロケーションは、可用性に影響するとともに、スナップショットの作成や新しいディスクへ復元の際にネットワーク コストを発生させる要因となる可能性があります。

スナップショットは、1 つの Cloud Storage マルチリージョン ロケーションasia など)、または 1 つの Cloud Storage リージョン ロケーションasia-south1 などの)のいずれかに保存できます。

マルチリージョンのストレージ ロケーションを使用することにより、可用性を向上させ、スナップショットを作成または復元するときのネットワーク コストを削減できます。たとえば、マルチリージョン ロケーションに保存されたスナップショットからディスクを作成しても、新しい永続ディスクがマルチリージョン グループのリージョンの 1 つに作成される限り、ネットワーク コストは発生しません。リージョンのストレージ ロケーションを使用すると、単一のリージョンが指定されるため、データの物理的な位置をより細かく制御できます。

スナップショットのストレージ ロケーションを指定しない場合、GCP はデフォルトのロケーションを使用します。この場合、ソースディスクのリージョンに最も近い Cloud Storage マルチリージョン ロケーションにスナップショットを保存します。リージョンのストレージを選択する必要がある場合、または別のマルチリージョン ロケーションを指定する必要がある場合は、カスタム ロケーションにスナップショットを保存してください。

デフォルトのロケーション

ストレージ ロケーションを指定しない場合、スナップショットは永続ディスクのロケーションから地理的に最も近いマルチリージョンに保存されます。

たとえば、永続ディスクが us-central1 に保存されている場合、スナップショットはデフォルトで us マルチリージョンに格納されます。

ただし、australia-southeast1 のようなデフォルトのロケーションはマルチリージョンのいずれにも該当しません。最も近いマルチリージョンは asia となります。スナップショットの作成と復元には ネットワーク コストが発生します。

スナップショットの保存先にデフォルトのロケーションを選択する使用例には、次のようなものがあります。

  • デフォルトのマルチリージョン ロケーションが、企業または政府のデータ配置ポリシーを満たしている。
  • 永続ディスクが、デフォルトのマルチリージョン ロケーションに含まれるリージョン ロケーションに保存されている。たとえば、永続ディスクが us-central1 リージョンにあるとすると、デフォルトのマルチリージョンは us になります。この使用例では、スナップショットの復元に時間がかかることがあるため、パフォーマンスより可用性を優先します。
  • スナップショットがデフォルトのロケーション以外にあるディスクに高い頻度で復元されることを想定していない。

カスタム ロケーション

スナップショットをリージョン ロケーションに保存する場合、あるいは異なるマルチリージョン ロケーションを指定する必要がある場合は、カスタム ロケーションを選択します。

スナップショットの保存先としてカスタム ロケーションを選択する場合の例をいくつか示します。

  • カスタムのマルチリージョン ロケーションが、企業または政府のデータ配置ポリシーを満たしている。
  • アプリケーションがいずれの Cloud Storage マルチリージョン ロケーションにも含まれないリージョンにデプロイされていて、スナップショットの可用性よりも、復元のパフォーマンスを優先している。
  • デフォルトのスナップショットのロケーション以外にあるディスクから、スナップショットを何度も復元する。

企業または政府のデータ配置ポリシーに準拠する必要がある場合は、そのポリシーに準拠している最も近いリージョン ロケーションにスナップショットを保存してください。

アプリケーションがマルチリージョン内にデプロイされておらず、スナップショットの可用性よりもネットワーク コストを優先する場合は、ソースディスクがあるリージョンにスナップショットを保存します。これにより、そのソースディスクからのスナップショットの作成と復元のネットワーク コストが最小限に抑えられます。

ただし、マルチリージョンのストレージ ロケーションとは異なり、リージョンのストレージ ロケーションでは、複数のデータセンターにまたがってデータが重複して保存されないため、大規模な障害が発生した場合はデータにアクセスできない可能性があります。データの可用性を確保するために、別のロケーションに同じスナップショットを重複して保存しておくことも考えられます。

ネットワーク コスト

次のような状況では、ソースディスクのスナップショットの作成、およびスナップショットからの新しいディスクの作成の際に、ネットワーク コストが発生する可能性があります。

  • ソースディスクのリージョンとは異なるリージョンにスナップショットを作成するとき。たとえば、us-west1 にあるディスクから asia-south1 にスナップショットを作成すると、データがリージョン間で移動するため、ネットワーク コストが発生します。

  • ソースディスクのリージョンをまったく含まないマルチリージョン ロケーションにスナップショットを作成するとき。たとえば、us-west1 にあるディスクから asia マルチリージョン ロケーションにスナップショットを作成すると、ネットワーク コストが発生します。

  • スナップショットのストレージ ロケーションに含まれていないリージョンにあるディスクにスナップショットを復元するとき。たとえば、マルチリージョンである asia に保存されたスナップショットから、australia-southeast1 に新しいリージョン永続ディスクを作成すると、ネットワーク コストが発生します。

スナップショットの作成

スナップショットのためにディスクを準備するには、永続ディスク スナップショットに関するおすすめの方法を確認してください。

顧客指定の暗号鍵で暗号化されたディスクからスナップショットを作成する手順については、暗号化されたディスクからスナップショットを作成するをご覧ください。

Windows 永続ディスクのスナップショットの作成手順については、Windows 永続ディスク スナップショットの作成をご覧ください。

ゾーン永続ディスクのスナップショットの作成

ディスクの準備をしてから、スナップショットを作成します。次の手順に従って、ゾーン永続ディスクのスナップショットを作成します。使用する永続ディスクが複数のゾーンにある場合は、リージョン永続ディスクのスナップショットの作成の手順に従ってください。

Console

  1. Google Cloud Platform Console で [スナップショット] ページに移動します。
    [スナップショット] ページに移動
  2. ページ上部の [スナップショットを作成] をクリックします。
  3. スナップショットの [名前] を入力します。
  4. 必要に応じて、スナップショットの [説明] を入力します。
  5. プルダウン メニューから [ソースディスク] を選択します。
  6. スナップショットのストレージ ロケーションを指定します。デフォルトのストレージ ロケーション、またはカスタムのストレージ ロケーションを使用できます。

    は、

    1. [場所] で、スナップショットを [マルチリージョン] ロケーションに保存するか、[リージョン] ロケーションに保存するかを選択します。
    2. 使用する特定のリージョンまたはマルチリージョンを選択します。ソースディスクに最も近いリージョンまたはマルチリージョンを使用するには、[ソースディスクのロケーションに基づく] を選択します。
  7. [作成] をクリックしてスナップショットを作成します。

gcloud

デフォルトのストレージ ロケーションまたは選択したストレージ ロケーションにスナップショットを作成します。

  • デフォルトのストレージ ロケーションにゾーン永続ディスクのスナップショットを作成するには、gcloud compute disks snapshot コマンドを使用します。

    gcloud compute disks snapshot [DISK_NAME]
    

    ここで

    • [DISK_NAME] は、スナップショットを作成するゾーン永続ディスクの名前です。
  • カスタムのストレージ ロケーションにスナップショットを作成する場合には、gcloud beta compute disks snapshot コマンドに storage-location フラグを付けて使用し、スナップショットの保存先を指定します。

    は、

    gcloud beta compute disks snapshot [DISK_NAME] --storage-location=[STORAGE_LOCATION]
    

    ここで

gcloud コマンドライン ツールは、オペレーションから READY または FAILED のステータスが返されるまで待機するか、最大タイムアウトに達した場合はスナップショットの直近の既知の詳細を返します。

API

デフォルトのストレージ ロケーションまたは選択したストレージ ロケーションにスナップショットを作成します。

  • デフォルトのストレージ ロケーションにスナップショットを作成するには、disks.createSnapshot メソッドに対して POST リクエストを発行します。

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]/createSnapshot
    

    ここで

    • [PROJECT_ID] はプロジェクト ID です。
    • [ZONE] は、インスタンスとディスクが配置されているゾーンです。
    • [DISK_NAME] は、スナップショットを作成するゾーン永続ディスクの名前です。
  • カスタムのストレージ ロケーションにスナップショットを作成する場合には、disks.createSnapshot メソッドに対して POST リクエストを発行し、ストレージ ロケーションを指定します。

    は、

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]/createSnapshot
    {
      “storageLocations”: "[STORAGE_LOCATION]"
    }
    

    ここで

    • [PROJECT_ID] はプロジェクト ID です。
    • [ZONE] は、インスタンスとディスクが配置されているゾーンです。
    • [DISK_NAME] は、スナップショットを作成するゾーン永続ディスクの名前です。
    • [STORAGE_LOCATION] は、スナップショットを保存する Cloud Storage マルチリージョンまたは Cloud Storage リージョンです。

リージョン永続ディスクのスナップショットの作成

は、

ディスクの準備をしてから、スナップショットを作成します。リージョン永続ディスクのスナップショットを作成するときは、ディスクを配置するリージョンを指定する必要があります。

Console

  1. Google Cloud Platform Console で [スナップショット] ページに移動します。
    [スナップショット] ページに移動
  2. スナップショットの [名前] を入力します。
  3. 必要に応じて、スナップショットの [説明] を入力します。
  4. [ソースディスク] で、スナップショットを作成する既存のディスクを選択します。
  5. デフォルトのスナップショットのストレージ ロケーションを使用する場合は、この手順をスキップします。それ以外の場合は、カスタムのストレージ ロケーションを使用します。

    は、

    1. [場所] で、スナップショットを [マルチリージョン] ロケーションに保存するか、[リージョン] ロケーションに保存するかを選択します。
    2. 使用する特定のリージョンまたはマルチリージョンを選択します。ソースディスクに最も近いリージョンまたはマルチリージョンを使用するには、[ソースディスクのロケーションに基づく] を選択します。
  6. [作成] をクリックしてスナップショットを作成します。

gcloud

デフォルトのストレージ ロケーションまたは選択したストレージ ロケーションにスナップショットを作成します。

  • デフォルトのストレージ ロケーションにリージョン永続ディスクのスナップショットを作成するには、gcloud beta compute disks snapshot コマンドを使用します。

    gcloud beta compute disks snapshot [DISK_NAME] --region [REGION]
    

    ここで

    • [DISK_NAME] は、スナップショットを作成するリージョン永続ディスクの名前です。
    • [REGION] は、リージョン永続ディスクが配置されているリージョンです。
  • カスタムのストレージ ロケーションにスナップショットを作成する場合には、gcloud beta compute disks snapshot コマンドに storage-location フラグを付けて使用し、スナップショットの保存先を指定します。

    は、

    gcloud beta compute disks snapshot [DISK_NAME] --region [REGION] --storage-location=[STORAGE_LOCATION]
    

    ここで

    • [DISK_NAME] は、スナップショットを作成するリージョン永続ディスクの名前です。
    • [REGION] は、リージョン永続ディスクが配置されているリージョンです。
    • [STORAGE_LOCATION] は、スナップショットを保存する Cloud Storage マルチリージョンまたは Cloud Storage リージョンです。

    gcloud コマンドライン ツールは、オペレーションから READY または FAILED のステータスが返されるまで待機するか、最大タイムアウトに達した場合はスナップショットの直近の既知の詳細を返します。

API

  • デフォルトのストレージ ロケーションにスナップショットを作成するには、regionDisk.createSnapshot メソッドに対して POST リクエストを発行します。

    POST https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/regions/[REGION]/disks/[DISK_NAME]/createSnapshot
    

    ここで

    • [PROJECT_ID] はプロジェクト ID です。
    • [REGION] は、リージョン永続ディスクが配置されているリージョンです。
    • [DISK_NAME] はスナップショットを作成するディスクの名前です。
  • カスタムのストレージ ロケーションにスナップショットを作成する場合には、regionDisk.createSnapshot メソッドに対して POST リクエストを発行し、ストレージ ロケーションを指定します。

    は、

    POST https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/regions/[REGION]/disks/[DISK_NAME]/createSnapshot
    {
     “storageLocations”: "[STORAGE_LOCATION]"
    }
    

    ここで

    • [PROJECT_ID] はプロジェクト ID です。
    • [REGION] は、リージョン永続ディスクが配置されているリージョンです。
    • [DISK_NAME] は、スナップショットを作成するリージョン永続ディスクの名前です。
    • [STORAGE_LOCATION] は、スナップショットを保存する Cloud Storage マルチリージョンまたは Cloud Storage リージョンです。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

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

Compute Engine ドキュメント