amazon-web-servicesamazon-ec2dnsamazon-route53multi-tier

A better usage of Weighted Round Robin Routing in Amazon Route 53


The question might not be as fundamental as you thought. First of all, thanks for reading it. I am a computer science student. I just begin to learn about AWS, especially the Route 53 so please forgive me if there is anything that hurts your eyes :)

We all know that Amazon Route 53 provides customers with the ability to route users to EC2 instances, S3 buckets, and elastic Load Balancers across multiple availability zones and regions and there are different forms of DNS load balancing including:

  • LBR/Latency Based Routing, to route to the region with the lowest latency
  • WRR/Weighted Round Robin, to assign weights to different targets

Also, user-specified configurations that combine both are possible (LBR+WRR).

Route 53 flexibility allows users to save costs, however manual configuration can become increasingly complex for final users. Looking for the best non-probabilistic policy (such as the WRR weights) is NP-complete.

What are the possible cases that we need to give server ip addresses different weight ? given that there can be EC2 servers that across multiple availability zones and instances can contain both front end and back end or contain either application tiers or databases only ? Are there any ideas of finding a possible better usage of Route 53 in combination with other AWS services, in order to improve the performance of interactive multi-tier cloud applications ?

Sorry for the lengthy question. I am looking for thoughts and ideas about the best way/starting point to experiment about the better usage of Route 53 and in combination with other AWS services for a multi-tier cloud application. Not necessarily a 100% correct answer. Any ideas or suggestions are welcomed. Many thanks in advance !

UPDATE:

I should probably rephrase the question: What is the purpose of having Weighted record set in Route 53 i.e in a DNS service ? Obviously, WRR in DNS can control potions of traffic but if we simply rely on this DNS load balance (or load distribution) we are going to put heavy workload on the many other DNS servers. One case I could think off is that web sites like google or Facebook will potentially gets tons of tons domain name queries, WRR DNS load balancing can be useful and there has to be some sort of session stickiness since sharing session across servers seems to be a bad idea.

Are there any other way / purpose of using Weighted record in Route 53.

Thank you very much for considering my question !


Solution

  • One use case can be, to use it to load balance internal services that can't be balanced using an elastic load balancer, like a rds or elastic cache read replicas, so instead of creating a ec2 instance with a haproxy for example to load balance your services, you can create a Route 53 level balancer based on weights or latency.

    My guess is that internally, they use a custom load balancer at the dns server, that balance requests based on domain aliases and the selected balancing policy.