永続ディスクのスナップショット スケジュールの作成

このドキュメントでは、ゾーンリージョンの永続ディスクを定期的かつ自動的にバックアップするためにスナップショット スケジュールを作成する方法を説明します。Compute Engine ワークロードのバックアップには、スナップショット スケジュールを使用することをおすすめします。スナップショット スケジュールを作成した後、そのスケジュールを 1 つ以上の永続ディスクに適用できます。

スナップショット スケジュールには、次のプロパティがあります。

  • スケジュール名
  • スケジュールの説明
  • スナップショット頻度(時間、日、週単位)
  • スナップショット保持ポリシー(スナップショットを保持する日数を決定するポリシー)
  • スナップショット開始時刻
  • スナップショット スケジュールが利用可能なリージョン
  • ソースディスク削除ポリシー(ソースディスクが削除された場合、自動生成されたスナップショットを処理するためのポリシー)

スナップショット スケジュールには、保持ポリシーを追加できます。保持ポリシーは、スナップショット スケジュールによって生成されたスナップショットの保持期間を定義するものです。

始める前に

制限事項

  • 永続ディスクに 1 度に関連付けられるスナップショット スケジュールは 1 つだけです。
  • リージョンごとの使用中のスナップショット スケジュールを最大で 1,000 個作成できます。
  • リージョンで追加のリソースが必要になった場合、コンソールからリソース割り当ての増量をリクエストする必要があります。
  • ディスクに関連付けられているスナップショット スケジュールを削除することはできません。このようなスケジュールを削除するためには、削除する前にすべてのディスクからそのスケジュールとの関連付けを解除する必要があります。
  • スナップショット スケジュールを作成した後、それを編集することはできません。スナップショット スケジュールを更新するには、一度削除して新しいスケジュールを作成する必要があります。
  • 現在のところ、顧客指定の暗号鍵(CSEK)機能を使用している永続ディスクのスナップショット スケジュールを作成することはできません。

スナップショット スケジュール頻度

スナップショット スケジュールを作成する前に、開始時刻とスナップショット頻度を決めてください。開始時刻は、スナップショット スケジュールを開始する時刻です。頻度は、時間、日、週単位で設定できます。

スナップショット スケジュールは、指定した開始時刻から 1 時間以内に開始されます。たとえば、開始時刻を 12 時にした場合、スナップショットは 12 時から 12 時 59 分の間に開始されます。スケジュールでは UTC 時間基準が使用されます。

  • 時間単位のスケジュールの設定: 時間単位のスケジュールを設定するには、開始時刻を選択し、1~23 の整数でスナプショット間隔を指定します。スナップショット間隔により、スナップショットが生成される頻度が定義されます。間隔を設定する際の 1 つの方法は、24 を割り切れる数値を選択することです。たとえば、開始時刻を 9 時に設定し、間隔を 6 に設定すると、スナップショット スケジュールは 9 時に実行され、その後は 6 時間ごとにスナップショットが生成されます。

  • 日単位スケジュールの設定: スナップショットを 1 日 1 回生成するには、頻度を日単位に設定します。たとえば、スナップショットが毎日 9 時に生成されるようにスナップショット スケジュール設定できます。

  • 週単位スケジュールの設定: スナップショットを週の複数の曜日に生成するには、頻度を週単位に設定します。たとえば、開始時刻を 9 時に設定し、週単位スケジュールを月曜日、木曜日、日曜日に設定すると、スナップショット スケジュールは毎週月曜日、木曜日、日曜日の 9 時に実行されます。曜日ごとに週単位スケジュールを設定することもできます。たとえば、毎週月曜日の 14 時と木曜日の 10 時に週単位のスケジュールを設定できます。

スナップショット保持ポリシー

スナップショット保持ポリシーは、スナップショットを保持する期間を定義します。

スナップショット保持ポリシーを設定する場合は、スナップショット スケジュールの一部として定義する必要があります。たとえば、gcloud ツールまたは Cloud Console を使用する場合は、スナップショット スケジュールを作成する際に、必ず保持ポリシーを設定する必要があります。API に直接リクエストを送信する場合は、このフィールドを省略できます。その場合、スナップショットは無期限に保持されます。

API にリクエストを送信し、すべての自動生成スナップショットを手動で削除するまで、永久に保持するデフォルトのオプションを選択した場合、それらのスナップショットを手動で削除するまでストレージ費用がかかります。

長期間にわたるスナップショットのストレージ費用を最小限に抑える保持ポリシーの設定を検討することをおすすめします。

  • スナップショット保持ポリシーは、日数で指定する必要があります。最小保持日数は 1 日です。
  • スナップショット保持ポリシーは自動スナップショットにのみ適用されます。手動で作成されたスナップショットには適用されません。
  • 過去にさかのぼって保持ポリシーを適用することはできません。保持ポリシーを設定しないでスナップショット スケジュールを作成した後、保持ポリシーを設定したスナップショット スケジュールに切り替えた場合も、保持ポリシーは新しいスナップショットにのみ適用されます。
  • 保持ポリシーに関係なく、自動生成されたスナップショットと手動のスナップショットは、常に手動で削除できます。

ソースディスクの削除ルール

スナップショット スケジュールを作成する際に、ソースディスクの削除ルールも設定できます。ソースディスクの削除ルールは、ソースディスクが削除された場合のスナップショットの処理方法を制御します。デフォルトでは、ソースディスクが削除されると、スナップショット スケジュールによって自動生成されたスナップショットは、当初設定した保持ポリシーに関係なく、手動で削除するまで永久に保持されます。

代わりの方法として、ソースディスクが削除された場合、保持ポリシーをスナップショットに適用するルールを設定することもできます。たとえばソースディスクが削除された後、スナップショットを 1 週間保持するポリシーを適用できます。

たとえば、保持ポリシーを 3 日に設定したスナップショット スケジュールを作成したものの、この保持ポリシーをソースディスクの削除時に適用しないことにしたとします。このポリシーを永続ディスクに適用すると、Compute Engine はスナップショットを自動生成しても、保持ポリシーによって 3 日後にスナップショットを自動的に削除します。ただし、ソースディスクが削除された場合は、保持ポリシーは適用されなくなっているため、このスケジュールによって生成された既存のスナップショットはすべて無期限に保持されます。

Windows インスタンスのスナップショットをスケジュールする

Windows VM インスタンスに接続されているディスクにスナップショット スケジュールを適用する場合、guest-flush オプションを使用して VSS を有効にし、スナップショットのシャドーコピーを生成します。Windows のスナップショットの詳細については、Windows 永続ディスク スナップショットの作成をご覧ください。

スナップショットのロケーション ルールとスナップショット ラベル

手動で生成するスナップショットと同様に、自動生成されるスナップショットにもリソースラベルを適用し、ストレージ ロケーションを選択できます。この 2 つのプロパティをスナップショット スケジュールで設定すると、そのスケジュールによって自動生成されたスナップショットには、これらのプロパティが適用されます。たとえば、スナップショットのロケーションを US として設定すると、そのスケジュールによって生成されたすべてのスナップショットは米国内に保存されます。オプションの設定方法について詳しくは、以下に記載する例をご覧ください。

スナップショット スケジュールを作成する

Google Cloud Console、gcloud コマンドライン ツール、または Compute Engine API メソッドを使用して、永続ディスクのスナップショット スケジュールを作成します。スナップショット スケジュールは、永続ディスクが存在する同じリージョン内で作成する必要があります。たとえば、永続ディスクがゾーン us-west1-a にある場合、スナップショット スケジュールは us-west1 リージョン内にある必要があります。詳細については、スナップショットの保存場所の選択をご覧ください。

Console

スナップショット スケジュールを作成するには:

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

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

  2. ページ上部にある [スナップショット スケジュールを作成] をクリックします。
  3. [名前] に、スケジュール名を入力します。
  4. [リージョン] で、スナップショット スケジュールのリージョンを選択します。スナップショット スケジュールが存在するリージョン内のゾーンに、対象の永続ディスクが存在する必要があります。
  5. 必要に応じて、スナップショットのロケーションを選択するか、デフォルトの選択をそのまま使用します。
  6. [スケジュール頻度] で、頻度を選択します。
  7. [スナップショットの自動削除までの期間] に、スナップショットを自動的に削除するまで保持する日数を入力します。
  8. [削除ルール] で、スケジュールのソースディスクが削除された場合のスナップショットの処理方法を決定するルールを選択します。
  9. このスケジュールによって生成されたスナップショットを保持する日数を選択します。
  10. Windows を使用している場合は、[VSS を有効化] をオンにできます。
  11. 必要に応じて、スナップショットに適用する関連するラベルを指定します。
  12. [作成] をクリックしてスナップショット スケジュールを作成します。

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 に設定すると、エラーが発生します。
  • [SNAPSHOT_INTERVAL] は、スナップショットを生成する間隔を定義します。時間単位のスケジュールを設定するには、1~23 の整数を使用します。24 を割り切れる数値を時間として選択してください。たとえば、--hourly-schedule を 12 に設定すると、スナップショットは 12 時間ごとに生成されます。週単位スケジュールの場合は、スナップショットを生成する曜日を定義します。曜日を指定する必要があります。大文字と小文字は区別されません。スナップショット頻度のフラグ hourly-scheduledaily-scheduleweekly-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=devmedia=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

スナップショット スケジュールを既存のディスクに関連付けます。

  1. Google Cloud Console で、[ディスク] ページに移動します。

    [ディスク] ページに移動

  2. スケジュールを追加するディスクを選択します。
  3. ページ上部にある [編集] をクリックします。
  4. [スナップショット スケジュール] プルダウン メニューを使用して、スケジュールをディスクに追加します。または、新しいスケジュールを作成します。
  5. 新しいスケジュールを作成した場合は、[作成] をクリックします。
  6. [保存] をクリックしてタスクを完了します。

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

  1. Google Cloud Console で、[ディスク] ページに移動します。

    [ディスク] ページに移動

  2. ページ上部にある [ディスクの作成] をクリックします。
  3. ゾーンディスクまたはリージョン ディスクを作成するための必須フィールドに値を入力します。
  4. スナップショット スケジュールと同じリージョン内にディスクを作成します。
  5. [スナップショット スケジュール] のフィールドに値を入力します。
  6. プルダウン メニューを使用して、スケジュールを作成するためのフィールドに値を入力します。
  7. [作成] をクリックしてスケジュールを作成します。
  8. [作成] をクリックしてディスクを作成します。

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

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

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

  2. ページ上部にある [スナップショット スケジュール] をクリックします。
  3. 特定のスナップショット スケジュールを確認するには、[スナップショット スケジュールのフィルタ] 検索ボックスを使用します。
  4. スナップショット スケジュールをクリックして、その詳細を表示します。

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.aggregatedListGET リクエストを送信します。

GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/aggregated/resourcePolicies
    

[PROJECT_ID] は、プロジェクト名です。

リージョン別にスナップショット スケジュールを表示する

特定のリージョン内のスナップショット スケジュールを表示するには、Console、gcloud コマンド、Compute Engine API メソッドのいずれかを使用できます。

Console

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

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

  2. ページ上部にある [スナップショット スケジュール] をクリックします。
  3. 特定のリージョンのスナップショット スケジュールを確認するには、[スナップショット スケジュールのフィルタ] 検索ボックスを使用します。

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] は、表示するスナップショット スケジュールの名前です。

スナップショット スケジュールを変更する

スナップショット スケジュールを編集することはできません。すでにディスクに関連付けられているスケジュールを変更するには、まず、ディスクからそのスケジュールとの関連付けを解除し、スケジュールを削除する必要があります。その後、新しいスケジュールを作成してディスクに関連付けることができます。スナップショット スケジュールを変更するには、コンソール、gcloud コマンド、Compute Engine API メソッドのいずれかを使用します。

関連付けが解除されたスナップショット スケジュールから生成されたスナップショットは、新しいポリシーによって管理されません。これらのスナップショットは、削除するまで無期限に保持されます。

Console

  1. Google Cloud Console で、[ディスク] ページに移動します。

    [ディスク] ページに移動

  2. スケジュールとの関連付けを解除するディスクを選択します。
  3. ページ上部の [編集] をクリックします。
  4. [スナップショット スケジュール] プルダウン メニューを開きます。
  5. [スケジュールなし] をクリックして、ディスクからスケジュールとの関連付けを解除します。
  6. 新しいスケジュールを作成します。あるいは、ディスク オプションを編集する際にスケジュールを入れ替えることもできます。
  7. [保存] をクリックしてタスクを完了します。

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、gcloud コマンドライン ツール、または Compute Engine API メソッドを使用します。スケジュールがすでにディスクに関連付けられている場合は、まず、ディスクからスケジュールとの関連付けを解除してから、スケジュールを削除します。ディスクに関連付けられているスナップショット スケジュールを削除することはできません。

Console

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

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

  2. [スナップショット スケジュール] を選択してスケジュールのリストを表示します。
  3. ディスクに関連付けられていないスケジュールを選択します。
  4. ページの上部にある [削除] をクリックします。

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 内の [Stackdriver Logging] メニューからログを表示できます。

  1. Cloud Console で、[Stackdriver Logging] > [ログ] ページに移動します。
    [ログビューア] ページに移動
  2. 左側のナビゲーションで [ログビューア] をクリックします。
  3. 最初のプルダウン メニューで [ディスク] を選択します。
  4. [すべてのログ] プルダウン メニューで [cloudaudit.googleapis.com/system_event] を選択し、[OK] をクリックします。
  5. [すべて] プルダウン リストでログタイプを選択します。

ログビューア UI。

スケジュール設定されたスナップショットのアラートの設定

カスタム指標を作成してアラートを生成したり、スケジュール設定されたスナップショットの問題をトラブルシューティングするための情報を提供したりできます。

たとえば、スケジュール設定されたスナップショットの失敗にアラートを設定するには、次の手順を実行します。

  1. スケジュール設定されたスナップショット イベントをキャプチャするログフィルタを作成します。
  2. スケジュール設定されたスナップショットの失敗をカウントするログフィルタに基づいて指標を作成します。
  3. スケジュール設定されたスナップショットが失敗した場合にアラートを送信するアラートポリシーを作成します。

ログフィルタを作成する

  1. Cloud Console で、[Stackdriver Logging] > [ログビューア] ページに移動します。
    ログビューア ページに移動

  2. [ラベルまたはテキスト検索でフィルタ] リストで、[高度なフィルタに変換] を選択します。

    高度なフィルタに変換します。

  3. フィルタのテキスト ボックスを次のテキストに置き換えます。project-id はプロジェクト ID に置き換えます。

    resource.type="gce_disk"
        logName="projects/project-id/logs/cloudaudit.googleapis.com%2Fsystem_event"
        protoPayload.methodName="ScheduledSnapshots"
        severity>"INFO"
        
  4. [フィルタを送信] をクリックします。

指標を作成する

  1. ページ上部にある [ログビューア] で、[指標を作成] をクリックします。

  2. [指標エディタ] に次を入力します。

    • 名前: scheduled_snapshot_failure_count
    • 説明: count of scheduled snapshot failures
    • タイプ: Counter
  3. [ラベル] の下にある [項目を追加] をクリックし、次を入力します。

    • 名前: status
    • 説明: status of scheduled snapshot request
    • ラベルのデータ型: String
    • フィールド名: protoPayload.response.status
  4. [完了] をクリックします。

  5. [指標を作成] をクリックします。

アラート ポリシーの作成

  1. Cloud Console で、[Stackdriver Logging] > [ログベースの指標] ページに移動します。
    [ログベースの指標] ページに移動
  2. [ユーザー定義の指標] で、user/scheduled_snapshot_failure_count という名前の新しい指標を見つけます。

  3. その行の [詳細] メニューボタンをクリックし、[指標からアラートを作成] を選択します。アラート ポリシーの条件を作成するためのページが開きます。

    ユーザー定義の指標。

  4. [ターゲット] パネルの [Aggregator] で、[なし] を選択します。

  5. [フィルタ] で、次を行います。

    1. [+ フィルタを追加] をクリックします。
    2. リストからステータスを選択します。
    3. [] フィールドに「DONE」と入力します。
    4. [適用] をクリックします。

      アラート フィルタのステータス。

  6. [詳細設定を表示] をクリックします。

  7. [Advanced Aggregation] ペインで、[整列指定子] リストをクリックし、[合計] を選択します。

  8. [設定] パネルで、次の値を選択します。

    • 次の場合、条件トリガー: Any time series violates
    • 条件: is above
    • しきい値: 1
    • 適用先: most recent value

      構成パネル。

  9. [保存] をクリックします。

  10. [新しいアラート ポリシーの作成] ページにポリシー名を入力します。必要に応じて、このポリシーの通知チャネルとドキュメントを追加できます。

  11. [保存] をクリックします。

次のステップ