このドキュメントでは、ゾーンとリージョンの永続ディスクを定期的かつ自動的にバックアップするためにスナップショット スケジュールを作成する方法を説明します。Compute Engine ワークロードのバックアップには、スナップショット スケジュールを使用することをおすすめします。
スナップショット スケジュールを作成するときに、1 つ以上の永続ディスクに適用可能なリソース ポリシーを作成します。スナップショット スケジュールは次の方法で作成できます。
スナップショット スケジュールには、次のプロパティがあります。
- スケジュール名
- スケジュールの説明
- スナップショット頻度(時間、日、週単位)
- スナップショット開始時刻
- スナップショット スケジュールが利用可能なリージョン
- ソースディスク削除ポリシー(ソースディスクが削除された場合、自動生成されたスナップショットを処理するためのポリシー)
- 保持ポリシーを使用すると、スナップショット スケジュールによって生成されたスナップショットの保持期間を定義できます。
始める前に
- このガイドのコマンドラインの例を使用する場合は、次の操作を行います。
- Google Cloud CLI の最新バージョンをインストールするか、最新バージョンに更新します。
- デフォルトのリージョンとゾーンを設定します。
- このガイドの API の例を使用する場合、API アクセスを設定します。
制限事項
- 永続ディスクに 1 度に関連付けられるスナップショット スケジュールは 1 つだけです。
- リージョンごとの使用中のスナップショット スケジュールを最大で 1,000 個作成できます。
- リージョンで追加のリソースが必要になった場合、コンソールからリソース割り当ての増量を申請する必要があります。
- ディスクに関連付けられているスナップショット スケジュールを削除することはできません。このようなスケジュールを削除するためには、削除する前にすべてのディスクからそのスケジュールとの関連付けを解除する必要があります。
- スナップショット スケジュールを作成した後、それを編集することはできません。スナップショット スケジュールを更新するには、一度削除して新しいスケジュールを作成する必要があります。
- 現在、顧客指定の暗号鍵(CSEK)を使用する永続ディスクのスナップショット スケジュールを作成できません。
- 顧客管理の暗号鍵(CMEK)を使用する永続ディスクのスナップショット スケジュールを作成すると、スナップショットは同じ鍵で自動的に暗号化されます。
スナップショット スケジュール頻度
スナップショット スケジュールを作成する前に、開始時刻とスナップショット頻度を決めてください。開始時刻は、スナップショット スケジュールを開始する時刻です。頻度は、時間、日、週単位で設定できます。
スナップショット スケジュールは、指定した開始時刻から 1 時間以内に開始されます。たとえば、開始時刻を 12 時にした場合、スナップショットは 12 時から 12 時 59 分の間に開始されます。スケジュールでは UTC 時間基準が使用されます。
時間単位のスケジュールの設定: 時間単位のスケジュールを設定するには、開始時刻を選択し、1~23 の整数でスナップショット間隔を指定します。スナップショット間隔により、スナップショットが生成される頻度が定義されます。間隔を設定するときは、24 の約数(1、2、3、4、6、8、12)を選択して、スナップショットが毎日同じ時間に開始されるようにします。たとえば、開始時刻を 9:00 に設定して間隔を 6 に設定すると、スナップショット スケジュールは 9:00 から 10:00 の間に開始し、スナップショットが 6 時間ごとに生成されます。
日単位スケジュールの設定: スナップショットを 1 日 1 回生成するには、頻度を日単位に設定します。たとえば、スナップショットが毎日 9 時に生成されるようにスナップショット スケジュールを設定できます。
週単位スケジュールの設定: スナップショットを週の複数の曜日に生成するには、頻度を週単位に設定します。たとえば、開始時刻を 9 時に設定し、週単位スケジュールを月曜日、木曜日、日曜日に設定すると、スナップショット スケジュールは毎週月曜日、木曜日、日曜日の 9 時に実行されます。曜日ごとに週単位スケジュールを設定することもできます。たとえば、毎週月曜日の 14 時と木曜日の 10 時に週単位のスケジュールを設定できます。
スナップショット保持ポリシー
スナップショット保持ポリシーは、スナップショットを保持する期間を定義します。
スナップショット保持ポリシーを設定する場合は、スナップショット スケジュールの一部として定義する必要があります。たとえば、gcloud CLI または Cloud Console を使用する場合は、スナップショット スケジュールを作成する際に、必ず保持ポリシーを設定する必要があります。API に直接リクエストを送信する場合は、このフィールドを省略できます。その場合、スナップショットは無期限に保持されます。
API にリクエストを送信し、すべての自動生成スナップショットを手動で削除するまで、永久に保持するデフォルトのオプションを選択した場合、それらのスナップショットを手動で削除するまでストレージ費用がかかります。
長期間にわたるスナップショットのストレージ費用を最小限に抑える保持ポリシーの設定を検討することをおすすめします。
- スナップショット保持ポリシーは、日数で指定する必要があります。最小保持日数は 1 日です。
- スナップショット保持ポリシーは自動スナップショットにのみ適用されます。手動で作成されたスナップショットには適用されません。
- 過去にさかのぼって保持ポリシーを適用することはできません。保持ポリシーを設定しないでスナップショット スケジュールを作成した後、保持ポリシーを設定したスナップショット スケジュールに切り替えた場合も、保持ポリシーは新しいスナップショットにのみ適用されます。
- 保持ポリシーに関係なく、自動生成されたスナップショットと手動のスナップショットは、常に手動で削除できます。
ソースディスクの削除ルール
スナップショット スケジュールを作成する際に、ソースディスクの削除ルールも設定できます。ソースディスクの削除ルールは、ソースディスクが削除された場合のスナップショットの処理方法を制御します。デフォルトでは、ソースディスクが削除されると、スナップショット スケジュールによって自動生成されたスナップショットは、当初設定した保持ポリシーに関係なく、手動で削除するまで永久に保持されます。
代わりの方法として、ソースディスクが削除された場合、保持ポリシーをスナップショットに適用するルールを設定することもできます。たとえばソースディスクが削除された後、スナップショットを 1 週間保持するポリシーを適用できます。
たとえば、保持ポリシーを 3 日に設定したスナップショット スケジュールを作成したものの、この保持ポリシーをソースディスクの削除時に適用しないことにしたとします。このポリシーを永続ディスクに適用すると、Compute Engine はスナップショットを自動生成しても、保持ポリシーによって 3 日後にスナップショットを自動的に削除します。ただし、ソースディスクが削除された場合は、保持ポリシーは適用されなくなっているため、このスケジュールによって生成された既存のスナップショットはすべて無期限に保持されます。
Windows インスタンスのスナップショットをスケジュールする
Windows VM インスタンスにアタッチされているディスクにスナップショット スケジュールを適用する場合、guest-flush
オプションを使用して VSS を有効にし、スナップショットのシャドーコピーを生成します。Windows のスナップショットの詳細については、Windows 永続ディスク スナップショットの作成をご覧ください。
スナップショットのロケーション ルールとスナップショット ラベル
手動で生成するスナップショットと同様に、自動生成されるスナップショットにもリソースラベルを適用し、ストレージ ロケーションを選択できます。この 2 つのプロパティをスナップショット スケジュールで設定すると、そのスケジュールによって自動生成されたスナップショットには、これらのプロパティが適用されます。たとえば、スナップショットのロケーションを US
として設定すると、そのスケジュールによって生成されたすべてのスナップショットは米国内に保存されます。オプションの設定方法について詳しくは、以下に記載する例をご覧ください。
スケジュールされたスナップショットの名前
スナップショット スケジュールの一環としてキャプチャされるスナップショットには、自動生成された名前が付けられます。スナップショットの名前は、次のパターンに従って生成されます。
[disk-name-prefix]-[scope-name]-[timestamp]-[random-chars]
disk-name-prefix
: ソースディスクの名前。このフィールドの値は最大 20 文字です。scope-name
: ソースディスクのゾーンまたはリージョンの名前。timestamp
: 作成された時刻を示す、YYYYMMDDHHMMSS
形式の UTC タイムスタンプ。random-chars
: 他のスナップショットとの名前の競合を回避するためにランダムに生成される英数字。
スナップショット スケジュールを作成する
Google Cloud Console、Google Cloud CLI、または Compute Engine API を使用して、永続ディスクのスナップショット スケジュールを作成します。スナップショット スケジュールは、永続ディスクが存在する同じリージョン内で作成する必要があります。たとえば、永続ディスクがゾーン us-west1-a
にある場合、スナップショット スケジュールは us-west1
リージョン内にある必要があります。詳細については、スナップショットのストレージ ロケーションの選択をご覧ください。
Console
スナップショット スケジュールを作成するには:
- Google Cloud Console で、[スナップショット] ページに移動します。
- ページ上部にある [スナップショット スケジュールを作成] をクリックします。
- [名前] に、スケジュール名を入力します。
- [リージョン] で、スナップショット スケジュールのリージョンを選択します。スナップショット スケジュールが存在するリージョン内のゾーンに、対象の永続ディスクが存在する必要があります。
- 必要に応じて、スナップショットのロケーションを選択するか、デフォルトの選択をそのまま使用します。
- [スケジュール頻度] で、頻度を選択します。
- [スナップショットの自動削除までの期間] に、スナップショットを自動的に削除するまで保持する日数を入力します。
- [削除ルール] で、スケジュールのソースディスクが削除された場合のスナップショットの処理方法を決定するルールを選択します。
- このスケジュールによって生成されたスナップショットを保持する日数を選択します。
- Windows を使用している場合は、[VSS を有効化] をオンにできます。
- 必要に応じて、スナップショットに適用するラベルを指定します
- [作成] をクリックして、スナップショット スケジュールを作成します。
gcloud
永続ディスクのスナップショット スケジュールを作成するには、gcloud
コマンドの compute resource-policies create snapshot-schedule
を使用します。スケジュール頻度を時間、日、週単位から設定します。
gcloud compute resource-policies create snapshot-schedule [SCHEDULE_NAME] \
--description "[SCHEDULE_DESCRIPTION]" \
--max-retention-days [MAX_RETENTION_DAYS] \
--start-time [START_TIME] \
--hourly-schedule [SNAPSHOT_INTERVAL] \
--daily-schedule \
--weekly-schedule [SNAPSHOT_INTERVAL] \
--weekly-schedule-from-file [FILE_NAME] \
--on-source-disk-delete [DELETION_OPTION]
ここで
[SCHEDULE_NAME]
は、新しいスナップショット スケジュールの名前です。"[SCHEDULE_DESCRIPTION]"
は、スナップショット スケジュールの説明です。引用符で説明を囲みます。[MAX_RETENTION_DAYS]
は、スナップショットを保持する日数です。たとえば、3
を設定すると、スナップショットは 3 日間保持されてから削除されます。保持ポリシーの値は、少なくとも 1 日に設定する必要があります。[START_TIME]
は UTC 開始時刻です。開始時刻は正時でなければなりません。次に例を示します。- 午後 2 時(PST)は
22:00
です。 - 開始時間を
22:13
に設定すると、エラーが発生します。
- 午後 2 時(PST)は
[SNAPSHOT_INTERVAL]
は、スナップショットを生成する間隔を定義します。時間単位のスケジュールを設定するには、1~23 の整数を使用します。24 を割り切れる数値を時間として選択してください。たとえば、--hourly-schedule
を 12 に設定すると、スナップショットは 12 時間ごとに生成されます。週単位スケジュールの場合は、スナップショットを生成する曜日を定義します。曜日を指定する必要があります。大文字と小文字は区別されません。スナップショット頻度のフラグhourly-schedule
、daily-schedule
、weekly-schedule
は相互に排他的です。スナップショット スケジュールに応じて、いずれかのフラグを選択する必要があります。[FILE_NAME]
は、週単位スナップショット スケジュールが含まれるファイルの名前です(この形式でスケジュールを指定することを選択した場合)。ファイルを使用して、曜日ごとに異なる開始時刻を設定した週単位スケジュールを指定できます(コマンドラインで直接、複数の週単位スケジュールを指定することはできません)。たとえば、ファイルには、月曜日と水曜日のスナップショット スケジュールを[{"day": "MONDAY", "startTime": "04:00"}, {"day": "WEDNESDAY", "startTime": "02:00"}]
のように指定できます。開始時刻をファイルに含める場合、--start-time
フラグを設定する必要はありません。スケジュールでは UTC 時間基準が使用されます。[DELETION_OPTION]
は、ソースディスクが削除された場合のスナップショットの処理方法を決定します。このフラグを省略してデフォルトのkeep-auto-snapshots
を選択するか、apply-retention-policy
を選択して保持ポリシーを適用します。
以下に、スナップショット スケジュールの設定の追加例を記載します。次の設定については、すべての例で共通しています。
- ディスク削除ルールが含まれています。
--on-source-disk-delete
フラグをデフォルトのkeep-auto-snapshots
に設定して、自動生成されたすべてのスナップショットを永久に保持します。あるいは、このフラグをapply-retention-policy
に設定してスナップショット保持ポリシーを使用することもできます。 - ストレージ ロケーションは
US
に設定されています。したがって、生成されたすべてのスナップショットは米国のマルチリージョン内に保存されます。 - 生成されたすべてのスナップショットに、
env=dev
とmedia=images
のラベルが適用されます。 - 保持ポリシーは 10 日に設定されています。
時間単位スケジュール: この例では、スナップショット スケジュールは 22 時(UTC)に開始し、4 時間ごとに生成されます。
gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
--description "MY HOURLY SNAPSHOT SCHEDULE" \
--max-retention-days 10 \
--start-time 22:00 \
--hourly-schedule 4 \
--region us-west1 \
--on-source-disk-delete keep-auto-snapshots \
--snapshot-labels env=dev,media=images \
--storage-location US
日単位スケジュール: この例では、スナップショット スケジュールは 22 時(UTC)に開始し、毎日同じ時刻に生成されます。--daily-schedule
フラグを指定する必要がありますが、ここでは値を設定していません。
gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
--description "MY DAILY SNAPSHOT SCHEDULE" \
--max-retention-days 10 \
--start-time 22:00 \
--daily-schedule \
--region us-west1 \
--on-source-disk-delete keep-auto-snapshots \
--snapshot-labels env=dev,media=images \
--storage-location US
週単位スケジュール: この例では、スナップショット スケジュールは 22 時(UTC)に開始し、毎週火曜日と木曜日に生成されます。
gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
--description "MY WEEKLY SNAPSHOT SCHEDULE" \
--max-retention-days 10 \
--start-time 22:00 \
--weekly-schedule tuesday,thursday \
--region us-west1 \
--on-source-disk-delete keep-auto-snapshots \
--snapshot-labels env=dev,media=images \
--storage-location US
API
API で、resourcePolicies.insert
に対する POST
リクエストを作成し、スナップショット スケジュールを作成します。リクエスト本文には少なくとも、スナップショット スケジュール名、リージョン内のスナップショットのストレージ ロケーション、スナップショット頻度を含める必要があります。
デフォルトの onSourceDiskDelete
パラメータは keepAutoSnapshots
に設定されています。つまり、ソースディスクが削除されても、自動生成されたそのディスクのスナップショットは無期限に保持されます。あるいは、このフラグを applyRetentionPolicy
に設定して保持ポリシーを適用することもできます。
次の例では、毎日 12 時(UTC)に開始される日単位スナップショット スケジュールを設定しています。この例では、5 日の保持ポリシーも設定されています。したがって、スナップショットは生成されてから 5 日後に自動的に削除されます。
スナップショットが指定のロケーションに確実に保存されるよう、リクエスト本文にスナップショット ロケーション オプションとスナップショット ラベルを含めることもできます。
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/resourcePolicies
{
"name": "[SCHEDULE_NAME]",
"description": "[SCHEDULE_DESCRIPTION]",
"snapshotSchedulePolicy": {
"schedule": {
"dailySchedule": {
"startTime": "12:00",
"daysInCycle": "1"
}
},
"retentionPolicy": {
"maxRetentionDays": "5"
},
"snapshotProperties": {
"guestFlush": "False",
"labels": {
"env": "dev",
"media": "images"
},
"storageLocations": ["US"]
}
}
}
ここで
[PROJECT_ID]
は、プロジェクト名です。[REGION]
は、スナップショット スケジュール リソース ポリシーのロケーションです。[SCHEDULE_DESCRIPTION]
は、スナップショット スケジュールの説明です。[SCHEDULE_NAME]
は、スナップショット スケジュールの名前です。
週単位または月単位スケジュールも同じようにして作成できます。週単位または月単位スケジュールの設定に固有の詳細については、API リファレンスをご覧ください。
たとえば次のリクエストでは、月曜日の 9 時と木曜日の 2 時に実行される週単位スケジュールを作成しています。
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/resourcePolicies
{
"name": "[SCHEDULE_NAME]",
"description": "[SCHEDULE_DESCRIPTION]",
"snapshotSchedulePolicy": {
"schedule": {
"weeklySchedule": {
"dayOfWeeks": [
{
"day": "Monday",
"startTime": "9:00"
},
{
"day": "Thursday",
"startTime": "2:00"
}
]
}
},
"retentionPolicy": {
"maxRetentionDays": "5"
},
"snapshotProperties": {
"guestFlush": "False",
"labels": {
"production": "webserver"
},
"storageLocations": ["US"]
}
}
}
スナップショット スケジュールをディスクに関連付ける
スケジュールを作成したら、それを既存のディスクに関連付けます。コンソール、gcloud
コマンド、Compute Engine API メソッドのいずれかを使用できます。
Console
スナップショット スケジュールを既存のディスクに関連付けます。
- Google Cloud Console で、[ディスク] ページに移動します。
- スナップショット スケジュールを関連付けるディスクの名前をクリックします。ディスクの詳細ページが開きます。
- ディスク詳細ページの上部で、[編集] をクリックします。
- [スナップショット スケジュール] プルダウン メニューを使用して、スケジュールをディスクに追加します。または、新しいスケジュールを作成します。
- 新しいスケジュールを作成した場合は、[作成] をクリックします。
- [保存] をクリックしてタスクを完了します。
gcloud
スナップショット スケジュールをディスクにアタッチするには、gcloud
コマンドの disks add-resource-policies
を使用します。
gcloud compute disks add-resource-policies [DISK_NAME] \
--resource-policies [SCHEDULE_NAME] \
--zone [ZONE]
ここで
[DISK_NAME]
は、既存のディスクの名前です。[SCHEDULE_NAME]
は、スナップショット スケジュールの名前です。[ZONE]
は、ディスクのロケーションです。
API
API で、disks.addResourcePolicies
に対する POST
リクエストを作成し、スナップショット スケジュールを既存のディスクにアタッチします。
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]/addResourcePolicies
{
"resourcePolicies": [
"regions/[REGION]/resourcePolicies/[SCHEDULE_NAME]"
]
}
ここで
[PROJECT_ID]
は、プロジェクト名です。[ZONE]
は、ディスクのロケーションです。[REGION]
は、スナップショット スケジュールのロケーションです。[DISK_NAME]
は、ディスクの名前です。[SCHEDULE_NAME]
は、このディスクに適用しているリージョン内のスナップショット スケジュールの名前です。
スナップショット スケジュールと一緒にディスクを作成する
Cloud Console と gcloud
の場合は、ディスクとスナップショット スケジュールを同時に作成できます。
Console
- Google Cloud Console で、[ディスク] ページに移動します。
- ページ上部にある [ディスクの作成] をクリックします。
- ゾーンディスクまたはリージョン ディスクを作成するための必須フィールドに値を入力します。
- スナップショット スケジュールと同じリージョン内にディスクを作成します。
- [スナップショット スケジュール] のフィールドに値を入力します。
- プルダウン メニューを使用して、スケジュールを作成するためのフィールドに値を入力します。
- [作成] をクリックしてスケジュールを作成します。
- [作成] をクリックしてディスクを作成します。
gcloud
ゾーンまたはリージョンの永続ディスクを作成し、スナップショット スケジュールをアタッチするには、gcloud
コマンドの disks create
を使用します。
gcloud compute disks create [DISK_NAME] \
--resource-policies [SCHEDULE_NAME] \
--zone [ZONE]
ここで
[DISK_NAME]
は、新しいディスクの名前です。[SCHEDULE_NAME]
は、スナップショット スケジュールの名前です。[ZONE]
は、ディスクを作成するロケーションです。このディスクは、スナップショット スケジュールのリージョン内のゾーンに作成する必要があります。
スナップショット スケジュールを表示する
スナップショット スケジュールのリストを取得するには、コンソール、gcloud
コマンド、Compute Engine API メソッドのいずれかを使用できます。このリクエストにより、プロジェクト内のすべてのスナップショット スケジュールの名前、説明、リージョンが表示されます。
Console
- Google Cloud Console で、[スナップショット] ページに移動します。
- ページ上部にある [スナップショット スケジュール] をクリックします。
- 特定のスナップショット スケジュールを確認するには、[スナップショット スケジュールのフィルタ] 検索ボックスを使用します。
- スナップショット スケジュールをクリックして、その詳細を表示します。
gcloud
スナップショット スケジュールのリストを表示するには、gcloud
コマンドの resource-policies list
を使用します。
gcloud compute resource-policies list
特定のスナップショット スケジュールの説明を表示するには、gcloud
コマンドの resource-policies describe
を使用します。
gcloud compute resource-policies describe [SCHEDULE_NAME]
ここで、[SCHEDULE_NAME]
はスナップショット スケジュールの名前です。
API
プロジェクト内のスナップショット スケジュールのリストを取得するには、resourcepolicies.aggregatedList
に GET
リクエストを送信します。
GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/aggregated/resourcePolicies
[PROJECT_ID]
は、プロジェクト名です。
リージョン別にスナップショット スケジュールを表示する
特定のリージョン内のスナップショット スケジュールを表示するには、Console、gcloud
コマンド、Compute Engine API メソッドのいずれかを使用できます。
Console
- Google Cloud Console で、[スナップショット] ページに移動します。
- ページ上部にある [スナップショット スケジュール] をクリックします。
- 特定のリージョンのスナップショット スケジュールを確認するには、[スナップショット スケジュールのフィルタ] 検索ボックスを使用します。
gcloud
特定のリージョン内のスナップショット スケジュールを表示するには、gcloud
コマンドの resource-policies list
を使用します。
gcloud compute resource-policies list [PROJECT_ID] \
--filter [REGION]
ここで
[PROJECT_ID]
は、プロジェクト名です。[REGION]
は、リソース ポリシーのロケーションです。
API
リージョン内で設定されているスナップショット スケジュールを取得するには、resourcePolicies.get
にリクエストを送信します。
GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/resourcePolicies/[SCHEDULE_NAME]
ここで
[PROJECT_ID]
は、プロジェクト名です。[REGION]
は、スナップショット スケジュールのロケーションです。[SCHEDULE_NAME]
は、表示するスナップショット スケジュールの名前です。
スナップショット スケジュールを変更する
スナップショット スケジュールを編集することはできません。すでにディスクに関連付けられているスケジュールを変更するには、まず、ディスクからそのスケジュールとの関連付けを解除し、スケジュールを削除する必要があります。その後、新しいスケジュールを作成してディスクに関連付けることができます。スナップショット スケジュールを変更するには、Console、gcloud
コマンド、Compute Engine API メソッドのいずれかを使用します。
関連付けが解除されたスナップショット スケジュールから生成されたスナップショットは、新しいポリシーによって管理されません。これらのスナップショットは、削除するまで無期限に保持されます。
Console
- Google Cloud Console で、[ディスク] ページに移動します。
- スケジュールとの関連付けを解除するディスクを選択します。
- ページ上部の [編集] をクリックします。
- [スナップショット スケジュール] プルダウン メニューを開きます。
- [スケジュールなし] をクリックして、ディスクからスケジュールとの関連付けを解除します。
- 新しいスケジュールを作成します。あるいは、ディスク オプションを編集する際にスケジュールを入れ替えることもできます。
- [保存] をクリックしてタスクを完了します。
gcloud
スケジュールを変更するディスクとスナップショット スケジュールの接続を解除するには、gcloud
コマンドの disks remove-resource-policies
を使用します。
gcloud compute disks remove-resource-policies [DISK_NAME] \
--resource-policies [SCHEDULE_NAME] \
--region [REGION] \
--zone [ZONE]
ここで
[DISK_NAME]
は、スナップショット スケジュールが関連付けられているディスクの名前です。[SCHEDULE_NAME]
は、このディスクから関連付けを解除するスナップショット スケジュールの名前です。[REGION]
は、スナップショット スケジュールが存在するリージョンです。[ZONE]
は、ゾーンディスクが存在するゾーンです。
次に、disks add-resource-policies
コマンドを使用して、更新後のスナップショット スケジュールをディスクに追加します。
gcloud compute disks add-resource-policies [DISK_NAME] \
--resource-policies [SCHEDULE_NAME] \
--zone [ZONE]
ここで
[DISK_NAME]
は、スナップショット スケジュール リソース ポリシーを含むディスクの名前です。[SCHEDULE_NAME]
は、このディスクに追加するスナップショット スケジュールの名前です。[ZONE]
は、ディスクが存在するゾーンです。
API
スケジュールとディスクの接続を解除するには、disks.removeResourcePolicies
に対する POST
リクエストを作成します。
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]/removeResourcePolicies
{
"resourcePolicies": [
"regions/[REGION]/resourcePolicies/[SCHEDULE_NAME]"
]
}
ここで
[PROJECT_ID]
は、プロジェクト名です。[ZONE]
は、ディスクが存在するゾーンです。[DISK_NAME]
は、スナップショット スケジュールが関連付けられているディスクの名前です。[REGION]
は、スナップショット スケジュールのロケーションです。[SCHEDULE_NAME]
は、このディスクから削除するスナップショット スケジュールの名前です。
API で、disks.addResourcePolicies
に対する POST
リクエストを作成し、スナップショット スケジュールを既存のディスクにアタッチします。
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]/addResourcePolicies
{
"resourcePolicies": [
"regions/[REGION]/resourcePolicies/[SCHEDULE_NAME]"
]
}
ここで
[PROJECT_ID]
は、プロジェクト名です。[ZONE]
は、ディスクのロケーションです。[DISK_NAME]
は、ディスクの名前です。[REGION]
は、スナップショット スケジュールのロケーションです。[SCHEDULE_NAME]
は、このディスクに適用しているリージョン内のスナップショット スケジュールの名前です。
スナップショット スケジュールを削除する
スナップショット スケジュールを削除すると、そのスナップショット スケジュールに関連付けられている、自動生成されたすべてのスナップショットが永久に保持されます。ただし、スケジュールが削除された後は、スナップショットを生成できなくなります。
保持ポリシーはスナップショット スケジュールの一部となっています。スケジュールが削除されると、保持ポリシーが適用されなくなります。すでに生成されたスナップショットは、手動で削除するまで永久に保持されます。
既存のスナップショット スケジュールを削除するには、Google Cloud Console、Google Cloud CLI、または Compute Engine API メソッドを使用します。スケジュールがすでにディスクに関連付けられている場合は、まず、ディスクからスケジュールとの関連付けを解除してから、スケジュールを削除します。ディスクに関連付けられているスナップショット スケジュールを削除することはできません。
Console
- Google Cloud Console で、[スナップショット] ページに移動します。
- [スナップショット スケジュール] を選択してスケジュールのリストを表示します。
- ディスクに関連付けられていないスケジュールを選択します。
ページの上部にある [削除] をクリックします。
gcloud
指定したスナップショット スケジュールを削除するには、gcloud
コマンドの resource-policies delete
を使用します。
gcloud compute resource-policies delete [SCHEDULE_NAME] \
--region [REGION]
ここで
[SCHEDULE_NAME]
は、スナップショット スケジュールの名前です。[REGION]
は、スナップショット スケジュールのロケーションです。
API
スナップショット スケジュールを削除するには、resourcepolicies.delete
にリクエストを送信します。スナップショット スケジュールがすでに特定のディスクに関連付けられている場合は、エラーが返されます。
DELETE https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/resourcePolicies/[SCHEDULE_NAME]
ここで
[PROJECT_ID]
は、プロジェクト名です。[REGION]
は、スナップショット スケジュールのロケーションです。[SCHEDULE_NAME]
は、スナップショット スケジュールの名前です。
ロギングとモニタリング
ディスクに関連付けられたすべてのスケジュール済みスナップショットは、常にモニタリングおよび記録されるシステムイベントを作成し続けます。システム イベント監査ログは常に有効になります。
これらのログは、関連付けされた各ディスクのスケジュール済みスナップショットに関する動作情報を提供します。ログは、Console の [Cloud Logging] メニューから表示できます。
Cloud Console で、[ログ エクスプローラ] ページに移動します。
[監査対象リソース] プルダウン リストで [ディスク] をポイントし、[All disk_id] を選択します。
[すべてのログ] プルダウン リストで [cloudaudit.googleapis.com/system_event] を選択し、[OK] をクリックします。
[すべて] プルダウン リストで、ログタイプを選択します。
スケジュール設定されたスナップショットのアラートの設定
カスタム指標を作成して、アラートを生成したり、スケジュール設定されたスナップショットの問題をトラブルシューティングするための情報を提供したりできます。
たとえば、スケジュール設定されたスナップショットの失敗にアラートを設定するには、次の手順を実行します。
- スケジュール設定されたスナップショット イベントをキャプチャするログフィルタを作成します。
- スケジュール設定されたスナップショットの失敗をカウントするログフィルタに基づいて指標を作成します。
- スケジュール設定されたスナップショットが失敗した場合にアラートを送信するアラートポリシーを作成します。
ログフィルタを作成する
Cloud Console で、[Cloud Logging] > [ログ エクスプローラ] ページに移動します。
[ラベルまたはテキスト検索でフィルタ] リストで、[高度なフィルタに変換] を選択します。
フィルタのテキスト ボックスを次のテキストに置き換えます。
project-id
はプロジェクト ID に置き換えます。resource.type="gce_disk" logName="projects/project-id/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="ScheduledSnapshots" severity>"INFO"
[フィルタを送信] をクリックします。
指標を作成する
ページ上部にある [ログ エクスプローラ] で、[指標を作成] をクリックします。
[指標エディタ] に次を入力します。
- 名前:
scheduled_snapshot_failure_count
。 - 説明:
count of scheduled snapshot failures
。 - タイプ:
Counter
- 名前:
[ラベル] の下にある [項目を追加] をクリックし、次を入力します。
- 名前:
status
- 説明:
status of scheduled snapshot request
- ラベルのデータ型:
String
- フィールド名:
protoPayload.response.status
- 名前:
[完了] をクリックします。
[指標を作成] をクリックします。
アラート ポリシーを作成する
Cloud Console で、[Cloud Logging] > [ログベースの指標] ページに移動します。
[ユーザー定義の指標] で、
user/scheduled_snapshot_failure_count
という名前の新しい指標を見つけます。その行の
[詳細] メニューボタンをクリックし、[指標からアラートを作成] を選択します。アラート ポリシーの条件を作成するためのページが開きます。[ターゲット] パネルの [Aggregator] で、[なし] を選択します。
[フィルタ] で、次を行います。
- [+ フィルタを追加] をクリックします。
- リストからステータスを選択します。
- [値] フィールドに「DONE」と入力します。
[適用] をクリックします。
[詳細設定を表示] をクリックします。
[Advanced Aggregation] ペインで、[整列指定子] リストをクリックし、[合計] を選択します。
[設定] パネルで、次の値を選択します。
- 次の場合、条件トリガー:
Any time series violates
- 条件:
is above
- しきい値:
1
適用先:
most recent value
- 次の場合、条件トリガー:
[保存] をクリックします。
[新しいアラート ポリシーの作成] ページにポリシー名を入力します。必要に応じて、このポリシーの通知チャネルとドキュメントを追加できます。
[保存] をクリックします。
次のステップ
- スナップショットの操作について学習する。
- スナップショットからディスク イメージを作成する方法を学習する。
- ログを表示する方法を学習する。