We need to ensure our application can survive a total AWS Region outage. I’m looking at setting up a secondary region, but I’m confused about how to handle the database synchronization and the DNS failover. Should we use RDS Multi-AZ or RDS Global Databases? Also, how do we configure Route 53 to automatically route traffic to the healthy region during a disaster?
3 answers
What is your target Recovery Time Objective (RTO) and Recovery Point Objective (RPO)? This will determine if you need an "Active-Active" or "Active-Passive" setup.
Don't forget about S3 Cross-Region Replication (CRR). Your static assets and user uploads need to be available in the secondary region just like your database.
Good catch, Barbara. Without the S3 assets, your app might boot up in the new region but look completely broken to the end-users.
For true Multi-Region Disaster Recovery, you should move beyond Multi-AZ, which only protects you from a single data center failure. Use RDS Global Databases; they provide fast, storage-based replication across regions with typical latencies of under a second. In the event of a regional outage, you can promote the secondary cluster to full read/write status. For the traffic, use Route 53 "Failover Routing" policies combined with Health Checks. Route 53 will monitor your primary endpoint and, if it goes down, automatically update the DNS record to point to your secondary region's load balancer. This minimizes downtime without manual intervention.
Matthew, we are aiming for an RTO of under 15 minutes. We decided on an "Active-Passive" pilot light approach to save on costs. We keep a minimal version of our environment running in the secondary region and scale it up only when Route 53 triggers the failover. The RDS Global Database ensures our RPO is near-zero because the data is already there. It’s a delicate balance between cost and speed, but this setup gives our board the confidence that a single region outage won't take our business offline for hours.