Which deployment strategy will meet these requirements?
Use AWS CloudFormation StackSets to deploy the API layer in two regions. Migrate the database to an Amazon Aurora with MySQL database cluster with multiple read replicas in one region and a read replica in a different region than the source database cluster. Use Amazon Route 53 health checks to trigger a DNS failover to the standby region if the health checks to the primary load balancer fail. In the event of Route 53 failover, promote the cross-region database replica to be the master and build out new read replicas in the standby region.
Use Amazon ElastiCache for Redis Multi-AZ with an automatic failover to cache the database read queries. Use AWS OpsWorks to deploy the API layer, cache layer, and existing database layer in two regions. In the event of failure, use Amazon Route 53 health checks on the database to trigger a DNS failover to the standby region if the health checks in the primary region fail. Back up the MySQL database frequently, and in the event of a failure in an active region, copy the backup to the standby region and restore the standby database.
Use AWS CloudFormation StackSets to deploy the API layer in two regions. Add the database to an Auto Scaling group. Add a read replica to the database in the second region. Use Amazon Route 53 health checks on the database to trigger a DNS failover to the standby region if the health checks in the primary region fail. Promote the cross-region database replica to be the master and build out new read replicas in the standby region.
Use Amazon ElastiCache for Redis Multi-AZ with an automatic failover to cache the database read queries. Use AWS OpsWorks to deploy the API layer, cache layer, and existing database layer in two regions. Use Amazon Route 53 health checks on the ALB to trigger a DNS failover to the standby region if the health checks in the primary region fail. Back up the MySQL database frequently, and in the event of a failure in an active region, copy the backup to the standby region and restore the standby database.
Explanations:
This option effectively addresses the latency and disaster recovery requirements by migrating to Amazon Aurora with read replicas, ensuring high availability and performance. Route 53 health checks enable automatic failover to the standby region, promoting the cross-region replica as the master.
While using ElastiCache for caching reads can reduce latency, the option does not provide a reliable disaster recovery solution since it relies on backups instead of real-time replication. The failover mechanism is less robust compared to Option A.
Although it proposes a read replica in a second region, the option incorrectly states to add the database to an Auto Scaling group, which is not applicable to a MySQL database. Also, it lacks the comprehensive multi-region setup found in Option A.
This option introduces caching but relies on backup restoration for disaster recovery, which can result in data loss or downtime. The health checks are on the ALB, which does not directly address the database’s availability, making this option less effective overall.