Search code examples
amazon-web-servicesamazon-elb

How scaling of load balancer is done in AWS application load balancer?


I am going to implement gitlab reference architecture of 2k users. Ref: gitlab 2k users architecture

In this reference document they have mentioned to use c5.large for load balancing node. Now I want to use AWS provided Load balancing service so want to know how AWS provided load balancer auto scale themselves as I am not getting any option to choose specific instance type for load balancer in AWS.

I have tried searching this in AWS documentation but could not find any link where it's mentioned how load balancer works in backend. Please share if you have any links for it.


Solution

  • AWS Elastic Load Balancing service is fully managed and scales with your traffic. You cannot configure the underlying infrastructure. If extreme performance is required, consider the AWS Network Load Balancer.

    Use Network Load Balancers for TCP, UDP, and TLS traffic where extreme performance is required.

    I see your confusion on the GitLab docs about setting up the infrastructure.

    The table currently states: gitlab's load balancer requirements

    with the footnote gitlab's footnote on load balancer

    So, if you want to set up and manage your own load balancing e.g., on AWS EC2 instances, you would need at least c5.large instance type.

    The footnote also states, that GitLab works with the managed load balancing services of AWS. Those are designed for high availability and high throughput. See their feature list here: AWS Elastic Load Balancing Features

    Side note: I clicked through the GitLab docs a bit and found a note to not rely on round robin algorithm.

    We don’t recommend the use of round-robin algorithms as they are known to not spread connections equally in practice.

    In AWS, round robin is the default routing algorithm. But this is something you can configure in AWS.

    Here is also the link to AWS documention on how the Elastic Load Balancing service works.