ELB Types

There are 3 kind of load balancer on AWS

  1. Application Load Balancer (ALB)

  2. Network Load Balancer (NLB)

  3. Gateway Load Balancer (GWLB)

Some load balancers can be setup as internal (private) or external (public) ELB.

(1) Application Load Balancer (ALB)

Application load balancers is Layer 7 (Http). It support for Http/2 and websocket apart from this it is able to redirect HTTP to HTTPS. It routes traffic to different target group. Target group can be inside the same machine (multiple containers) or across machine (multiple applications).

There are a lot of way routing traffic including.

  1. Routing based on path in URL - example.com/users - example.com/posts

  2. Routing based on hostname - one.example.com - two.example.com

  3. Routing based on Query String , Headers - example.com/users?id=123&order=false - example.com/users?id=123&order=true

Usecase

  • Microservice

  • Container based application

**Good to know

  • Application server (target group) don't see the ip of the client directly. Load balancer will attach the header X-Forwarded-For , X-Forwarded-Port and X-Forwared-Proto in the request so you can get IP , Port and Protocol from its.

(2) Network Load Balancer (NLB)

Network load balancers is Layer 4 (TCP/UDP). It allow to forward TCP & UDP traffic to instances. It handles milion request per seconds (High performance). NLB has one static IP per AZ and support assign Elastic IP. It supports for HTTP , HTTPS and TCP/UDP.

Usecase

  • High performance load

  • Control TCP/UDP

(3) Gateway Load Balancer (GWLB)

Gateway Load Balancer is Layer 3 (Network Layer). It is a single entry/exit for all traffic. This load balancer will forward request to virtual appliance for fraud detection or something . It used GENEVE protocol on port 6081.

Usecase

  • Firewall

  • Prevention System

  • Payload Mainpulation

Last updated