ある企業が複数のアベイラビリティゾーンにまたがるWebアプリケーションを運用している。同社はルーティングにアプリケーションロードバランサー(ALB)を使用している。AWS Fargate(またはアプリケーションと、アプリケーションデータ用のAmazon Aurora) AWS CloudFormationテンプレートを使用してアプリケーションをデプロイする。あるDevOpsエンジニアは、ディザスタリカバリ(DR)プロセスを別のAWSリージョンで確立する必要がある。
A. DRリージョンのAmazon S3バケットにCloudFormationテンプレートとDockerfileをコピーする AWS Backupを使用して、自動化されたAuroraクロスリージョンスナップショットを設定する DRの場合、最新のDockerイメージをビルドし、DRリージョンのECRリポジトリにDockerイメージをアップロードする 最新のAuroraスナップショットとECRリポジトリからのDockerイメージを持つCloudFormationテンプレートを使用して、DRリージョンで新しいCloudFormationスタックを起動する 新しいALBを指すようにアプリケーションのDNSレコードを更新する。
B. DRリージョンのAmazon S3バケットにCloudFormationテンプレートをコピーする Aurora自動バックアップを設定する クロスリージョンレプリケーションを設定する ECRクロスリージョンレプリケーションを設定する。DRの場合、最新のAuroraスナップショットとローカルECRリポジトリからのDockerイメージを含むCloudFormationテンプレートを使用して、DRリージョンで新しいCloudFormationスタックを起動する。 新しいALBを指すようにアプリケーションのDNSレコードを更新する。
C. DRリージョンのAmazon S3バケットにCloudFormationテンプレートをコピーします。Amazon EventBridgeを使用してAWS Lambda関数をスケジュールし、AuroraデータベースとECRリポジトリの最新のDockerイメージのスナップショットを1時間ごとに取得する。DRの場合、スナップショットとDockerイメージをDRリージョンにコピーし、最新のAuroraスナップショットとローカルECRリポジトリからのDockerイメージを含むCloudFormationテンプレートを使用して、DRリージョンで新しいCloudFormationスタックを起動する。
D. DRリージョンのAmazon S3バケットにCloudFormationテンプレートをコピーする。DRリージョンに2つ目のアプリケーションCloudFormationスタックをデプロイする。Auroraをグローバルデータベースに再設定する。 現在のリージョンで新しいアプリケーションのリリースが必要になったら、両方のCloudFormationスタックを更新する。DRの場合、アプリケーションのDNSレコードを新しいALBを指すように更新する。