21. How would you design a multi-region AWS web application with regional failover?
Design an active-passive or active-active architecture for a public application that must continue when one region is unavailable. Cover global traffic routing, regional load balancing and compute, data replication and consistency, health evaluation, failover control, recovery objectives, and failback.
At a high level, the goal is to keep the public application running when one AWS region fails. The main challenge is moving users to another region while keeping the application and its data ready there. I would explain the design in three parts: global routing and health checks, the regional application stacks, and cross-region recovery. Route 53 and AWS Global Accelerator handle global entry, each region uses multi-AZ compute, and data is copied across regions. The trade-off is higher cost, operational complexity, and possible replication delay.
The application must continue serving users even when an entire AWS region becomes unavailable. The hard part is more than moving traffic. The backup region also needs healthy application capacity and recent data. The diagram uses an active primary region and a passive secondary region. Each region spreads the application across multiple Availability Zones. Important data is copied between regions in the background. Health signals control when traffic moves to the secondary region. After recovery, traffic is moved back carefully instead of switching immediately.
- What recovery time is acceptable after a regional outage?
- How much recent data can the business afford to lose?
- Should the passive region keep full capacity running or scale up after failover?
- Should failback be automatic or require an operator decision?
I would start with the global entry point because regional failover begins there. Users reach Amazon Route 53, which uses the primary-to-secondary failover policy shown in the diagram. AWS Global Accelerator provides static anycast IPs and sends traffic toward the regional application path. Health evaluation uses Route 53 health checks, Application Load Balancer target health, and CloudWatch alarms. The failover-control step also allows a manual override and suppresses repeated switching between regions.
During normal operation, the primary region is active. Traffic passes through AWS WAF, which provides the OWASP and bot controls shown in the diagram. It then reaches the Application Load Balancer over HTTPS. The load balancer sends requests to the web or application tier. That tier runs in Auto Scaling Groups across two Availability Zones. This means one Availability Zone can fail without removing all regional application capacity.
The application also uses ElastiCache Redis in the regional stack. Its durable database is Amazon RDS using an Aurora Global Database primary cluster. Amazon S3 stores shared assets and backups. Amazon SQS and SNS handle events and background jobs.
The passive region contains the same main application layers, so it can receive user traffic after a regional failure. Aurora Global Database copies changes asynchronously from the primary cluster to the secondary cluster. Asynchronous means the copy happens separately from the user request, so the secondary may be slightly behind. Amazon S3 uses Cross-Region Replication for the data shown in the diagram.
The diagram also shows cross-region handling for SQS and SNS. In a real AWS implementation, queues and topics do not automatically replicate between regions. This part needs explicit event forwarding or application logic while keeping the same cross-region recovery purpose shown in the diagram.
If the health evaluation decides that the primary region is unhealthy, the failover control sends traffic toward the secondary region. The secondary Application Load Balancer then distributes requests to its own multi-AZ application tier. The diagram targets an RTO below 15 minutes. RTO means the allowed time to restore service. It also shows an RPO below 5 minutes for Aurora Global Database. RPO means the amount of recent data that could be lost after a sudden failure.
When the primary region becomes healthy again, I would not move traffic back immediately. The diagram says to verify primary health, switch traffic back during a maintenance window, monitor the system, and then retire the temporary secondary role. CloudWatch, X-Ray, CloudTrail, GuardDuty, Security Hub, Systems Manager, and EventBridge support monitoring, security, automation, and operations across regions. The benefit is strong regional resilience. The downside is more infrastructure, more operational work, cross-region data-transfer cost, and possible replication delay.
The benefit is that a full regional outage does not have to stop the application. Each region also uses more than one Availability Zone, so smaller failures are easier to survive. The downside is cost and complexity. We keep infrastructure in a second region and copy data across regions. That creates extra transfer and operating costs. Aurora and S3 replication happen asynchronously, so the secondary copy can be slightly behind. Failback also needs care because switching traffic back too quickly can cause repeated changes. A passive region may also need time to scale after failover.
Interviewers ask this question to see whether you can design for a full regional failure, not only a server failure. They want to understand your judgment around global routing, regional load balancing, multi-AZ compute, data replication, health checks, recovery targets, and failback. They also want you to explain trade-offs clearly and avoid unrealistic claims such as instant failover, zero replication delay, or perfect availability.










