世界的な災害復旧が発生した場合には、データベースのバックアップを別の AWS アカウントに保存することが重要です。 Aurora RDS は、DB バックアップを別のリージョンまたは別のアカウントにコピーできますが、両方にコピーすることはできません。さらに、Aurora DB クラスターが AWS 管理のキーを使用してデプロイされている場合、クロスアカウントのコピーはサポートされません。クラスター キーを変更するには、クラスターの再デプロイが必要です。
このようなユースケースの場合、アプローチの 1 つは AWS バックアップを使用することです
このようなユースケースの場合は、AWS ドキュメント「クロスアカウントおよびクロスリージョンバックアップによる暗号化された Amazon RDS インスタンスの保護」で説明されているアプローチの 1 つを使用します。
ただし、AWS ドキュメントは AWS CloudFormation テンプレートに基づいています。 Terraformを使って再作成してみました。
このアプローチでは、アカウント間およびリージョン間で AWS Aurora バックアップを Vault にコピーする柔軟性が提供されます。カスタム KMS キーを使用して Aurora クラスターをデプロイする必要はありません。
このソリューションでは、AWS バックアップ プランを使用して、Amazon RDS データベースのスケジュールされたバックアップをソース コンテナー (本番リージョン、本番アカウント) に作成します。
同じバックアップ プランはコピー ルールを定義し、同じアカウント内の、ただし DR リージョン (本番アカウント、DR ストレージ リージョン) 内の中間コンテナーにバックアップをコピーします。
その後、ソリューションは EventBridge を使用して AWS Backup コピー ジョブの正常な完了をキャプチャし、これらのイベントを使用して AWS Lambda 関数をトリガーします。次に、AWS Lambda 関数は、AWS Backup を使用して別のバックアップ コピー ジョブを実行し、本番アカウントの中間ボールトから DR アカウント (DR アカウント、DR ストレージ リージョン) 内の宛先ボールトにバックアップをコピーします。 .
出典:https://aws.amazon.com/blogs/storage/protecting-encrypted-amazon-rds-instances-with-cross-account-and-cross-region-backups/
本番アカウントのデフォルトの RDS KMS AWS 管理キーで暗号化された RDS DB インスタンスは、AWS Backup によって SourceVault にバックアップされます (cmk-source-vault-account-a-region-a 暗号化を使用するように構成されています) )、バックアップは IntermediateVault にコピーされます (cmk-intermediate-vault-account-a-region-b 暗号化を使用するように構成されています)。 SourceVault は「cmk-source-vault-account-a-region-a」暗号化を使用するように設定されていますが、SourceVault に保存されている Amazon RDS スナップショットは、AWS が管理するデフォルトの RDS KMS を使用して暗号化されています。キー (aws/rds)。 SourceVault から IntermediateVault にスナップショットをコピーする手順では、スナップショットが復号化され、IntermediateVault の「cmk-intermediate-vault-account-a-region-b」を使用してスナップショットが再暗号化されます。その後、「cmk-intermediate-vault-account-a-region-b」顧客管理キーを DR バックアップ アカウントと共有して、アカウント間のコピーに使用できます。クロスアカウント コピー中に、スナップショットは宛先ボールト キー「cmk-destination-vault-account-b-region-b」を使用して再度再暗号化されます。
IntermediateVault へのコピーが完了すると、運用アカウント (アカウント A、リージョン A) の EvenBridge ルールが「コピー ジョブ完了」イベントを識別し、そのイベントをアカウント A、リージョン B の EventBridge に転送します。ターンは Lambda 関数をトリガーします。 Lambda 関数は、適切なタグが復旧ポイントに存在することを確認し、本番アカウント (アカウント A、リージョン B、IntermediateVault) から DR バックアップ アカウント (アカウント B、リージョン B、DestinationVault) にバックアップをコピーするように AWS Backup にリクエストします。クロスアカウントおよびクロスリージョンのバックアップコピーを実現します。
長所
短所
実装
前提条件
バックアップの流れ
RDS/S3/EFS インスタンス → アカウントの Vault への AWS バックアップ → Vault から GDR Vault へのクロスアカウント コピー バックアップ
Terraform コードは Github リポジトリから入手できます
以上がAWS Aurora のグローバルディザスターリカバリーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。