Which solution will meet the RTO and RPO requirements MOST cost-effectively?
Copy the CloudFormation templates and the Dockerfile to an Amazon S3 bucket in the DR Region. Use AWS Backup to configure automated Aurora cross-Region hourly snapshots. In case of DR, build the most recent Docker image and upload the Docker image to an ECR repository in the DR Region. Use the CloudFormation template that has the most recent Aurora snapshot and the Docker image from the ECR repository to launch a new CloudFormation stack in the DR Region. Update the application DNS records to point to the new ALB.
Copy the CloudFormation templates to an Amazon S3 bucket in the DR Region. Configure Aurora automated backup Cross-Region Replication. Configure ECR Cross-Region Replication. In case of DR, use the CloudFormation template with the most recent Aurora snapshot and the Docker image from the local ECR repository to launch a new CloudFormation stack in the DR Region. Update the application DNS records to point to the new ALB.
Copy the CloudFormation templates to an Amazon S3 bucket in the DR Region. Use Amazon EventBridge to schedule an AWS Lambda function to take an hourly snapshot of the Aurora database and of the most recent Docker image in the ECR repository. Copy the snapshot and the Docker image to the DR Region. In case of DR, use the CloudFormation template with the most recent Aurora snapshot and the Docker image from the local ECR repository to launch a new CloudFormation stack in the DR Region.
Copy the CloudFormation templates to an Amazon S3 bucket in the DR Region. Deploy a second application CloudFormation stack in the DR Region. Reconfigure Aurora to be a global database. Update both CloudFormation stacks when a new application release in the current Region is needed. In case of DR, update the application DNS records to point to the new ALB.
Explanations:
This option does not ensure that the Docker images are replicated in the DR Region in advance, which can lead to exceeding the RTO due to the time required to build and upload images from the Dockerfile. While it meets the RPO of 8 hours with hourly Aurora snapshots, the rebuilding of Docker images could take longer than the RTO requirement of 2 hours.
This option leverages automated cross-Region replication for both the Aurora database and the ECR repository, ensuring that the most recent Docker images and database snapshots are available in the DR Region. This approach meets the RPO and RTO requirements as it allows for quick recovery without the need to rebuild images or take new backups during a disaster.
While this option includes hourly snapshots, it relies on a Lambda function to manage the copying of both the Aurora snapshots and Docker images. This can lead to delays if the function fails or if there are issues with the Lambda execution, potentially impacting the ability to meet the 2-hour RTO during a disaster recovery scenario. Additionally, it does not ensure that images are pre-staged in the DR Region, which could delay recovery.
Deploying a second CloudFormation stack and configuring Aurora as a global database complicates the solution and does not provide a clear DR strategy that meets the 8-hour RPO and 2-hour RTO. This option also implies a continuous update process that might lead to errors or delays in the event of a disaster, which could breach RTO requirements. Furthermore, global databases can increase costs and complexity without significant benefits for DR purposes.