The Building Blocks of Route 53 Routing
Every DNS record in Route 53 has a Routing Policy — the rule that determines how Route 53 responds to queries. There are six policies in total. This section covers the three foundational ones.
1. Simple Routing
Simple routing is the default. You create one DNS record that maps a name to one or more IP addresses. When a query arrives, Route 53 returns all the values you configured, and the client picks one at random.
- Use Case: Single-server websites, development environments, or any scenario where you have one destination and no need for health-based routing.
- Critical Limit: You cannot attach a Health Check to a Simple routing record (except when using Alias records pointing to AWS resources). If your single server crashes, Route 53 keeps returning its IP address regardless.
www.example.com → Simple → 54.12.34.56
2. Weighted Routing (The "Traffic Knob")
Weighted routing lets you assign a numeric weight (0–255) to multiple records for the same DNS name. Route 53 distributes traffic proportionally based on those weights.
The math: If Server A has weight 10 and Server B has weight 90, the total weight is 100. Server A receives 10/100 = 10% of traffic, Server B receives 90%.
www.example.com → Weighted → Server A (weight: 10) → 10% of traffic
www.example.com → Weighted → Server B (weight: 90) → 90% of traffic
Special weight values:
- Weight = 0: Route 53 stops sending traffic to that record entirely. Use this to take a server out of rotation without deleting the record.
- All weights = 0: Route 53 treats all records equally and distributes traffic evenly.
Primary use cases:
- Canary deployments: Deploy a new version and send it 1% of traffic (weight: 1 vs weight: 99). Monitor error rates. Gradually increase the new version's weight.
- Blue/Green deployments: Shift traffic from the old environment (blue) to the new one (green) incrementally, with the ability to instantly roll back by setting the green weight to 0.
- A/B testing: Split traffic between two UI variants to measure conversion rates.
You can attach Health Checks to Weighted records. If a weighted record becomes unhealthy, Route 53 redistributes its traffic share among the remaining healthy records.
3. Multi-Value Answer (Client-Side Load Balancing)
Multi-Value routing returns up to 8 healthy IP addresses in response to each DNS query, in random order. The client (browser, mobile app, SDK) picks one and connects to it.
The key differentiator from Simple routing: You can attach a Health Check to each record. Route 53 will silently omit unhealthy IPs from the response. If you have 10 servers and 3 are unhealthy, clients only ever see the 7 healthy ones.
api.example.com → Multi-Value → [10.0.1.1, 10.0.1.2, 10.0.1.3, ...] (up to 8 healthy)
Use Case: Lightweight, client-side load balancing without deploying an Application Load Balancer. Suitable for internal microservices or scenarios where you want basic redundancy without the cost and complexity of a dedicated load balancer.
Important caveat: Multi-Value is not a replacement for a proper load balancer. It has no sticky sessions, no SSL termination, no path-based routing, and no connection draining. It is DNS-level distribution only.
Interviewers frequently ask: "What's the difference between Multi-Value routing and an Application Load Balancer?" The answer: Route 53 Multi-Value operates at the DNS layer — it returns multiple IPs and lets the client choose. An ALB operates at Layer 7 (HTTP), inspects request content, handles SSL termination, supports sticky sessions, and performs health checks at the connection level. Multi-Value is a complement to ALBs for simple use cases, not a replacement. Also note: Multi-Value cannot be used with Alias records pointing to AWS resources like ALBs.