What is Amazon ELB?
Amazon Web Services' Elastic Load Balancer (AWS ELB) integrates seamlessly with Amazon's other cloud services. AWS ELB spins up new ELB instances without manual intervention to meet high-demand periods and scales them back in off-peak hours to get the most out of your IT budget.
AWS ELB use cases
For years network architects relied on physical hardware known as load balancers to divvy network traffic to multiple physical servers and ensure a fast user experience. Today, in hybrid and native cloud-based infrastructures, virtual devices known as elastic load balancers replace their physical forerunners and scale your network automatically as demand ebbs and flows. When an organization allocates more than one server to handle requests for a website or business application, a load balancer distributes requests between them. The purpose of a load balancer is to spread requests between a group of servers, preventing any individual server from becoming overloaded with requests.
Below is a brief overview of working with AWS ELB and intelligently managing the mountains of web access requests or REST API requests to serve even if the servers from the web cluster have failed. AWS ELB balances the traffic evenly by balancing the load between multiple servers. In the event of a server failure, it sends the request to the working instances of web servers by rerouting the request that the non-responsive server might have received.
In addition to plain old faster workflow and user experience, AWS ELB can enable powerful performance improvements. Some benefits of applying load balancing across your AWS environment:
SSL Termination
AWS ELB works with a secure socket layer and certificates to encrypt traffic between the load balancer and the client via HTTPS connection. AWS ELB is the end of the line for incoming traffic, which must pass strict checks against access control lists (ACLs) before moving on to EC2 instances and hosted resources. AWS ELB replicates routing table rules in real-time with ELB autoscaling, greatly simplifying dynamic enterprise security.
Session "stickiness"
AWS ELB can assign a user session to a particular instance with the "stickiness" configuration. The session can be sticky for a time specified in the ELB cookie and served by itself or matched to the application cookie. The ELB cookie controls the application developer when matched with the application cookie.
Dynamic load distribution
Set parameters for latency tolerance, and your AWS ELB will do the rest. For instance, ELB can monitor your response metrics and deploy one or many more instances of resources to ensure they remain readily available to users worldwide, no matter how heavy the network traffic is.
Here's a look at the two distinct methods of elastic load balancing Amazon utilizes.
Related services of AWS Load Balancer
Elastic Load Balancing works with the following services to improve the availability and scalability of your applications.
Amazon EC2 is a virtual server that runs your applications in the cloud. You can configure your load balancer to route traffic to your Amazon EC2 instances.
Amazon EC2 Auto Scaling runs your desired number of instances, even if an instance fails. Amazon EC2 Auto Scaling also enables you to automatically increase or decrease the number of instances as the demand for your instances changes.
An Auto Scaling group contains a collection of EC2 instances treated as a logical grouping for automatic scaling and management purposes. If you enable Auto Scaling with Elastic Load Balancing, it automatically registers instances with the load balancer. Instances terminated by Auto Scaling are automatically de-registered from the load balancer.
AWS Certificate Manager allows you to specify certificates provided by ACM when you create an HTTPS listener. The load balancer uses certificates to terminate connections and decrypt requests from clients.
Amazon CloudWatch monitors your load balancer and takes action as needed.
Amazon ECS: Run, stop and manage Docker containers on a cluster of Amazon EC2 instances. You can configure your load balancer to route traffic to your containers.
AWS Global Accelerator improves the availability and performance of your application. Use an accelerator to distribute traffic across multiple load balancers in one or more AWS Regions.
Amazon Route 53 routes visitors to websites by translating domain names into the numeric IP addresses that computers use to connect a load balancer. You can map your domain name to a load balancer.
AWS WAF and AWS Application Load Balancer allow or block requests based on the rules in a web access control list (web ACL). For more information, see the AWS WAF Developer Guide.
Two kinds of elastic load balancers
In cloud environments, the days of physical load balancers are long gone. AWS Elastic Load Balancing supports the following load balancers: AWS Application Load Balancer, AWS Network Load Balancer, and Classic Load Balancer. Amazon ECS services use these types of load balancers. An Application Load Balancer routes HTTP/HTTPS (or Layer 7) traffic. Network Load Balancer and Classic Load Balancer route TCP (or Layer 4) traffic.
The AWS load balancer comes in two distinct types of virtual load balancing to fine-tune your application performance. These include:
- Classic Load Balancer (CLB) This resembles traditional load balancing, but virtual devices replace physical hardware to evenly distribute incoming requests and ensure a clean, fast user experience.
- Application Load Balancer (ALB) An Application load balancer identifies incoming traffic and directs it to the right resource type. For example, it can route URLs tagged with /API extensions to the appropriate application resources while directing traffic bound for /MOBILE to resources managing mobile access.
Both types of load balancing offer improved availability and a wealth of logging data you can use for deep insights and real-time analytics about your operations. You can use the logs in AWS ELB to track metrics, such as:
Request count
Chart traffic globally and at the resource level to know what users need and when they need it—surge queue length. If requests stack up faster than resources can process, AWS ELB puts them in a queue and takes them as compute power becomes available. This count lets you know how often and how many requests have to wait in line.
Latency
Know if resources in specific availability zones are performing poorly and, if necessary, create new instances in nearby zones to handle the traffic. With cross-zone load balancing, each load balancer node for your Classic Load Balancer distributes requests evenly across the registered instances in all enabled Availability Zones. If cross-zone load balancing is disabled, each load balancer node distributes requests evenly across the registered instances in its Availability Zone only.
These and other metrics can be monitored and configured to trip alarms through built-in logging capabilities.
Real-time analytics with AWS ELB logging
Amazon's Classic and application load balance solutions integrate directly with Amazon Cloudwatch and Cloudtrail to provide consistent, current data on the nitty-gritty details of how your network is performing, who is visiting, and what they're doing. Sumo Logic provides an integration for AWS Elastic Load Balancing to optimize your ELB configuration with visual log analytics. Learn more about leveraging proactive analytics and visualization for actionable operations forensics.
FAQs
What are the differences between Classic Load Balancer and Application Load Balancer on AWS?
When comparing Classic Load Balancer and Application Load Balancer on AWS, there are key differences to consider:
Classic Load Balancer:
Operates at both the application and network layers
Ideal for applications that rely on the TCP protocol
Suitable for simple load-balancing needs
Application Load Balancer:
Operates strictly at the application layer
Supports multiple types of content-based routing
Offers advanced routing capabilities like host-based and path-based routing
How can I optimize Load Balancer Capacity Units (LCU) to improve performance?
Distribute your workloads evenly across target instances to ensure optimal resource utilization and prevent overloading any single instance.
Monitor traffic patterns regularly to anticipate peak demands and adjust your LCU allocation to handle sudden spikes effectively.
Categorize your target instances into different target groups based on their functionalities.
Enable auto-scaling for your EC2 instances to adjust capacity automatically based on changing traffic conditions, ensuring a seamless and responsive load-balancing experience.
Utilize AWS ELB monitoring tools to track LCU usage and performance metrics, enabling you to fine-tune your settings for optimal efficiency.
Complete visibility for DevSecOps
Reduce downtime and move from reactive to proactive monitoring.