A Distinction That Matters for Cost and Functionality
This is one of the most commonly tested Route 53 concepts in AWS certification exams and interviews, yet it's frequently misunderstood.
CNAME Records (Standard DNS)
A CNAME (Canonical Name) record maps one DNS name to another DNS name. The client must perform a second DNS lookup to resolve the target.
api.example.com CNAME my-alb-1234567890.us-east-1.elb.amazonaws.com
Limitations:
- Cannot be used at the Zone Apex (root domain). You cannot create a CNAME for example.com itself — only for subdomains like www.example.com. This is a fundamental DNS specification constraint (RFC 1034), not an AWS limitation.
- Costs money: Route 53 charges for CNAME queries.
- Adds latency: Requires an additional DNS lookup to resolve the CNAME target.
Alias Records (Route 53 Extension)
Alias records are a Route 53-specific extension to DNS. They look like A or AAAA records to the outside world, but internally Route 53 resolves the alias target and returns the final IP addresses directly.
example.com A (Alias) my-alb-1234567890.us-east-1.elb.amazonaws.com
Advantages:
- Can be used at the Zone Apex. You can create an Alias record for example.com pointing to an ALB, CloudFront distribution, or S3 website endpoint.
- Free queries: Route 53 does not charge for Alias record queries to AWS resources.
- Automatic IP tracking: If the ALB's IP addresses change (which they do — ALBs are dynamic), Route 53 automatically tracks the change. You never need to update the record.
- Health Check integration: Alias records to AWS resources inherit the health of the target resource.
Valid Alias targets (AWS resources only):
- Application Load Balancers, Network Load Balancers, Classic Load Balancers
- CloudFront distributions
- API Gateway endpoints
- Elastic Beanstalk environments
- S3 static website endpoints
- Other Route 53 records in the same hosted zone
You cannot create an Alias record pointing to an EC2 DNS name or an arbitrary external hostname.
| Feature | CNAME | Alias |
|---|---|---|
| Zone Apex support | ❌ No | ✅ Yes |
| Query cost | Charged | Free (to AWS resources) |
| Target type | Any hostname | AWS resources only |
| IP auto-tracking | ❌ No | ✅ Yes |
The classic interview question: "A customer wants to point their root domain example.com to an Application Load Balancer. They tried creating a CNAME but it failed. Why, and how do you fix it?" Answer: CNAMEs cannot be created at the zone apex — this is a DNS specification constraint. The fix is to create an Alias A record pointing to the ALB. Alias records are a Route 53 extension that resolves this limitation, and they're free for queries to AWS resources.