AlloyDB クラスタを Backup Vault にバックアップする

このページでは、AlloyDB を Backup Vault にバックアップする方法について説明します。バックアップを Backup Vault に送信すると、不変性と保持の強制が実現します。

Google Cloud コンソールでは、バックアップ プランを適用して AlloyDB for PostgreSQL クラスタを Backup Vault にバックアップできます。次の 2 つの方法でバックアップできます。どちらの方法でも、バックアップを Backup Vault に安全に保存できるため、データの損失やその他の予期しない事態が発生した場合に AlloyDB クラスタを確実に復元できます。

  • スケジュール バックアップ 。AlloyDB for PostgreSQL クラスタを、毎日、毎週、毎月、毎年など、特定の頻度で自動的にバックアップできます。
  • オンデマンド バックアップ 。オンデマンド バックアップは、必要に応じていつでも作成できます。 オンデマンド バックアップは、データベースに大幅な変更を加える前にバックアップを作成する場合や、アドホックなデータ保護を行う場合に便利です。

始める前に

  1. AlloyDB for PostgreSQL クラスタがある場所で Backup and DR API を有効にします。

    API の有効化

    1. Backup Vault を作成する
    2. バックアップ プランを作成する

    3. バックアップ ユーザーに IAM ロールと権限を割り当てる

    4. AlloyDB プロジェクトで Backup Vault へのアクセス権を付与する

    5. Backup and DR のバックアップ ジョブをモニタリングするために、バケットに Observability Analytics を設定します。

バックアップ ユーザーの IAM ロールと権限

スケジュール バックアップを構成するか、オンデマンド バックアップを実行するために必要な権限を取得するには、Backup Vault プロジェクトに対して次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与の詳細については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

これらの事前定義ロールには スケジュール バックアップを構成するか、オンデマンド バックアップを実行するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

スケジュール バックアップを構成するか、オンデマンド バックアップを実行するには、次の権限が必要です。

  • 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 クラスタのスケジュール バックアップを構成する手順は次のとおりです。

コンソール

  1. コンソール Google Cloud で、Backup and DR の [Vault に保存されているバックアップ] ページに移動します。

    [Vault に保存されているバックアップ] に移動

  2. [バックアップをスケジュール] をクリックします。

  3. [リソースタイプ] リストから [AlloyDB] を選択します。

  4. [プロジェクト] リストから、AlloyDB クラスタがあるプロジェクトを選択します。

  5. [リージョン] リストから、クラスタがあるリージョンを選択します。

  6. [リソース] リストで [ブラウジング] をクリックします。バックアップする AlloyDB クラスタを選択し、[完了] をクリックします。

  7. [続行] をクリックします。

  8. [バックアップ プラン] リストで [選択] をクリックします。

  9. AlloyDB クラスタを保護するバックアップ プランを選択します。

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

  11. バックアップの詳細を確認し、[スケジュール] をクリックします。

gcloud

  1. スケジュール バックアップを構成します。

      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 クラスタを一覧表示する手順は次のとおりです。

コンソール

  1. コンソール Google Cloud で、Backup and DR の [Vault に保存されているバックアップ] ページに移動します。

    [Vault に保存されているバックアップ] に移動

  2. 表の上部で、[表をフィルタリング] > [リソースタイプ] を選択します。[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 をご覧ください。

オンデマンド バックアップを作成する手順は次のとおりです。

コンソール

  1. コンソール Google Cloud で、Backup and DR の [Vault に保存されているバックアップ] ページに移動します。

    [Vault に保存されているバックアップ] に移動

    [Vault に保存されているバックアップ] ページには、バックアップ プランが適用されており、バックアップがプロジェクト内の Backup Vault に保存されているデータリソースのみが表示されます。

  2. バックアップするリソースを選択します。 メニューまたはリソースの詳細ページから、 [Create on-demand backup] を選択します。

  3. 次のいずれかのオプションを使用して、バックアップが削除されるタイミングを指定します。

    • カスタム保持期間に基づく (プレビュー): バックアップ プランにカスタムのオンデマンド保持期間を追加します。デフォルトでは、Backup Vault に適用される最小保持期間に 30 日を加えた期間が設定されます。
    • 既存のバックアップ ルールに基づく: [バックアップを削除するまでの期間] プルダウン メニューから既存のルールを選択します。
  4. [作成] をクリックして、オンデマンド バックアップの作成を開始します。

  5. オンデマンド バックアップ ジョブのステータスを表示するには、[通知] をクリックします。

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 クラスタに関連付けられているバックアップ プランを変更する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで、Backup and DR の [Vault に保存されているバックアップ] ページに移動します。

    [Vault に保存されているバックアップ] に移動

    [Vault に保存されているバックアップ] ページには、バックアップ プランが適用されており、バックアップがプロジェクト内の Backup Vault に保存されているデータリソースのみが表示されます。

  2. 別のプランを取得するバックアップを選択します。バックアップの詳細ページまたは メニューから、[Change backup plan] を選択します。[バックアップ プランを選択] ウィンドウには、このクラスタで有効なバックアップ プランのみが表示されます。

  3. バックアップ プランを選択し、[適用] をクリックします。

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 クラスタの保護を解除する手順は次のとおりです。

コンソール

  1. コンソール Google Cloud で、Backup and DR の [Vault に保存されているバックアップ] ページに移動します。

    [Vault に保存されているバックアップ] に移動

  2. バックアップ プランを削除するデータベースの名前をクリックします。

  3. [バックアップ プランを削除] を選択します。

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 鍵バージョンをモニタリングして追跡できます。

次のステップ