An organization is designing a high-availability architecture for its web application hosted at the zone apex (`example.com`). The application is deployed across `us-east-1` and `eu-west-1` behind regional Application Load Balancers (ALBs). The architecture requires low-latency routing for global users under normal operations, dynamic failover between regions if one region becomes unavailable, and fallback to an Amazon S3 static website hosting a maintenance page in `us-west-2` only if both primary regions are completely offline. Which Route 53 record configuration must be implemented to satisfy these requirements with the lowest management complexity?
- ACreate a Failover routing policy for the zone apex (`example.com`) containing two primary records pointing to the regional ALBs and one secondary record pointing to the Amazon S3 static website endpoint, with health checks enabled on all records.
- Create latency-based Alias records for `latency.example.com` pointing to the regional ALBs, with health checks enabled for each. Create a primary Failover Alias record for the zone apex (`example.com`) pointing to `latency.example.com` with Evaluate Target Health set to Yes. Create a secondary Failover Alias record for `example.com` pointing to the Amazon S3 static website endpoint.Answer
- CCreate latency-based CNAME records for the zone apex (`example.com`) pointing to the regional ALB DNS names, with health checks enabled for each. Create a secondary Failover CNAME record for `example.com` pointing to the Amazon S3 static website endpoint.
- DCreate latency-based Alias records for the zone apex (`example.com`) pointing to the regional ALBs. Create a Geolocation routing policy for `example.com` with a default record pointing to the Amazon S3 static website endpoint, relying on Route 53 to automatically fall back to the default record when the regional ALBs fail health checks.
Answer
Create latency-based Alias records for a subdomain, and point a primary Failover Alias record at the zone apex to that subdomain with Evaluate Target Health enabled, while pointing the secondary Failover Alias record to the S3 static website endpoint.
To achieve active-active-passive failover for a zone apex domain, you must use nested Route 53 records. Since the zone apex domain (`example.com`) cannot use CNAME records due to DNS limitations, Alias records must be used. First, latency-based Alias records are created for a subdomain (`latency.example.com`) pointing to the regional Application Load Balancers (ALBs) with health checks enabled. Next, a primary Failover Alias record is created for `example.com` pointing to `latency.example.com` with 'Evaluate Target Health' enabled. This configuration ensures that if at least one regional ALB is healthy, Route 53 evaluates the target (`latency.example.com`) as healthy and routes traffic to the latency-based records. If both regional ALBs fail their health checks, Route 53 evaluates the target as unhealthy and fails over to the secondary Failover Alias record pointing to the S3 bucket website endpoint.
Step-by-Step Solution
Key Concept
Active-Active-Passive DNS Failover using Nested Route 53 Alias Records