Compute Engine インスタンスの Google マネージド バックアップ プロセスでは、データが Backup Vault に送信されます。これらの Backup Vault は、不変性と強制保持を提供します。バックアップは単一のリージョンに保存するか、複数のリージョンに保存するかを選択できます。
Google マネージド モデルは、スケジュールされたバックアップとオンデマンド バックアップという 2 つの主要な実行方法をサポートしています。このドキュメントでは、これらのバックアップを構成して管理する方法について説明します。
概要
バックアップを Backup Vault に送信すると、不変性と保持が強制されます。Backup Vault を使用すると、バックアップを単一リージョンまたはマルチリージョンに保存できます。Compute Engine インスタンスのバックアップ方法には、主に次の 2 つがあります。
Google Cloud コンソールを使用して Compute Engine インスタンスをバックアップする:Google Cloud コンソールで、バックアップ プランを適用して Compute Engine インスタンスを Backup Vault にバックアップできます。次のいずれかの方法でデータをバックアップできます。どちらの方法でも、バックアップを Backup Vault に安全に保存できます。これにより、データ損失やその他の予期しないイベントが発生した場合に、Compute Engine インスタンスを確実に復元できます。
スケジュールされたバックアップ: Compute Engine インスタンスを毎日、毎週、毎月、毎年などの特定の頻度で自動的にバックアップします。
オンデマンド バックアップ: 必要に応じてオンデマンド バックアップを作成します。オンデマンド バックアップは、インスタンスに大幅な変更を加える前にバックアップを作成する場合や、アドホック データ保護に役立ちます。
管理コンソールを使用して Compute Engine インスタンスをバックアップする: 次のいずれかのバックアップ要件がある場合は、管理コンソールを使用して Compute Engine インスタンスをバックアップできます。
- リージョン間でのバックアップ
- 仮想マシン(VM)にアタッチされている特定のディスクのバックアップ
- タグに基づく Compute Engine VM の自動保護
- Google Cloud コンソール ベースのバックアップ プランとバックアップ ボルトが、ソース VM が実行されているリージョンと互換性のあるロケーションにない場合。
アプライアンス管理コンソールは、アプライアンス管理バックアップ用の Backup and DR の一部です。アプライアンス管理コンソールを使用する必要がある場合は、アプライアンス管理コンソールから Compute Engine インスタンスを検出して保護するをご覧ください。
始める前に
Compute Engine インスタンスが配置されている場所で Backup and DR サービス API を有効にします。
[バックアップ プランを作成する][2]。
Backup and DR のバックアップ ジョブをモニタリングするために、バケットに Observability Analytics を設定します。
IAM 構成
スケジュール バックアップを構成するか、オンデマンド バックアップを実行するには、管理者が Backup Vault プロジェクトに対する次の IAM ロールを付与する必要があります。
- Backup and DR バックアップ ユーザー(
roles/backupdr.backupUser) - 閲覧者(
roles/viewer)
Google マネージド バックアップ オペレーションに必要な特定の権限は次のとおりです。
backupdr.backupPlans.listbackupdr.backupPlanAssociations.createForComputeInstancebackupdr.backupPlanAssociations.listbackupdr.backupPlanAssociations.getbackupdr.backupPlanAssociations.triggerBackupForComputeInstancebackupdr.backupPlanAssociations.deleteForComputeInstancebackupdr.backupPlans.useForComputeInstancebackupdr.locations.listbackupdr.operations.getcloudasset.assets.searchAllResources
復元権限に加えて、ユーザーにはバックアップ メタデータを表示して取得する権限が必要です。
backupdr.backupVaults.getbackupdr.backupVaults.listbackupdr.bvbackups.listbackupdr.bvbackups.getbackupdr.bvdataSources.listbackupdr.bvdataSources.get
Compute Engine インスタンスが Backup Vault とは異なるプロジェクトにある場合は、Compute Engine プロジェクト内の Backup Vault サービス エージェントに Backup and DR Compute Engine オペレーター(roles/backupdr.computeEngineOperator)ロールを付与する必要があります。
次の表に、各 API 呼び出しに必要な権限を示します。
| リソース | リソースに対して実行するアクション | API 呼び出しごとに必要な権限 | 割り当てる必要があるプロジェクト |
|---|---|---|---|
| Backup Vault | BackupVault を作成する | backupdr.backupVaults.create | 管理者プロジェクト |
| BackupVault を削除する | backupdr.backupVaults.delete | 管理者プロジェクト | |
| BackupVault の更新 | backupdr.backupVaults.update | 管理者プロジェクト | |
| BackupVault を一覧表示する | backupdr.backupVaults.list | 管理者プロジェクト | |
| BackupVault を取得する | backupdr.backupVaults.get | 管理者プロジェクト | |
| バックアップ プラン | BackupPlan を作成する | backupdr.backupPlans.create | 管理者プロジェクト |
| Delete BackupPlan | backupdr.backupPlans.delete | 管理者プロジェクト | |
| BackupPlan を取得する | backupdr.backupPlans.get | 管理者プロジェクト | |
| バックアップ プランを一覧表示する | backupdr.backupPlans.list | 管理者プロジェクト | |
| バックアップ プランの関連付け | バックアップ プランの関連付けを作成する | ワークロード プロジェクト | |
| backupdr.backupPlanAssociations.createForComputeInstance | ワークロード プロジェクト | ||
| backupdr.backupPlans.useForComputeInstance | 管理者プロジェクト | ||
| バックアップ プランの関連付けを削除する | backupdr.backupPlanAssociations.deleteForComputeInstance | ワークロード プロジェクト | |
| バックアップ プランの関連付けでオンデマンド バックアップをトリガーする | backupdr.backupPlanAssociations.triggerBackupForComputeInstance | ワークロード プロジェクト | |
| バックアップ プランの関連付けを取得する | backupdr.backupPlanAssociations.getForComputeInstance | ワークロード プロジェクト | |
| バックアップ プランの関連付けを一覧表示する | backupdr.backupPlanAssociations.list | ワークロード プロジェクト | |
| バックアップ プランの関連付けを取得する | backupdr.backupPlanAssociations.fetchForComputeInstance | ワークロード プロジェクト | |
| データソース | DataSource を取得する | backupdr.bvdataSources.get | 管理者プロジェクト |
| データソースの一覧表示 | backupdr.backupPlanAssociations.list | 管理者プロジェクト | |
| バックアップ | バックアップを取得 | backupdr.bvbackups.get | 管理者プロジェクト |
| バックアップを一覧表示する | backupdr.bvbackups.list | 管理者プロジェクト | |
| バックアップの削除 | backupdr.bvbackups.delete | 管理者プロジェクト | |
| バックアップを復元 | backupdr.bvbackups.restore | 管理者プロジェクト | |
| 運用 | オペレーションの一覧表示 | backupdr.operations.list | それぞれのプロジェクト |
| Get オペレーション | backupdr.operations.get | それぞれのプロジェクト |
制約と制限
Backup and DR は、次の構成を使用する Compute Engine インスタンスの Google マネージド バックアップをサポートしていません。
- エクストリーム永続ディスクがアタッチされているインスタンス
- hyperdisk-* ディスクタイプを使用するインスタンス
- C3D、H3、A3、Z3 マシンタイプを使用するインスタンス
- 顧客指定の暗号鍵(CSEK)を使用するインスタンス
- アタッチされたディスクがないインスタンス
- サイズが 200 テラバイト(TB)を超えるインスタンス
スケジュールされたバックアップを構成する
次の手順で、Compute Engine インスタンスのスケジュール設定されたバックアップを構成します。
コンソール
Google Cloud コンソールで、[Vaulted backups] ページに移動します。
[バックアップのスケジュールを設定] をクリックします。
[プロジェクト] リストで、[参照] をクリックして、Compute Engine インスタンスが配置されているプロジェクトを選択します。
[リージョン] リストから、インスタンスが配置されているリージョンを選択します。
[リソース] リストで [ブラウズ] をクリックします。
バックアップする Compute Engine インスタンスを選択し、[完了] をクリックします。
[続行] をクリックします。
[バックアップ プラン] リストで、[選択] をクリックします。
Compute Engine インスタンスを保護するバックアップ プランを選択します。
[完了] をクリックします。
バックアップの詳細を確認し、[スケジュール] をクリックします。
gcloud
インスタンス ID を取得します。
gcloud compute instances describe VM_NAME --zone=VM_ZONE --format="value(id)"次のように置き換えます。
VM_NAME: VM インスタンスの名前。VM_ZONE: VM が配置されているロケーション。
スケジュールされたバックアップを構成します。
gcloud backup-dr backup-plan-associations create BACKUP_PLAN_ASSOCIATION_NAME \ --location=VM_REGION \ --resource=projects/VM_PROJECT_ID/zones/VM_ZONE/instances/VM_ID \ --backup-plan=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN次のように置き換えます。
BACKUP_PLAN_ASSOCIATION_NAME: バックアップ プランの関連付けの名前。VM_REGION: Compute Engine インスタンスが配置されているリージョン。VM_PROJECT_ID: Compute Engine インスタンスが配置されているプロジェクトの名前。VM_ZONE: Compute Engine インスタンスが配置されているゾーン。VM_ID: Compute Engine インスタンス ID。PROJECT_ID: バックアップ プランが存在するプロジェクトの名前。LOCATION: バックアップ プランが存在するリージョン。BACKUP_PLAN: Compute Engine インスタンスを関連付けるバックアップ プランの名前。
Terraform
Backup and DR の Compute Engine バックアップのアプリケーション整合性
アプリケーション整合性スナップショットは、すべてのアプリケーション トランザクションが完了し、保留中の書き込みがすべてディスクにフラッシュされた状態で、バックアップの時点でのアプリケーション データの状態をキャプチャします。
次の手順で、Compute Engine インスタンスのアプリケーション整合性バックアップを構成します。
始める前に
アプリケーション整合性スナップショットをご覧ください。
Linux 環境でアプリケーション整合性のあるインスタンス バックアップのバックアップ プランには、事前スクリプトと事後スクリプトが必要です。Linux 環境に必要なスナップショット前後のスクリプトを作成します。
Compute Engine インスタンスでアプリケーション整合性のあるバックアップのバックアップ プランを作成する
次の手順で、Compute Engine インスタンスのアプリケーション整合性バックアップを作成します。
gcloud
バックアップ プランを作成します。
gcloud backup-dr backup-plans create BACKUP_PLAN_NAME \ --compute-instance-properties=guest-flush=true \ --resource-type=compute.googleapis.com/Instance \ --location=REGION \ --project=PROJECT_ID \ --backup-vault=BACKUPVAULT_NAME \ --backup-rule=rule-id=RULE_NAME,recurrence=RECURRENCE,hourly-frequency=HOURS, \ time-zone=TIME_ZONE,backup-window-start=START_TIME,backup-window-end=END_TIME,\ retention-days=BACKUP_RETENTION --max-custom-on-demand-retention-days=MAX_ONDEMAND_RETENTION次のように置き換えます。
BACKUP_PLAN_NAME: バックアップ プランの名前。REGION: バックアップ プランを作成する Google Cloud リージョン。PROJECT_ID: Backup Vault が存在するプロジェクトの名前。BACKUPVAULT_NAME: バックアップ ストレージに使用する Backup Vault の名前。RULE_NAME: バックアップ ルールの名前。RECURRENCE: バックアップの作成頻度。時間間隔は、時間、日、週、月、年の単位で指定できます。HOURS: 1 時間ごとのバックアップの頻度。この値は、定期的な実行を 1 時間ごとに設定した場合にのみ指定します。最小の 1 時間あたりの頻度のデフォルト値は 6 時間です。TIME_ZONE: バックアップ プランのタイムゾーン(UTC など)。IANA タイムゾーン形式を使用して、バックアップ プランのタイムゾーンを指定します。START_TIME: 開始時刻は 24 時間形式の時間です。開始時刻は終了時刻より前にする必要があります。バックアップ ウィンドウには開始時刻が含まれます。END_TIME: 終了時間は 24 時間形式の時刻です。終了時間は開始時間より後にする必要があります。また、バックアップ ウィンドウの終了時間は含まれません。BACKUP_RETENTION: バックアップの保持期間。バックアップの保持期間は、Backup Vault に適用される最短保持期間以上にする必要があります。MAX_ONDEMAND_RETENTION: このバックアップ プランを使用して作成されたオンデマンド バックアップのカスタム保持期間の最大許容値(日数)。
Compute Engine インスタンスのアプリケーション整合性バックアップ用に既存のバックアップ プランを更新する
次の手順で、バックアップ プランを更新して、Compute Engine インスタンスのアプリケーション整合性バックアップを作成します。
gcloud
バックアップ プランを更新します。
gcloud backup-dr backup-plans update BACKUP_PLAN_NAME \ --compute-instance-properties=guest-flush=true \ --project=PROJECT_ID \ --location=REGION \ --description=DESCRIPTION \ --backup-rule=BACKUP_RULE \ --add-backup-rule=ADD_BACKUP_RULE \ --remove-backup-rule=REMOVE_BACKUP_RULE \ --max-custom-on-demand-retention-days=MAX_ONDEMAND_RETENTION次のように置き換えます。
BACKUP_PLAN_NAME: バックアップ プランの名前。PROJECT_ID: Backup Vault が存在するプロジェクトの名前。REGION: バックアップ プランを作成するロケーション。DESCRIPTION: バックアップ プランの更新された説明。BACKUP_RULE: 更新された値を含む既存のバックアップ ルールの完全な定義。ADD_BACKUP_RULE: バックアップ プランに追加するバックアップ ルールのパラメータ。このフラグを繰り返して、バックアップ ルールを追加できます。REMOVE_BACKUP_RULE: バックアップ プランから削除する既存のバックアップ ルール。MAX_ONDEMAND_RETENTION: このバックアップ プランを使用して作成されたオンデマンド バックアップで許可されるカスタム保持期間の最大値(日数)。
Compute Engine インスタンスに適用されているバックアップ プランを変更する
Compute Engine インスタンスに適用されているバックアップ プランを別のバックアップ プランに変更できます。他のバックアップ プランは、次の条件を満たしている必要があります。
- 同じ Backup Vault を使用する
- Compute Engine インスタンスと同じリージョンに存在する
次の手順に沿って、Compute Engine インスタンスに関連付けられているバックアップ プランを変更します。
コンソール
Google Cloud コンソールで、[Vaulted backups] ページに移動します。
[Vaulted backups] ページには、バックアップ プランが適用され、バックアップがプロジェクト内の Backup Vault に保存されているインスタンスのみが表示されます。
別のプランに変更するバックアップを選択します。バックアップのバックアップ詳細ページまたは メニューから、[バックアップ プランを変更] を選択します。[バックアップ プランを選択] ウィンドウには、このインスタンスで有効なバックアップ プランのみが表示されます。
バックアップ プランを選択し、[適用] をクリックします。
gcloud
割り当てられているバックアップ プランを変更します。
gcloud backup-dr backup-plan-associations update BACKUP_PLAN_ASSOCIATION_NAME \ --workload-project=VM_PROJECT_ID \ --location=VM_REGION \ --backup-plan=BACKUP-PLAN \ --project=PROJECT_ID次のように置き換えます。
BACKUP_PLAN_ASSOCIATION_NAME: バックアップ プランの関連付けリソースの名前。VM_PROJECT_ID: Compute Engine インスタンスのプロジェクト ID。VM_REGION: Compute Engine インスタンスのロケーション。BACKUP_PLAN: 切り替えるバックアップ プランの名前。PROJECT_ID: 選択したバックアップ プランのプロジェクト ID。
スケジュール設定されたバックアップを一覧表示する
次の手順で、バックアップされた Compute Engine インスタンスを一覧表示します。
コンソール
Google Cloud コンソールで、[Vaulted backups] ページに移動します。
[Vaulted backups] ページには、バックアップ プランが適用され、バックアップがプロジェクト内の Backup Vault に保存されているインスタンスのみが表示されます。
gcloud
スケジュール設定されたバックアップを一覧表示します。
gcloud backup-dr backup-plan-associations list \ --location=LOCATION \ --project=PROJECT_ID次のように置き換えます。
PROJECT_ID: プロジェクトの名前。LOCATION: スケジュール バックアップのロケーション。
オンデマンド バックアップの作成
バックアップ プランを使用して Compute Engine インスタンスのオンデマンド バックアップを開始するには、選択したバックアップ ルールをすぐに実行するようにトリガーします。オンデマンド バックアップでは通常、前回のバックアップ以降に変更されたデータ(増分)のみがキャプチャされます。
オンデマンド バックアップを作成するときに、Compute Engine インスタンスに関連付けられているバックアップ プランからルールを選択できます。このルールは、オンデマンド バックアップが削除されるタイミングを決定します。バックアップ ジョブのステータスは、[ジョブ] ページで確認できます。詳細については、 Google Cloud コンソールでバックアップ ジョブと復元ジョブをモニタリングするをご覧ください。
オンデマンド バックアップを作成する手順は次のとおりです。
コンソール
- [VM インスタンス] > [詳細] > [バックアップ プラン] に移動して、オンデマンド バックアップを作成します。
- [オンデマンド バックアップを作成] をクリックします。オンデマンド バックアップを作成するには、適切な権限が必要です。
このバックアップを削除するタイミングを選択します。次のいずれかを行います。
- カスタム保持期間に基づく デフォルトでは、上限は Backup Vault の最小強制保持期間に 30 日を加えた期間として設定されます。別の上限を設定するには、バックアップ プランにカスタム オンデマンド保持期間の最大値を追加してください。
- 既存のバックアップ ルールに基づく。[次の期間の経過後バックアップを削除] プルダウンからルールを選択します。
[作成] をクリックして、オンデマンド バックアップ ジョブを開始します。
オンデマンド バックアップ ジョブのステータスを表示するには、[通知] をクリックします。
gcloud
バックアップ ルールを使用するオンデマンド バックアップを作成します。
gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \ --project=PROJECT_ID \ --location=REGION \ --backup-rule-id=RULE_ID --labels=LABELS次のように置き換えます。
BACKUP_PLAN_ASSOCIATION_NAME: バックアップ プランの関連付けの名前。gcloud backup-dr backup-plan-associations list --location=LOCATION --project=PROJECT_IDコマンドを実行して、Compute Engine ディスクに関連付けられているバックアップ プランのリストを取得します。PROJECT_ID: プロジェクトの名前。REGION: スケジュール バックアップのロケーション。RULE_ID: オンデマンド バックアップの実行に関連付けるバックアップ ルール名。LABELS: バックアップのラベル(省略可)。webserver=backend,media=imagesなどの Key-Value ペアのカンマ区切りリスト。
カスタム保持を使用するオンデマンド バックアップを作成します。
gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \ --project=PROJECT_ID \ --location=REGION \ --custom-retention-days=CUSTOM_RETENTION --labels=LABELS次のように置き換えます。
BACKUP_PLAN_ASSOCIATION_NAME: バックアップ プランの関連付けの名前。gcloud backup-dr backup-plan-associations list --location=LOCATION --project=PROJECT_IDコマンドを実行して、Compute Engine ディスクに関連付けられているバックアップ プランのリストを取得します。PROJECT_ID: プロジェクトの名前。REGION: スケジュール バックアップのロケーション。CUSTOM_RETENTION: このオンデマンド バックアップのカスタム保持期間(日数)。この値は、Backup Vault の保持期間以上で、バックアップ プランで構成されているmax-custom-on-demand-retention-days値以下にする必要があります(max-custom-on-demand-retention-daysが構成されていない場合は、Vault の保持期間 + 30 日)。LABELS: バックアップのラベル(省略可)。webserver=backend,media=imagesなどの Key-Value ペアのカンマ区切りリスト。
Compute Engine インスタンスの保護を解除する
Compute Engine インスタンスに適用されたバックアップ プランを削除すると、インスタンスの保護を解除できます。Compute Engine インスタンスからバックアップ プランを削除しても、バックアップ プランや、インスタンスの使用中に作成されたバックアップは削除されません。既存のバックアップには引き続きアクセスして管理できます。
次の手順で、Compute Engine インスタンスの保護を解除します。
コンソール
Google Cloud コンソールで、[Vaulted backups] ページに移動します。
バックアップ プランを削除するインスタンスの名前をクリックします。
[バックアップ プランを削除] を選択します。
gcloud
Compute Engine インスタンスの保護を解除する。
gcloud backup-dr backup-plan-associations delete BACKUP_PLAN_ASSOCIATION_NAME\ --project=PROJECT_ID \ --location=LOCATION次のように置き換えます。
BACKUP_PLAN_ASSOCIATION_NAME: 削除するバックアップの名前。PROJECT_ID: プロジェクトの名前。LOCATION: スケジュール バックアップのロケーション。