11

Can somebody point out the similarities and differences between the normal CNAME record and Amazon's Route 53 ALIAS record. ?

pradeepchhetri
  • 2,698
  • 6
  • 37
  • 47

2 Answers2

28

Both CNAMEs and alias records provide a level of indirection, i.e. it's a pointer to another location which requires an additional step to find the answer. The difference is who performs this additional step.

With CNAME records the additional step is done by the client. The server simply returns the configured value of the CNAME record, and the client is responsible for then looking up that name to find the A/AAAA record.

With alias records the additional step is done by the server. The server takes the configured value of the record and actively resolves this to find the A/AAAA record. It then returns this result to the client as an A/AAAA record, and the client doesn't need to do anything to get the final answer. The client doesn't even know that the server did this, it simply sees a plain A/AAAA record.

The Route53 documentation has more detail on alias records. At the moment alias records can only point at ELB hostnames or at a hostname in the same zone.

mgorven
  • 30,615
  • 7
  • 79
  • 122
  • Update on what Alias resource record set can point to: a CloudFront distribution, an Elastic Beanstalk environment, an ELB Classic or Application Load Balancer, an Amazon S3 bucket that is configured as a static website, or another Amazon Route 53 resource record set in the same hosted zone. – KJH Aug 18 '17 at 00:37
2

CNAMEs can't be used for the domain apex (i.e. example.com) without oddities. ALIAS records act essentially like CNAMEs behind the scenes, but present themselves as A records to requesting systems.

ceejayoz
  • 32,910
  • 7
  • 82
  • 106
  • Whether its necessary that the alias record must be of some ELB..can't it be any host running software load balancer..?? – pradeepchhetri Aug 20 '12 at 20:50
  • It's a lot easier for Amazon to know what's happening behind-the-scenes in AWS than someone else's system. It'd be possible to build a similar system that works for external hosts... but in most cases you'd be better off just having a static IP and an A record. – ceejayoz Aug 20 '12 at 22:30