標準ディスク スナップショットを使用すると、Persistent Disk と Google Cloud Hyperdisk からデータを定期的にバックアップできます。
ディスクのスナップショットの表示、一覧取得、削除を行うことができます。また、プロジェクト間でスナップショットを共有することもできます。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Compute インスタンス管理者(v1)(
roles/compute.instanceAdmin.v1
) -
サービス アカウントとして実行できる VM に接続する: サービス アカウント ユーザー(v1)(
roles/iam.serviceAccountUser
) -
スナップショットを一覧表示する: プロジェクトに対する
compute.snapshots.list
-
スナップショットに関する情報を表示する: スナップショットに対する
compute.snapshots.get
-
スナップショットを削除する: スナップショットに対する
compute.snapshots.delete
-
フィルタに基づいてスナップショットを削除するには:
- スナップショットに対する
compute.snapshots.delete
- プロジェクトに対する
compute.snapshots.list
- スナップショットに対する
-
プロジェクト間でスナップショット データを共有する:
-
プロジェクトに対する
compute.storageAdmin
(すべての標準スナップショットにアクセス) - 共有するプロジェクトに対する
compute.disks.create
- 移動元プロジェクトに対する
compute.snapshots.create
- ソースディスクに対する
compute.disks.createSnapshot
-
プロジェクトに対する
Google Cloud コンソールで、[スナップショット] ページに移動します。
[スナップショット] タブに、現在のプロジェクトの標準スナップショットが表示されます。
省略可。filter_list の [フィルタ] フィールドを使用して、結果を絞り込みます。[フィルタ] フィールドにプロパティ名または値を入力するか、使用可能なプロパティから選択します。
Google Cloud コンソールで、[スナップショット] ページに移動します。
[スナップショット] タブに、プロジェクト内のすべての標準スナップショットが一覧表示されます。
ソースディスクで結果を絞り込みます。
filter_list の [フィルタ] フィールドに「
Source disk:
」と入力するか、[フィルタ] フィールドをクリックし、その後、値Source disk
を [プロパティ] リストから選択します。[フィルタ] フィールドの
Source disk:
の横に表示される [値] リストからディスクの名前を選択します。これで、コンソールに表示されるスナップショットに、指定したディスクのすべての標準スナップショットが表示されるようになります。
[値] リストにディスクの名前が表示されない場合は、
Source disk:
の横にある [フィルタ] フィールドにソースディスクの名前の最初の数文字を入力して、表示される値のリストを変更します
ゾーンディスクの標準スナップショットの一覧を取得するには:
gcloud compute snapshots list --filter="sourceDisk:projects/PROJECT_ID/zones/SOURCE_ZONE/disks/DISK_NAME
リージョン ディスクの標準スナップショットの一覧を取得するには:
gcloud compute snapshots list --filter=sourceDisk:projects/PROJECT_ID/regions/SOURCE_REGION/disks/DISK_NAME
PROJECT_ID
: プロジェクトの ID。SOURCE_ZONE
: (ゾーンディスクのみ)ディスクのゾーン名(例:us-west1-a
)。SOURCE_REGION
: (リージョン ディスクのみ)ディスクのリージョン名(例:us-west1
)。DISK_NAME
: ディスクの名前(例:disk-1
)。ゾーンディスクの標準スナップショットの一覧を取得するには:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots?filter=sourceDisk:'https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/SOURCE_ZONE/disks/DISK_NAME'
リージョン ディスクの標準スナップショットの一覧を取得するには:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots?filter=sourceDisk:'https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/SOURCE_REGION/disks/DISK_NAME'
PROJECT_ID
: プロジェクトの ID。SOURCE_ZONE
: (ゾーンディスクのみ)ディスクのゾーン名(例:us-west1-a
)。SOURCE_REGION
: (リージョン ディスクのみ)ディスクのリージョン名(例:us-west1
)。DISK_NAME
: ソースディスクの名前(例:disk-1
)。Google Cloud コンソールで、[スナップショット] ページに移動します。
[スナップショット] タブに、プロジェクト内のスナップショットの一覧が表示されます。
[名前] 列で、標準スナップショットの名前をクリックします。選択したスナップショットの [スナップショットの詳細] ページが開き、そのプロパティが表示されます。
PROJECT_ID
: 標準スナップショットを含むプロジェクトの名前。SNAPSHOT_NAME
: 標準スナップショットの名前。Google Cloud コンソールで [スナップショット] ページに移動します。
削除するスナップショットを 1 つ以上選択します。
[スナップショット] ページの上部の [削除] をクリックします。
- PROJECT_ID: プロジェクトの名前
- SNAPSHOT_NAME: 削除するスナップショットの名前。
gcloud compute snapshots create
コマンドを使用して、宛先プロジェクトに標準スナップショットを作成します。たとえば、ゾーン Persistent Disk または Hyperdisk のスナップショットを作成するには、次のコマンドを使用します。gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk https://www.googleapis.com/compute/v1/projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME \ --project DESTINATION_PROJECT_ID
次のように置き換えます。
- SNAPSHOT_NAME: 新しいスナップショットの名前。
- SOURCE_PROJECT_ID: ソースディスクのプロジェクトの ID。
- ZONE: ソースディスクのゾーン。
- SOURCE_DISK_NAME: ソースディスクの名前。
- DESTINATION_PROJECT_ID: 新しいスナップショットの宛先プロジェクトの ID。
宛先プロジェクトで、
gcloud compute disks create
コマンドを使用して、スナップショットに基づいてゾーンディスクまたはリージョン ディスクを作成します。gcloud compute disks create DISK_NAME \ --source-snapshot SNAPSHOT_NAME \ --project DESTINATION_PROJECT_ID
次のように置き換えます。
- DISK_NAME: 新しいディスクの名前。
- SNAPSHOT_NAME: スナップショットの名前。
- DESTINATION_PROJECT_ID: 新しいディスクの宛先プロジェクトの ID。
snapshots.insert
メソッドを呼び出して、宛先プロジェクトに標準スナップショットを作成します。たとえば、ゾーン Persistent Disk または Hyperdisk のスナップショットを作成するには、次のリクエストを行います。POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots { "name": SNAPSHOT_NAME "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME }
次のように置き換えます。
- DESTINATION_PROJECT_ID: 新しいスナップショットの宛先プロジェクトの ID。
- SNAPSHOT_NAME: スナップショットの名前。
- SOURCE_PROJECT_ID: ソースディスク プロジェクトの ID。
- SOURCE_ZONE: ソースディスクのゾーン。
- SOURCE_DISK_NAME: ソースディスクの名前。
宛先プロジェクトで、ゾーン
disks.insert
メソッドまたはリージョンregionDisks.insert
メソッドを使用して、スナップショットに基づいてゾーン ディスクまたはリージョン ディスクを作成します。たとえば、ゾーンディスクを作成するには、次のリクエストを送信します。
POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/zones/DESTINATION_ZONE/disks { "name": DISK_NAME "sourceSnapshot": SNAPSHOT_NAME }
次のように置き換えます。
- DESTINATION_PROJECT_ID: 新しいディスクの宛先プロジェクトの ID。
- DESTINATION_ZONE: 新しいディスクの宛先プロジェクトのゾーン。
- DISK_NAME: 新しいディスクの名前。
- SNAPSHOT_NAME: スナップショットの名前。
ソース プロジェクトで、
gcloud compute disks create
コマンドを使用して、スナップショットに基づくディスクを作成します。gcloud compute disks create DISK_NAME \ --source-snapshot SNAPSHOT_NAME \ --project SOURCE_PROJECT_ID \ --zone ZONE
次のように置き換えます。
- DISK_NAME: 新しいディスクの名前。
- SNAPSHOT_NAME: スナップショットの名前。
- SOURCE_PROJECT_ID: ソース プロジェクトの ID。
- ZONE: 新しいディスクを作成するゾーン。
このディスクは、組織間でスナップショットをコピーするためだけに作成される一時ディスクです。
宛先プロジェクトで、
gcloud compute snapshots create
コマンドを使用してスナップショットを作成します。たとえば、最初の手順で作成したゾーンディスクを使用してスナップショットを作成するには、次のコマンドを使用します。
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk https://www.googleapis.com/compute/v1/projects/SOURCE_PROJECT_ID/zones/ZONE/disks/DISK_NAME \ --project DESTINATION_PROJECT_ID
次のように置き換えます。
- SNAPSHOT_NAME: スナップショットの名前。
- SOURCE_PROJECT_ID: ソースディスクを含むプロジェクトの ID。
- ZONE: ソースディスクのゾーン。
- DISK_NAME: 手順 1 で作成したディスクの名前。
- DESTINATION_PROJECT_ID: 新しいスナップショットの宛先プロジェクトの ID。
使用可能なスナップショットの一覧を取得するには、プロジェクトまたはロケーションの標準スナップショットを表示するをご覧ください。
gcloud compute disks delete
コマンドを使用して、最初の手順で作成した一時ディスクを削除します。gcloud compute disks delete DISK_NAME \ --project SOURCE_PROJECT_ID --zone ZONE
次のように置き換えます。
- DISK_NAME: 手順 1 で作成したディスクの名前。
- SOURCE_PROJECT_ID: ソースディスクを含むプロジェクトの ID。
- ZONE: ディスクのゾーン
ソース プロジェクトで、ゾーンの
disks.insert
メソッドを使用して、スナップショットに基づくゾーンディスクまたはリージョン ディスクを作成します。たとえば、ゾーンディスクを作成するには、次のリクエストを送信します。
POST https://compute.googleapis.com/compute/v1/projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks { "name": DISK_NAME "sourceSnapshot": SNAPSHOT_NAME }
次のように置き換えます。
- SOURCE_PROJECT_ID: 新しいディスクのソース プロジェクトの ID。
- SOURCE_ZONE: 新しいディスクのゾーン。
- DISK_NAME: 新しいディスクの名前。
- SNAPSHOT_NAME: スナップショットの名前。
このディスクは、組織間でスナップショットをコピーするためだけに作成される一時ディスクです。
snapshots.insert
メソッドを呼び出して、宛先プロジェクトにスナップショットを作成します。たとえば、最初の手順で作成したゾーンディスクを使用してスナップショットを作成するには、次のコマンドを使用します。
POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots { "name": SNAPSHOT_NAME "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/DISK_NAME }
次のように置き換えます。
- DESTINATION_PROJECT_ID: 新しいスナップショットの宛先プロジェクトの ID。
- SNAPSHOT_NAME: スナップショットの名前。
- SOURCE_PROJECT_ID: ソースディスクを含むプロジェクトの ID。
- SOURCE_ZONE: ソースディスクのゾーン。
- DISK_NAME: ソースディスクの名前。
disks.delete
メソッドを使用して、最初の手順で作成した一時ディスクを削除します。DELETE https://compute.googleapis.com/compute/v1/projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/DISK_NAME
次のように置き換えます。
- SOURCE_PROJECT_ID: 一時ディスクを含むプロジェクトの ID。
- SOURCE_ZONE: ディスクのゾーン
- DISK_NAME: 手順 1 で作成した一時ディスクの名前。
- ディスクのスケジュールされたスナップショットを作成する方法を学習する。
- スナップショットからディスク イメージを作成する方法を学習する。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
必要なロールと権限
標準スナップショットの管理に必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
これらの事前定義ロールには、標準スナップショットの管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
標準スナップショットを管理するには、次の権限が必要です。
これらの権限は、カスタムロールや他の事前定義ロールを使用して取得することもできます。
特定のプロジェクトまたはロケーション内の標準スナップショットを一覧表示する
特定のプロジェクトまたはロケーションにある標準スナップショットを見る、または一覧表示するには、gcloud CLI、Google Cloud コンソール、または REST を使用します。
コンソール
gcloud
特定のプロジェクトで使用可能なスナップショットの一覧を表示するには、
gcloud compute snapshots list
コマンドを使用します。gcloud compute snapshots list --project=PROJECT_ID
省略可。
PROJECT_ID
をプロジェクト ID で置き換えます。 このフラグを省略すると、現在のプロジェクトが使用されます。セッションのデフォルト プロジェクトを設定するには、gcloud CLI コマンドgcloud config set project PROJECT_ID
を使用します。REST
特定のプロジェクトで使用可能なスナップショットの一覧を表示するには、
snapshots.list
メソッドに対してGET
リクエストを作成します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots
PROJECT_ID
をプロジェクト ID で置き換えます。ディスクの標準スナップショットを表示する
ディスクの標準スナップショットのリストを表示するには、Google Cloud コンソール、gcloud CLI、または REST を使用します。
コンソール
gcloud
特定のディスクに対する標準スナップショットの一覧を取得するには、
gcloud compute snapshots list
コマンドと--filter
引数を使用します。次のように置き換えます。
REST
ゾーンまたはリージョン ディスクに対する標準スナップショットの一覧を取得するには、
snapshots.list
メソッドへのGET
リクエストを行います。filter=sourceDisk
クエリ パラメータを使用して、ディスクの名前を指定します。次のように置き換えます。
標準スナップショットに関する情報を表示する
Google Cloud コンソール、Google Cloud CLI、または REST を使用して、標準スナップショットに関する詳細情報(作成日時、ソースディスク、サイズなど)を取得します。
コンソール
gcloud
標準スナップショットに関する情報を表示するには、
gcloud compute snapshots describe
コマンドを使用します。gcloud compute snapshots describe SNAPSHOT_NAME
SNAPSHOT_NAME
は、標準スナップショットの名前に置き換えます。REST
snapshots.get
メソッドにGET
リクエストを送信します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME
次のように置き換えます。
スナップショットを削除する
Compute Engine では差分スナップショットが使用されているため、各スナップショットに含まれているのは、前回のスナップショット以降に変更されたデータのみです。後のスナップショットで前のスナップショットに保存されていた情報が必要になることがあるため、スナップショットを削除しても、そのスナップショット上のすべてのデータが削除されるとは限りません。
スナップショットの削除の詳細については、スナップショットの削除をご覧ください。
コンソール
gcloud
スナップショットを削除するには、
gcloud compute snapshots delete
コマンドを使用します。gcloud compute snapshots delete SNAPSHOT_NAME
SNAPSHOT_NAME は、削除するスナップショットの名前に置き換えます。
Go
Java
Node.js
Python
REST
snapshots.delete
メソッドにDELETE
リクエストを発行して、スナップショットを削除します。DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME
次のように置き換えます。
フィルタに基づいて複数のスナップショットを削除する
Compute Engine では差分スナップショットが使用されているため、各スナップショットに含まれているのは、前回のスナップショット以降に変更されたデータのみです。後のスナップショットで前のスナップショットに保存されていた情報が必要になることがあるため、スナップショットを削除しても、そのスナップショット上のすべてのデータが削除されるとは限りません。
スナップショットの削除の詳細については、スナップショットの削除をご覧ください。
特定のフィルタに基づいて複数のスナップショットを削除できます。gcloud CLI でフィルタを使用する方法の詳細については、gcloud CLI トピック フィルタをご覧ください。
スナップショットを削除するには、特定のフィルタを指定した
gcloud compute snapshots list
コマンドと、xargs
を指定したgcloud compute snapshots delete
コマンドを組み合わせて使用します。gcloud compute snapshots list --filter="EXPRESSION" --uri | xargs gcloud compute snapshots delete
EXPRESSION
は、gcloud CLI トピック フィルタに置き換えます。たとえば、
--filter="creationTimestamp<'2023-12-31'"
は、2023 年 12 月 31 日より前に作成されたすべてのスナップショットを削除します。同じ組織内のプロジェクト間でスナップショット データを共有する
この手順を使用すると、あるプロジェクトのディスクから同じ組織内の別のプロジェクトのディスクにデータを移動できます。
gcloud
REST
使用可能なスナップショットの一覧を取得するには、プロジェクトまたはロケーションの標準スナップショットを表示するをご覧ください。
異なる組織のプロジェクト間でスナップショットを共有する
この手順を使用すると、ある組織のプロジェクトの標準スナップショットを別の組織の別のプロジェクトと共有できます。
gcloud
REST
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-23 UTC。
-