このドキュメントでは、インスタント スナップショットを作成および管理する方法について説明します。インスタント スナップショットはディスクの内容をキャプチャし、これを使用して数分で新しいディスクを作成できます。
インスタント スナップショットは、ソースディスクと同じゾーンまたはリージョンに保存され、標準スナップショットに代わるものではなく、障害復旧用のオフサイト バックアップを提供するものです。Compute Engine で使用できるその他のデータ保護オプションについてご確認ください。
インスタント スナップショットのデータにアクセスするには、インスタント スナップショットを使用して新しいディスクを作成します。
インスタント スナップショットを別の場所にコピーする場合や、ソースディスクが削除された後にスナップショット データを保持する場合は、インスタント スナップショットから標準スナップショットを作成します。
始める前に
- インスタント スナップショットの制限事項を確認して、ユースケースにインスタント スナップショットが適していることを確認します。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
必要なロールと権限
インスタント スナップショットの作成に必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
- Compute インスタンス管理者(v1)(
roles/compute.instanceAdmin.v1
) - サービス アカウントとして実行できる VM に接続する: サービス アカウント ユーザー(v1)(
roles/iam.serviceAccountUser
)
ロールの付与の詳細については、アクセス権の管理をご覧ください。
これらの事前定義ロールには、インスタント スナップショットの作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
インスタント スナップショットを作成するには、次の権限が必要です。
-
インスタント スナップショットを作成する:
compute.instantSnapshots.create
-
インスタント スナップショットを表示する:
compute.instantSnapshots.list
-
インスタント スナップショットの詳細を表示する:
compute.instantSnapshots.get
-
インスタント スナップショットを削除する:
compute.instantSnapshots.delete
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Persistent Disk ボリュームのインスタント スナップショットを作成する
ゾーンディスクのインスタント スナップショットは、ソースディスクと同じゾーンに保存されます。同様に、リージョン ディスクの即時スナップショットは、ディスクと同じリージョンに保存されます。
gcloud CLI、Google Cloud コンソール、または REST を使用して、ゾーンまたはリージョン Persistent Disk ボリュームのインスタント スナップショットを作成できます。
コンソール
Google Cloud コンソールで [VM インスタンス] ページに移動します。
作業するプロジェクトを選択します。
[名前] 列で、バックアップするディスクにアタッチされている VM の名前をクリックします。
[ストレージ] セクションで、次のいずれかの方法でディスクを選択します。
- VM のブートディスクをバックアップするには、[ブートディスク] セクションでブートディスクの名前をクリックします。
- アタッチされた Persistent Disk ボリュームをバックアップするには、[追加ディスク] セクションで、アタッチする Persistent Disk ボリュームの名前をクリックします。
インスタント スナップショットの作成を完了するには、[スナップショットの作成] ページで、次の操作を行います。
- [名前] フィールドに、インスタント スナップショットを識別する一意の名前を入力します。
- 省略可: [説明] フィールドにスナップショットの詳細を追加します。
- [タイプ] フィールドで、[インスタント スナップショット] を選択します。[ロケーション] フィールドは自動的にディスクと同じゾーンまたはリージョンに設定されます。
- [スナップショット ソースの種類] フィールドで、[ディスク] が選択されていることを確認します。
- 省略可: プロジェクトを整理するには、1 つ以上のラベルを追加します。
- [作成] をクリックします。
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 を使用して、プロジェクトまたはロケーション内のすべてのインスタント スナップショットのリストを表示できます。
コンソール
Google Cloud コンソールで、[スナップショット] ページに移動します。
[インスタント スナップショット] タブをクリックします。インスタント スナップショットのリストが表示されます。
省略可: [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 を使用します。
コンソール
Google Cloud コンソールで、[スナップショット] ページに移動します。
[インスタント スナップショット] タブをクリックします。プロジェクト内のすべての即時スナップショットのリストが表示されます。
ソースディスクで結果を絞り込みます。
[filter_list フィルタ] フィールドに「
Source disk:
」と入力します。インスタント スナップショットがあるディスクのリストが表示されます。
[値] リストからディスクの名前を選択します。即時スナップショットのリストには、ディスクのすべての即時スナップショットが表示されます。
ディスク名が表示されない場合は、[filter_list フィルタ] フィールドに、ディスク名の最初の数文字を入力して、表示されるフィルタ オプションのリストを変更します。
gcloud
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 を使用します。
コンソール
Google Cloud コンソールで、[スナップショット] ページに移動します。
[インスタント スナップショット] タブをクリックします。インスタント スナップショットのリストが表示されます。
[名前] 列で、インスタント スナップショットの名前をクリックします。選択したスナップショットの [インスタント スナップショットの詳細] ページが開き、そのプロパティが表示されます。
gcloud
インスタント スナップショットに関する情報を表示するには、
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 を使用します。
コンソール
Google Cloud コンソールで、[スナップショット] ページに移動します。
[インスタント スナップショット] タブをクリックします。
削除するスナップショットを 1 つ以上選択します。
[スナップショット] ページの上部の [削除] をクリックします。
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
: インスタント スナップショットの名前。
インスタント スナップショットのストレージ ロケーションを変更する
インスタント スナップショットは、常にソースディスクと同じロケーションに保存されます。別のゾーンまたはリージョンからインスタント スナップショットにアクセスできるようにすることはできません。代わりに、インスタント スナップショットから標準スナップショットを作成し、標準スナップショットを使用できます。
インスタント スナップショットから標準スナップショットを作成する方法をご確認ください。
トラブルシューティング
インスタント スナップショットの使用で発生した問題を解決するには、インスタント スナップショットのトラブルシューティングをご覧ください。