このページでは、AlloyDB を Backup Vault にバックアップする方法について説明します。バックアップを Backup Vault に送信すると、不変性と保持の強制が実現します。
Google Cloud コンソールでは、バックアップ プランを適用して AlloyDB for PostgreSQL クラスタを Backup Vault にバックアップできます。次の 2 つの方法でバックアップできます。どちらの方法でも、バックアップを Backup Vault に安全に保存できるため、データの損失やその他の予期しない事態が発生した場合に AlloyDB クラスタを確実に復元できます。
- スケジュール バックアップ 。AlloyDB for PostgreSQL クラスタを、毎日、毎週、毎月、毎年など、特定の頻度で自動的にバックアップできます。
- オンデマンド バックアップ 。オンデマンド バックアップは、必要に応じていつでも作成できます。 オンデマンド バックアップは、データベースに大幅な変更を加える前にバックアップを作成する場合や、アドホックなデータ保護を行う場合に便利です。
始める前に
AlloyDB for PostgreSQL クラスタがある場所で Backup and DR API を有効にします。
- Backup Vault を作成する
Backup and DR のバックアップ ジョブをモニタリングするために、バケットに Observability Analytics を設定します。
バックアップ ユーザーの IAM ロールと権限
スケジュール バックアップを構成するか、オンデマンド バックアップを実行するために必要な権限を取得するには、Backup Vault プロジェクトに対して次の IAM ロールを付与するよう管理者に依頼してください。
- Backup and DR バックアップ ユーザー (
roles/backupdr.backupUser) - 閲覧者 (
roles/viewer)
ロールの付与の詳細については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
これらの事前定義ロールには スケジュール バックアップを構成するか、オンデマンド バックアップを実行するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
スケジュール バックアップを構成するか、オンデマンド バックアップを実行するには、次の権限が必要です。
-
backupdr.backupPlans.list -
backupdr.backupPlanAssociations.createForAlloydbCluster -
backupdr.backupPlanAssociations.fetchForAlloydbCluster -
backupdr.backupPlanAssociations.list -
backupdr.backupPlanAssociations.getForAlloydbCluster -
backupdr.backupPlanAssociations.triggerBackupForAlloydbCluster -
backupdr.backupPlanAssociations.deleteForAlloydbCluster -
backupdr.backupPlans.useForAlloydbCluster -
backupdr.locations.list -
backupdr.operations.get -
cloudasset.assets.searchAllResources
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
次の表に、各 API 呼び出しに必要な動的権限を示します。
| リソース | リソースに対して実行するアクション | 各 API 呼び出しに必要な権限 | 割り当てる必要があるプロジェクト |
|---|---|---|---|
| Backup Vault | Backup Vault を作成する | backupdr.backupVaults.create | 管理者プロジェクト |
| Backup Vault を削除する | backupdr.backupVaults.delete | 管理者プロジェクト | |
| Backup Vault を更新する | backupdr.backupVaults.update | 管理者プロジェクト | |
| Backup Vault を一覧表示する | backupdr.backupVaults.list | 管理者プロジェクト | |
| Backup Vault を取得する | backupdr.backupVaults.get | 管理者プロジェクト | |
| バックアップ プラン | バックアップ プランを作成する | backupdr.backupPlans.create | 管理者プロジェクト |
| バックアップ プランを削除する | backupdr.backupPlans.delete | 管理者プロジェクト | |
| バックアップ プランを取得する | backupdr.backupPlans.get | 管理者プロジェクト | |
| バックアップ プランを一覧表示する | backupdr.backupPlans.list | 管理者プロジェクト | |
| バックアップ プランの関連付け | バックアップ プランの関連付けを作成する | backupdr.backupPlanAssociations.createForAlloydbCluster | ワークロード プロジェクト |
| バックアップ プランの関連付けを削除する | backupdr.backupPlanAssociations.deleteForAlloydbCluster | ワークロード プロジェクト | |
| バックアップ プランの関連付けでオンデマンド バックアップをトリガーする | backupdr.backupPlanAssociations.triggerBackupForAlloydbCluster | ワークロード プロジェクト | |
| バックアップ プランの関連付けを取得する | backupdr.backupPlanAssociations.getForAlloydbCluster | ワークロード プロジェクト | |
| バックアップ プランの関連付けを一覧表示する | backupdr.backupPlanAssociations.list | ワークロード プロジェクト | |
| バックアップ プランの関連付けを取得する | backupdr.backupPlanAssociations.fetchForAlloydbCluster | ワークロード プロジェクト | |
| データソース | データソースを取得する | backupdr.bvdataSources.get | 管理者プロジェクト |
| データソースを一覧表示する | backupdr.bvdataSources.list | 管理者プロジェクト | |
| PITR 復元 | backupdr.bvdataSources.useReadOnlyForAlloydbCluster | 管理者プロジェクト | |
| バックアップ | バックアップを取得する | backupdr.bvbackups.get | 管理者プロジェクト |
| バックアップを一覧表示する | backupdr.bvbackups.list | 管理者プロジェクト | |
| バックアップを削除する | backupdr.bvbackups.delete | 管理者プロジェクト | |
| バックアップを復元する | backupdr.bvbackups.useReadOnlyForAlloydbCluster | 管理者プロジェクト | |
| データソース参照 | データソース参照を取得する | backupdr.dataSourceReferences.getForAlloydbCluster | ワークロード プロジェクト |
| データソース参照を取得する | backupdr.dataSourceReferences.fetchForAlloydbCluster | ワークロード プロジェクト | |
| オペレーション | オペレーションを一覧表示する | backupdr.operations.list | それぞれのプロジェクト |
| オペレーションを取得する | backupdr.operations.get | それぞれのプロジェクト |
AlloyDB for PostgreSQL プロジェクトで Backup Vault へのアクセス権を付与する
Backup Vault が作成されたプロジェクトとは異なるプロジェクトで AlloyDB クラスタをバックアップするには、AlloyDB プロジェクト内の Backup and DR AlloyDB オペレーター(roles/backupdr.alloydbOperator)IAM ロールを Backup Vault サービス エージェントに付与する必要があります。バックアップが保存される Backup Vault プロジェクトが AlloyDB プロジェクトと異なる場合は、AlloyDB プロジェクト内の Backup Vault サービス エージェントにロールを割り当てます。
Backup Vault が作成されたプロジェクトと同じプロジェクトで AlloyDB クラスタをバックアップする場合、ロールを付与する必要はありません。
バックアップするプロジェクト内の Backup Vault サービス エージェントにロールを付与する方法については、サービス エージェントにロールを付与するをご覧ください。
スケジュール バックアップを構成する
AlloyDB クラスタのスケジュール バックアップを構成する手順は次のとおりです。
コンソール
コンソール Google Cloud で、Backup and DR の [Vault に保存されているバックアップ] ページに移動します。
[バックアップをスケジュール] をクリックします。
[リソースタイプ] リストから [AlloyDB] を選択します。
[プロジェクト] リストから、AlloyDB クラスタがあるプロジェクトを選択します。
[リージョン] リストから、クラスタがあるリージョンを選択します。
[リソース] リストで [ブラウジング] をクリックします。バックアップする AlloyDB クラスタを選択し、[完了] をクリックします。
[続行] をクリックします。
[バックアップ プラン] リストで [選択] をクリックします。
AlloyDB クラスタを保護するバックアップ プランを選択します。
[完了] をクリックします。
バックアップの詳細を確認し、[スケジュール] をクリックします。
gcloud
スケジュール バックアップを構成します。
gcloud backup-dr backup-plan-associations create BACKUP_PLAN_ASSOCIATION_NAME \ --location=ALLOYDB_REGION \ --project=ALLOYDB_PROJECT_ID \ --resource=projects/ALLOYDB_PROJECT_ID/clusters/ALLOYDB_CLUSTER_ID \ --resource-type=alloydb.googleapis.com/Cluster \ --backup-plan=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN ``` Replace the following:BACKUP_PLAN_ASSOCIATION_NAME: バックアップ プランの関連付けの名前。ALLOYDB_REGION: AlloyDB クラスタがあるリージョン。ALLOYDB_PROJECT_ID: AlloyDB クラスタがあるプロジェクトの名前。ALLOYDB_CLUSTER_ID: AlloyDB クラスタ ID。PROJECT_ID: バックアップ プランが存在するプロジェクトの名前。LOCATION: クラスタのロケーション。
バックアップがスケジュールされているクラスタを一覧表示する
バックアップがスケジュールされている AlloyDB クラスタを一覧表示する手順は次のとおりです。
コンソール
コンソール Google Cloud で、Backup and DR の [Vault に保存されているバックアップ] ページに移動します。
表の上部で、[表をフィルタリング] > [リソースタイプ] を選択します。[AlloyDB] を選択します。これにより、プロジェクト内の Backup Vault にバックアップが保存され、バックアップ プランが適用されている AlloyDB クラスタのみが表示されるようにフィルタされます。
gcloud
バックアップがスケジュールされている AlloyDB クラスタを一覧表示します。
gcloud backup-dr backup-plan-associations fetch-for-resource-type alloydb.googleapis.com/Cluster \
--location=LOCATION \
--project=PROJECT_ID
次のように置き換えます。
- LOCATION: スケジュール バックアップのロケーション。
- PROJECT_ID: AlloyDB クラスタがあるプロジェクトの名前。
オンデマンド バックアップを作成する
バックアップ プランを使用して AlloyDB クラスタのオンデマンド バックアップを開始するには、選択したバックアップ ルールをトリガーしてすぐに実行します。オンデマンド バックアップでは通常、前回のバックアップ以降に変更されたデータのみがキャプチャされます(増分)。
オンデマンド バックアップを作成するときに、AlloyDB クラスタに関連付けられたバックアップ プランからルールを選択できます。 このルールによって、オンデマンド バックアップが削除されるタイミングが決まります。バックアップ ジョブのステータスは [ジョブ] ページで確認できます。詳細については、 コンソールでバックアップ ジョブと復元ジョブをモニタリングする Google Cloud をご覧ください。
オンデマンド バックアップを作成する手順は次のとおりです。
コンソール
コンソール Google Cloud で、Backup and DR の [Vault に保存されているバックアップ] ページに移動します。
[Vault に保存されているバックアップ] ページには、バックアップ プランが適用されており、バックアップがプロジェクト内の Backup Vault に保存されているデータリソースのみが表示されます。
バックアップするリソースを選択します。 メニューまたはリソースの詳細ページから、 [Create on-demand backup] を選択します。
次のいずれかのオプションを使用して、バックアップが削除されるタイミングを指定します。
- カスタム保持期間に基づく (プレビュー): バックアップ プランにカスタムのオンデマンド保持期間を追加します。デフォルトでは、Backup Vault に適用される最小保持期間に 30 日を加えた期間が設定されます。
- 既存のバックアップ ルールに基づく: [バックアップを削除するまでの期間] プルダウン メニューから既存のルールを選択します。
[作成] をクリックして、オンデマンド バックアップの作成を開始します。
オンデマンド バックアップ ジョブのステータスを表示するには、[通知] をクリックします。
gcloud
次のいずれかのオプションを使用して、オンデマンド バックアップを作成します。
バックアップ ルールに基づく:
gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \ --backup-rule-id=RULE_ID \ --project=PROJECT_ID \ --location=LOCATION \ [--no-async]カスタム保持に基づく:
gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \ --custom-retention-days=CUSTOM_RETENTION \ --project=PROJECT_ID \ --location=LOCATION \ --labels=LABELS次のように置き換えます。
BACKUP_PLAN_ASSOCIATION_NAME: バックアップ プランの関連付けの名前 。
RULE_ID: オンデマンド バックアップを実行するために関連付けるバックアップ ルールの名前。PROJECT_ID: プロジェクトの名前。LOCATION: スケジュール バックアップのロケーション。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 ペアをカンマ区切りで指定します。
AlloyDB クラスタに適用されるバックアップ プランを変更する
AlloyDB クラスタに適用されるバックアップ プランを別のバックアップ プランに変更できます。別のバックアップ プランは次の条件を満たす必要があります。
- 同じ Backup Vault を使用する
- AlloyDB クラスタと同じリージョンに存在する
AlloyDB クラスタに関連付けられているバックアップ プランを変更する手順は次のとおりです。
コンソール
Google Cloud コンソールで、Backup and DR の [Vault に保存されているバックアップ] ページに移動します。
[Vault に保存されているバックアップ] ページには、バックアップ プランが適用されており、バックアップがプロジェクト内の Backup Vault に保存されているデータリソースのみが表示されます。
別のプランを取得するバックアップを選択します。バックアップの詳細ページまたは メニューから、[Change backup plan] を選択します。[バックアップ プランを選択] ウィンドウには、このクラスタで有効なバックアップ プランのみが表示されます。
バックアップ プランを選択し、[適用] をクリックします。
gcloud
割り当てられたバックアップ プランを変更します。
gcloud backup-dr backup-plan-associations update BACKUP_PLAN_ASSOCIATION_NAME \ --workload-project=ALLOYDB_PROJECT_ID \ --location=ALLOYDB_REGION \ --backup-plan=BACKUP_PLAN \ --project=PROJECT_ID次のように置き換えます。
BACKUP_PLAN_ASSOCIATION_NAME: バックアップ プランの関連付けリソースの名前。ALLOYDB_PROJECT_ID: AlloyDB クラスタのプロジェクト ID。ALLOYDB_REGION: AlloyDB クラスタのロケーション。BACKUP_PLAN: 切り替えるバックアップ プランの名前。PROJECT_ID: 選択したバックアップ プランのプロジェクト ID。
AlloyDB クラスタの保護を解除する
AlloyDB クラスタの保護を解除するには、クラスタに適用されているバックアップ プランを削除します。AlloyDB クラスタからバックアップ プランを削除しても、バックアップ プランの使用中に作成されたバックアップは削除されません。これらの既存のバックアップは、有効期限が切れるまで引き続きアクセスして管理できます。
AlloyDB クラスタの保護を解除する手順は次のとおりです。
コンソール
コンソール Google Cloud で、Backup and DR の [Vault に保存されているバックアップ] ページに移動します。
バックアップ プランを削除するデータベースの名前をクリックします。
[バックアップ プランを削除] を選択します。
gcloud
AlloyDB クラスタの保護を解除します。
gcloud backup-dr backup-plan-associations delete BACKUP_PLAN_ASSOCIATION_NAME \
--project=PROJECT_ID \
--location=LOCATION
次のように置き換えます。
- BACKUP_PLAN_ASSOCIATION_NAME: 削除するバックアップ プランの関連付けの名前。
- PROJECT_ID: プロジェクトの名前。
- LOCATION: スケジュール バックアップのロケーション。
AlloyDB クラスタのバックアップを暗号化する
他のワークロードとは異なり、AlloyDB クラスタのバックアップでは、ソース クラスタ鍵ではなく、Backup and DR の Backup Vault 鍵を使用してバックアップを暗号化します。顧客管理の 暗号鍵の詳細については、顧客管理の暗号鍵(CMEK)をご覧ください。
増分バックアップと鍵のローテーション
バックアップは増分で行われるため、鍵のバージョンがローテーションされた場合、単一のバックアップを Vault 鍵の複数の Cloud Key Management Service 鍵バージョンで暗号化できます。
鍵のトラッキング
Cloud Key Management Service の鍵トラッキング ページを参照して、特定のバックアップに使用される Cloud Key Management Service 鍵バージョンをモニタリングして追跡できます。