Load Balancer Architectures – Network Design – ANS-C01 Study Guide

Load Balancer Architectures

ELB architectures include Internet-facing or internal configurations. When assigned a public IP address and configured to be reachable from the Internet, an AWS Elastic Load Balancer instance can service public connections by acting as a front end to the backend services that can be inaccessible to the public and be in a private VPC for security.

ELBs can be used for internal VPC architectures to load balance inside your environment in a private VPC, for example.

Listeners

A listener is an IP address/port number combination that accepts incoming connections to the load balancer. When configuring listeners, you set how the connection requests are processed and sent to the backend services called targets.

Listeners support HTTP and HTTPS connections on a port that you define between 1 and 65535. TCP offload can be set to decrypt SSL/TLS connections on the ELB to eliminate the server decryption workload. Listeners support WebSockets HTTP/2 and can service up to 128 parallel requests per connection.

A listener must have a rule assigned to it to set the priority, actions to be performed, and any conditions. Rules can be added, removed, or edited after the ELB has been brought online. If there are no custom rules defined, then the default rule is used. Conditions in the rules can be applied using a large number of parameters such as source IP, header values, and methods such as GET or PUT or URL, plus many others.

Actions include how authentication is to be handled such as using AWS Cognito and who the identity providers will be, HTTP responses, x-forwarded headers, redirects, and subdomain and top-level domain names.

Target Groups

A target group is a listing of endpoint targets used to make backend connections to. Target groups are defined when setting a rule for the listener. When conditions are met in the rule, traffic is forwarded to the target groups. Different target groups get created for different request types and applications running on the backend target and servers.

Health checks are created in the target group as they may need to be compatible with the specific configurations for the servers in the group. If the health checks are healthy, connections are allowed to the target servers.

Health Checking

One of the advantages of using a load balancer is to achieve high availability by checking to see if the backend servers are healthy before sending connections to them. For example, if you have 10 web servers in a pool, the ELB will send periodic health check requests to them to make sure they respond. If there is no response, the server is considered to be down and removed from the pool.