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


このドキュメントでは、ゾーンおよびリージョン Persistent Disk を定期的かつ自動的にバックアップするためにスナップショット スケジュールを作成する方法を説明します。Compute Engine ワークロードのバックアップには、スナップショット スケジュールを使用することをおすすめします。バックアップ時のアプリケーション データの状態をキャプチャするスナップショット スケジュールを作成する場合は、アプリケーション整合性、ゲストフラッシュ、または VSS スナップショットとも呼ばれます。詳しくは Linux アプリケーションの整合性のある永続ディスク スナップショットを作成するまたは Windows 永続ディスクのスナップショットを作成するをご覧ください。

スナップショット スケジュールを作成するときに、1 つ以上の永続ディスクに適用可能なリソース ポリシーを作成します。スナップショット スケジュールは次の方法で作成できます。

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

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

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud CLI をインストールします。
  3. gcloud CLI を初期化するには:

    gcloud init
  4. Google Cloud プロジェクトを作成または選択します。

    • Google Cloud プロジェクトを作成する

      gcloud projects create PROJECT_ID
    • 作成した Google Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID
  5. Google Cloud CLI をインストールします。
  6. gcloud CLI を初期化するには:

    gcloud init
  7. Google Cloud プロジェクトを作成または選択します。

    • Google Cloud プロジェクトを作成する

      gcloud projects create PROJECT_ID
    • 作成した Google Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID

制限事項

  • 永続ディスクに一度に関連付けられるスナップショット スケジュールは 10 個までです。
  • スナップショット スケジュールを使用してアーカイブ スナップショットを作成することはできません。
  • リージョンごとの使用中のスナップショット スケジュールを最大で 1,000 個作成できます。
  • スナップショット スケジュールは、それが作成されたプロジェクトにのみ適用されます。他のプロジェクトや組織では使用できません。
  • リージョンで追加のリソースが必要になった場合、コンソールからリソース割り当ての増量を申請する必要があります。
  • ディスクに関連付けられているスナップショット スケジュールを削除することはできません。このようなスケジュールを削除するためには、削除する前にすべてのディスクからそのスケジュールとの関連付けを解除する必要があります。
  • スナップショット スケジュールの作成後に、説明、スケジュール、保持ポリシー、ラベルを変更できます。スナップショット スケジュールの他の値を更新するには、スナップショット スケジュールを削除して新しいスケジュールを作成する必要があります。
  • 顧客指定の暗号鍵(CSEK)を使用する永続ディスクの場合、スナップショット スケジュールを作成することはできません。
  • 顧客管理の暗号鍵(CMEK)を使用する永続ディスクの場合、スナップショット スケジュールで作成されたすべてのスナップショットは同じ鍵で自動的に暗号化されます。

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

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

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

スナップショット スケジュールは、夏時間(DST)によるシフトの影響を受けます。米国では、DST の開始時と終了時に、現地のタイムゾーンで DST が使用されているかどうかに関係なく、スナップショット スケジュール ジョブの開始時間がそれぞれ 1 時間前または後に移動します。

  • 時間単位のスケジュールの設定: 時間単位のスケジュールを設定するには、開始時刻を選択し、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 または Google Cloud コンソールを使用する場合は、スナップショット スケジュールを作成する際に、必ず保持ポリシーを設定する必要があります。API に直接リクエストを送信する場合は、このフィールドを省略できます。その場合、スナップショットは無期限に保持されます。

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

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

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

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

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

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

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

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

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

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

手動で作成するスナップショットと同様に、スナップショット スケジュールでリソースラベルを指定し、ストレージ ロケーションを選択することにより、このスケジュールで自動生成されるスナップショットが、これらのプロパティで作成されるようにできます。

たとえば、スナップショットのロケーションを US として設定すると、そのスケジュールによって生成されるすべてのスナップショットは米国に保存されます。これらのオプションの設定の詳細については、このドキュメントの例をご覧ください。

スケジュールされたスナップショットの名前

スナップショット スケジュールの一環としてキャプチャされるスナップショットには、自動生成された名前が付けられます。スナップショットの名前は、次のパターンに従って生成されます。

[disk-name-prefix]-[scope-name]-[timestamp]-[random-chars]
  • disk-name-prefix: ソースディスクの名前。このフィールドの値は最大 20 文字です。
  • scope-name: ソースディスクのゾーンまたはリージョンの名前。
  • timestamp: 作成された時刻を示す、YYYYMMDDHHMMSS 形式の UTC タイムスタンプ。
  • random-chars: 他のスナップショットとの名前の競合を回避するためにランダムに生成される英数字。

スナップショット スケジュールの作成

Google Cloud コンソール、Google Cloud CLI、または Compute Engine API を使用して、永続ディスクのスナップショット スケジュールを作成します。スナップショット スケジュールは、永続ディスクが存在する同じリージョン内で作成する必要があります。たとえば、永続ディスクがゾーン us-west1-a に存在する場合、スナップショット スケジュールは us-west1 リージョン内に存在する必要があります。ただし、スナップショット スケジュールによって生成されたスナップショットは別のロケーションに保存することもできます。

コンソール

  1. Google Cloud コンソールで [VM インスタンス] ページに移動します。

    [VM インスタンス] に移動
    残りの手順は、Google Cloud コンソールに自動的に表示されます。

  2. VM インスタンスが含まれているプロジェクトを選択します。
  3. [名前] 列で、永続ディスクを含む VM の名前をクリックして、スナップショット スケジュールを作成します。
  4. [ストレージ] で、ブートディスクの名前をクリックするか、スナップショット スケジュールを作成する追加ディスクの名前をクリックします。
  5. [編集] をクリックします。必要に応じて、 [その他の操作] メニューをクリックし、 [編集] をクリックします。
  6. [スナップショット スケジュール] で [スケジュールを作成] を選択します。
  7. [名前] で、スナップショット スケジュールに次のいずれかの名前を入力します。
    • boot-disk-snapshot-schedule
    • attached-persistent-disk-snapshot-schedule
  8. [ロケーション] セクションで、スナップショットのストレージ ロケーションを選択します。スナップショット設定で定義されている事前定義またはカスタマイズされたデフォルトのロケーションが自動的に選択されます。必要に応じて、スナップショット設定をオーバーライドして、次の方法でカスタム ストレージ ロケーションにスナップショットを保存できます。

    1. スナップショットを保存するストレージ ロケーションの種類を選択します。

    2. [ロケーションを選択] フィールドで、使用する特定のリージョンまたはマルチリージョンを選択します。ソースディスクに最も近いリージョンまたはマルチリージョンを使用するには、[ディスクの場所に基づく] を選択します。

  9. スナップショット スケジュールの作成を終了するには、[作成] をクリックします。
  10. このスナップショット スケジュールを永続ディスクに適用するには、[保存] をクリックします。

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-schedule12 に設定すると、スナップショットは 12 時間ごとに生成されます。週単位スケジュールの場合は、スナップショットを生成する曜日を定義します。曜日を指定する必要があります。大文字と小文字は区別されません。スナップショット頻度のフラグ hourly-scheduledaily-scheduleweekly-schedule は相互に排他的です。スナップショット スケジュールに応じて、いずれかのフラグを選択する必要があります。

  • FILE_NAME: 週単位スナップショット スケジュールが含まれるファイルの名前です(この形式でスケジュールを指定することを選択した場合)。ファイルを使用して、曜日ごとに異なる開始時刻を設定した週単位スケジュールを指定できます(コマンドラインで直接、複数の週単位スケジュールを指定することはできません)。たとえば、ファイルには、月曜日と水曜日のスナップショット スケジュールを [{"day": "MONDAY", "startTime": "04:00"}, {"day": "WEDNESDAY", "startTime": "02:00"}] のように指定できます。開始時刻をファイルに含める場合、--start-time フラグを設定する必要はありません。スケジュールでは UTC タイムゾーンが使用されます。

  • DELETION_OPTION: ソースディスクが削除された場合のスナップショットの処理方法を決定します。生成されたすべてのスナップショットを保持する場合は、このフラグを省略できます。保持ポリシーの設定を使用する場合は、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

REST

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 CLI、または Compute Engine API を使用します。

コンソール

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

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

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

  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: ディスクのロケーション

REST

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: このディスクに適用するリージョン内のスナップショット スケジュールの名前

ディスクとスナップショット スケジュールを同時に作成する

Google Cloud コンソールまたは gcloud CLI のみを使用して、ディスクとスナップショット スケジュールを同時に作成できます。

コンソール

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

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

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

gcloud

ゾーンまたはリージョン Persistent Disk を作成し、スナップショット スケジュールをアタッチするには、gcloud disks create コマンドを使用します。

gcloud compute disks create DISK_NAME \
     --resource-policies SCHEDULE_NAME \
     --zone ZONE

次のように置き換えます。

  • DISK_NAME: 新しいディスクの名前
  • SCHEDULE_NAME: スナップショット スケジュールの名前
  • ZONE: ディスクを作成するロケーション。このディスクは、スナップショット スケジュールのリージョン内のゾーンに作成する必要があります。

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

スナップショット スケジュールのリストを取得するには、Google Cloud コンソール、Google Cloud CLI、または Compute Engine API を使用します。このリクエストにより、プロジェクト内のすべてのスナップショット スケジュールの名前、説明、リージョンが表示されます。

コンソール

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

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

  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 は、スナップショット スケジュールの名前に置き換えます。

REST

プロジェクト内のスナップショット スケジュールのリストを取得するには、resourcepolicies.aggregatedListGET リクエストを送信します。

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

PROJECT_ID は、プロジェクト名に置き換えます。

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

特定のリージョン内のスナップショット スケジュールを表示するには、Google Cloud コンソール、Google Cloud CLI、Compute Engine API のいずれかを使用します。

コンソール

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

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

  2. [スナップショット スケジュール] をクリックします。
  3. プロパティを表示するには、 [フィルタ] を使用します。
  4. [リージョン:] を選択します。
  5. そのリージョンで利用可能なスケジュールを選択します。

gcloud

特定のリージョン内のスナップショット スケジュールを表示するには、gcloud resource-policies list コマンドを使用します。

 gcloud compute resource-policies list PROJECT_ID \
     --filter REGION

次のように置き換えます。

  • PROJECT_ID: プロジェクト名
  • REGION: リソース ポリシーのロケーション

REST

リージョン内で設定されているスナップショット スケジュールを取得するには、resourcePolicies.get にリクエストを送信します。

 GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME

次のように置き換えます。

  • PROJECT_ID: プロジェクト名
  • REGION: スナップショット スケジュールのロケーション
  • SCHEDULE_NAME: 表示するスナップショット スケジュールの名前

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

スナップショット スケジュールを作成したら、スナップショット スケジュールの更新の手順に沿って、次のフィールドを動的に変更できます。

  • 説明
  • スナップショット スケジュール
  • 生成されたスナップショットに適用されるラベル
  • ソースディスク削除ポリシー(ソースディスクが削除された場合、自動生成されたスナップショットを処理するためのポリシー)
  • 保持ポリシーを使用すると、スナップショット スケジュールによって生成されたスナップショットの保持期間を定義できます。

スナップショット スケジュールの他の値を更新するには、スナップショット スケジュールを置き換えるで説明されているように、スナップショット スケジュールを削除して新しいスケジュールを作成する必要があります。

スナップショット スケジュールの更新は、更新後の最初のスナップショットで有効になります。スナップショット スケジュールの更新中にスナップショットが実行されている場合、変更は次のスナップショットで有効になります。

スナップショット スケジュールの更新

スナップショット スケジュールを変更するで説明されているように、Google Cloud CLI または Compute Engine API を使用して、スナップショット スケジュールのプロパティの一部を変更できます。

スナップショット スケジュールの他のプロパティを変更するには、スナップショット スケジュールを置き換えるで説明されている方法を使用します。

gcloud

gcloud compute resource-policies update snapshot-schedule コマンドを使用して、スナップショット スケジュールの説明、スケジュール、保持ポリシー、ラベルを更新します。

gcloud compute resource-policies update snapshot-schedule SCHEDULE_NAME \
   --region=REGION \
   --description="DESCRIPTION" \
   --snapshot-labels="KEY=VALUE" \
   --max-retention-days=DAYS \
   --on-source-disk-delete=DELETE_OPTION \
   --start-time=START_TIME \
   SCHEDULE_FLAG

次のように置き換えます。

  • SCHEDULE_NAME: スナップショット スケジュールの名前。
  • REGION: スナップショット スケジュールが存在するリージョン。
  • DESCRIPTION: スナップショット スケジュールの説明。引用符で説明を囲みます。
  • KEYVALUE: 関連リソースまたは関連付けられたリソースのグループ化に使用できる Key-Value ペア。
  • DAYS: スナップショットが削除されるまで保持される最大日数。
  • DELETE_OPTION: 元のディスクが削除された後の自動スナップショットの保持動作。値は次のいずれかにする必要があります。
    • apply-retention-policy: ソースディスクが削除された場合、スナップショット スケジュールによって作成されたスナップショットの保持期間を引き続き適用します。
    • keep-auto-snapshots: (デフォルト)ソースディスクが削除された場合、保持期間に関係なく、スナップショット スケジュールによって作成されたスナップショットを保持します。
  • START_TIME: UTC の開始時刻。開始時刻は正時でなければなりません。次に例を示します。
    • 午後 2 時(PST)は 22:00 です。
    • 開始時刻を 22:13 に設定すると、エラーが発生します。
  • SCHEDULE_FLAG: 次のいずれかのフラグです。

    • --hourly-schedule=HOURLY_INTERVAL: 各スナップショット間の時間。HOURLY_INTERVALには 123 の整数を指定してください。たとえば、--hourly-schedule を 12 に設定すると、スナップショットは 12 時間ごとに生成されます。
    • --daily-schedule: START_TIME にスナップショットを毎日実行します。
    • --weekly-schedule=WEEKLY_INTERVAL: スナップショットを作成する曜日を定義します。曜日を指定する必要があります。値では大文字と小文字は区別されません。

    • --weekly-schedule-from-file=FILE_NAME: 週次スナップショット スケジュールを含むファイルを指定します。ファイルを使用して、曜日ごとに異なる開始時刻を設定した週単位スケジュールを指定できます。たとえば、ファイルには、月曜日と水曜日のスナップショット スケジュールを [{"day": "MONDAY", "startTime": "04:00"}, {"day": "WEDNESDAY", "startTime": "02:00"}] のように指定できます。開始時刻をファイルに含める場合、--start-time フラグを設定する必要はありません。スケジュールでは UTC タイムゾーンが使用されます。開始時刻は正時でなければなりません。次に例を示します。

      • 午後 2 時(PST)は 22:00 です。
      • 開始時刻を 22:13 に設定すると、エラーが発生します。

    スナップショット頻度のフラグ hourly-scheduledaily-scheduleweekly-scheduleweekly-schedule-from-file は相互に排他的です。スナップショット スケジュールに使用できるのは 1 つだけです。

例:

スナップショット スケジュールを日単位のスケジュールに変更するには、次のコマンドを使用します。

gcloud compute resource-policies update snapshot-schedule SCHEDULE_NAME \
    --region=REGION --daily-schedule --start-time=START_TIME

スナップショットを時間単位のスケジュールに変更し、説明とスナップショット ラベルも更新するには、次のコマンドを使用します。

gcloud compute resource-policies update snapshot-schedule SCHEDULE_NAME \
    --region=REGION --description="DESCRIPTION" \
    --hourly-schedule=HOURLY_INTERVAL --start-time=START_TIME \
    --snapshot-labels="KEY=VALUE"

スナップショット スケジュールのスナップショット保持ポリシーを変更するには、次のコマンドを使用します。

gcloud compute resource-policies update snapshot-schedule SCHEDULE_NAME \
    --region=REGION --max-retention-days=DAYS \
    --on-source-disk-delete=DELETE_OPTION

REST

resourcePolicies メソッドに対する PATCH リクエストを作成して、スナップショット スケジュールの説明、スケジュール、保持ポリシー、またはラベルを更新します。リクエスト本文で指定する必要があるのは、name と更新するフィールドのみです。

  • 説明とラベルを変更します。

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME
    {
        "name": "SCHEDULE_NAME",
        "description": "DESCRIPTION",
        "snapshotProperties": {
              "labels": {"KEY": "VALUE"}
        }
    }
    
  • スナップショット スケジュールを時間単位に変更します。

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME
    {
        "name": "SCHEDULE_NAME",
        "snapshotSchedulePolicy": {
            "schedule": {
              "hourlySchedule": {
                  "hoursInCycle": HOURLY_INTERVAL,
                  "startTime": START_TIME
               }
            }
        }
    }
    
  • スナップショット スケジュールを日単位に変更します。

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME
    {
        "name": "SCHEDULE_NAME",
        "snapshotSchedulePolicy": {
            "schedule": {
              "dailySchedule": {
                  "daysInCycle": DAILY_INTERVAL,
                  "startTime": START_TIME
               }
            }
        }
    }
    
  • スナップショット スケジュールを週単位に変更します。

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME
    {
        "name": "SCHEDULE_NAME",
        "snapshotSchedulePolicy": {
            "schedule": {
               "weeklySchedule": {
                  "dayOfWeeks": [
                   {
                      "day": WEEKLY_INTERVAL,
                      "startTime": START_TIME
                   }
                  ]
               }
            }
        }
    }
    
  • スナップショット保持ポリシーを変更します。

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME
    {
        "name": "SCHEDULE_NAME",
        "snapshotSchedulePolicy": {
            "retentionPolicy": {
                "maxRetentionDays": DAYS,
                "onSourceDiskDelete":"DELETE_OPTION"
            }
       }
    }
    

次のように置き換えます。

  • PROJECT_ID: プロジェクト名。
  • REGION: スナップショット スケジュールが配置されているリージョン。
  • SCHEDULE_NAME: スナップショット スケジュールの名前。
  • DESCRIPTION: スナップショット スケジュールの説明。引用符で説明を囲みます。
  • KEYVALUE: 関連リソースまたは関連付けられたリソースのグループ化に使用できる Key-Value ペア。
  • HOURLY_INTERVAL: スナップショットを生成する間隔を定義します。時間単位のスケジュールを設定するには、123 の整数を使用します。スナップショットを毎日同じ時刻に作成するには、24 の約数(1、2、3、4、6、8、12)を選択します。たとえば、--hourly-schedule を 12 に設定すると、スナップショットは 12 時間ごとに生成されます。
  • DAILY_INTERVAL: 各スナップショット間の日数を定義します。
  • WEEKLY_INTERVAL: 特定の曜日に実行されるスケジュールを定義します。1 日以上の期間を指定します。MONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAYSUNDAY を使用できます。曜日を指定する必要があります。大文字と小文字は区別されません。dayOfWeeks には最大 7 つの間隔を定義できます(1 週間の各曜日に 1 つずつ)。
  • START_TIME は UTC 開始時刻です。開始時刻は正時でなければなりません。次に例を示します。
    • 午後 2 時(PST)は 22:00 です。
    • 開始時刻を 22:13 に設定すると、エラーが発生します。
  • DAYS: スナップショットが削除されるまで保持される最大日数。
  • DELETE_OPTION: 元のディスクが削除された後の自動スナップショットの保持動作。値は次のいずれかにする必要があります。
    • APPLY_RETENTION_POLICY: ソースディスクが削除された場合、スナップショット スケジュールによって作成されたスナップショットの保持期間を引き続き適用します。
    • KEEP_AUTO_SNAPSHOTS: (デフォルト)ソースディスクが削除された場合、保持期間に関係なく、スナップショット スケジュールによって作成されたスナップショットを保持します。

スナップショット スケジュールを置き換える

スナップショット スケジュールを削除して新しいスケジュールを作成する手順は、次のとおりです。この方法は、スナップショット スケジュールを更新する手順で変更できないスナップショット スケジュールのプロパティを変更します。

すでにディスクに関連付けられているスナップショット スケジュールを置き換える場合は、まずディスクからスケジュールの関連付けを解除して削除する必要があります。その後、新しいスケジュールを作成してディスクに関連付けることができます。

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

スナップショット スケジュールの削除と置換を行うには、Google Cloud コンソール、Google Cloud CLI、または Compute Engine API を使用します。

コンソール

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

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

  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 は、ゾーンディスクが存在するゾーンです。

次に、gcloud disks add-resource-policies コマンドを使用して、更新後のスナップショット スケジュールをディスクに追加します。

gcloud compute disks add-resource-policies DISK_NAME \
     --resource-policies SCHEDULE_NAME \
     --zone ZONE

次のように置き換えます。

  • DISK_NAME は、スナップショット スケジュール リソース ポリシーを含むディスクの名前です。
  • SCHEDULE_NAME は、このディスクに追加するスナップショット スケジュールの名前です。
  • ZONE は、ディスクが存在するゾーンです。

REST

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

コンソール

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

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

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

gcloud

指定したスナップショット スケジュールを削除するには、gcloud resource-policies delete コマンドを使用します。

gcloud compute resource-policies delete SCHEDULE_NAME \
    --region REGION

次のように置き換えます。

  • SCHEDULE_NAME: スナップショット スケジュールの名前
  • REGION: スナップショット スケジュールのロケーション

REST

スナップショット スケジュールを削除するには、resourcepolicies.delete にリクエストを送信します。スナップショット スケジュールがすでに特定のディスクに関連付けられている場合は、エラーが返されます。

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME

次のように置き換えます。

  • PROJECT_ID: プロジェクト名
  • REGION: スナップショット スケジュールのロケーション
  • SCHEDULE_NAME: スナップショット スケジュールの名前

ロギングとモニタリング

ディスクに関連付けられたすべてのスケジュール済みスナップショットは、常にモニタリングおよび記録されるシステムイベントを作成し続けます。システム イベント監査ログは常に有効になります。

これらのログは、関連付けされた各ディスクのスケジュール済みスナップショットに関する動作情報を提供します。ログは、コンソールの [Cloud Logging] メニューから表示できます。

  1. Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] ページに移動

  2. [監査対象リソース] プルダウン リストで [ディスク] をポイントし、[All disk_id] を選択します。

  3. [すべてのログ] プルダウン リストで [cloudaudit.googleapis.com/system_event] を選択し、[OK] をクリックします。

  4. [すべて] プルダウン リストで、ログタイプを選択します。

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

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

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

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

ログフィルタを作成する

  1. Google Cloud コンソールで、[Cloud Logging] > [ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] ページに移動

  2. クエリペインに次のテキストを入力します。project-id は実際のプロジェクト ID に置き換えます。

    resource.type="gce_disk"
    logName="projects/project-id/logs/cloudaudit.googleapis.com%2Fsystem_event"
    protoPayload.methodName="ScheduledSnapshots"
    severity>"INFO"
    
  3. [クエリを実行] をクリックします。クエリを実行します。

指標を作成する

  1. [ログ エクスプローラ] の結果ツールバーで、[指標を作成] をクリックします。
  2. [指標エディタ] に次を入力します。

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

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

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

アラート ポリシーの作成

  1. Google Cloud コンソールで、[Cloud Logging] > [ログベースの指標] ページに移動します。

    [ログベースの指標] ページに移動

  2. [ユーザー定義の指標] で、user/scheduled_snapshot_failure_count という名前の新しい指標を見つけます。

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

    ユーザー定義の指標。

  4. [フィルタの追加] で次の操作を行います。

    1. [ADD A FILTER] をクリックします。
    2. フィルタリストから [state] を選択します。
    3. [] フィールドに「DONE」と入力します。
    4. [完了] をクリックします。

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

  5. [Transform data] で次の操作を行います。

    1. [ローリング ウィンドウ関数] をクリックし、[sum] を選択します。
    2. [時系列集計] をクリックして、[none] を選択します。
  6. [NEXT] をクリックします。

  7. [Configure trigger] で、次の値を選択します。

    • Condition Types: Threshold
    • Alert trigger: Any time series violates
    • しきい値の位置: Above threshold
    • しきい値: 0
    • 条件名を入力します。

      構成パネル。

  8. [NEXT] をクリックします。

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

  10. [NEXT] をクリックします。

  11. [アラートの確認] ページでアラート設定を確認したら、[ポリシーを作成] ボタンをクリックします。

次のステップ