If you’re running your applications in Amazon Web Services / EC2, you need some load balancing to make sure your web servers don’t get overloaded. Amazon offers Elastic Load Balancing (ELB) natively, but is it the best option for you? This blog explains the differences between Amazon ELB and Application Delivery Controllers (ADCs).
If you only need a basic load balancer to manage where to send and receive traffic within your AWS environment, then ELB might be enough. But if you’re running business-critical applications and you need to make sure they are always available, are running as fast as possible, are protected from attacks, and display real-time telemetry and performance data, then you might need additional functionality that ELB cannot provide. You might require a complete ADC like Snapt Aria, which provides a full-featured, high-performance software load balancer, web accelerator, WAF and GSLB.
Furthermore, if you are running applications in more than one public cloud or in multiple locations, which is increasingly common – e.g., a multi-location, multi-cloud deployment in AWS and Azure – it’s difficult to rely on cloud-specific proprietary technology. A far better option in this case is a centrally managed, highly scalable ADC solution like Snapt Nova, which is designed to provide consistent ADC services across any cloud environment in any location. Nova is a powerful, lightweight solution that integrates easily with AWS and is available on a flexible, pay-as-you-go basis.
What is ELB?
Amazon’s ELB service supports several types of load balancing, defined as follows:
- Application Load Balancer: routes traffic at the application layer (Layer 7) – that is, HTTP/HTTPS traffic
- Network Load Balancer: routes traffic at the transport layer (Layer 4) – that is, TCP/SSL traffic
- Classic Load Balancer: routes traffic at either Layer 4 or Layer 7 layers and has a fixed relationship between the load balancer port and server port.
ELB vs. ADC: Summary
What’s the difference between Amazon’s ELB and Application Delivery Controllers, like Snapt Nova or Snapt Aria? In short, ADCs deliver more features and better reporting. In addition to Layer 7 load balancing, ADCs include a web accelerator, Web Application Firewall (WAF) and observability features.
- Web Accelerator: Optimizes your website and speeds up response times by offloading servers, terminating SSL traffic, caching content, and minimizing and compressing content automatically.
- Web Application Firewall (WAF): Protects and secures your website from attacks such as Denial of Service (DoS) and enables you to create blacklists, whitelists and geographic rules to block bad users, prevent bots and scripts, and stop data leaks.
- Observability: Snapt’s ADCs monitor all Layer 7 stats and generate reports and alerts so that you always have real-time visibility into how your servers are performing, with early detection of traffic anomalies or changes in traffic patterns.
ELB vs. ADC: Detailed Comparison
There are more differences to be aware of when comparing ELB to an ADC like Snapt Aria or Snapt Nova. Here are some of the key considerations:
Port and Protocol Control
ELB limits the ports, protocols, health checks and content you can load balance through various rules. In contrast, Snapt has no restrictions and can run on any TCP port or protocol combination.
Load Balancing Methods
ELB has fewer capabilities when it comes to supporting different load balancing methods compared to Snapt. Snapt allows many advanced load balancing methods such as source hashing to least connections, URL-based balancing and more. Within these protocols, you can also have finite control over the maximum connections to a server, max queue size and weights, to name only a few.
ELB does not handle large variances in traffic well. It’s designed to grow steadily or shrink steadily but not to handle a burst of 1000x the normal traffic you receive. If your traffic is unpredictable, then Snapt’s ADCs are a better solution.
ELB offers auto-scaling, which is a fantastic feature that is also supported by Snapt. Snapt Aria integrates directly with the AWS EC2 application programming interface (API) to allow auto-scaling load balancing with faster down-detection than any other solution. In addition, Snapt Nova has its own autoscaling capability that dynamically launches and tears down ADCs based on traffic patterns.
ELB has a fixed timeout of 60 seconds, which means large files or other requests that take a long time can timeout. It also means you can’t close timeouts before then. In contrast, Snapt Aria allows you to customize timeouts for clients, servers and connections.
Internal Load Balancing
You might want to load balance inside of EC2, but not in a virtual private cloud (VPC) – for example, database servers or messaging servers. You cannot do that with ELB, but you can with Snapt.
ELB does not provide logging. Snapt gives you detailed performance logs and graphs as well as full TCP or HTTP logging. You can configure Snapt to automatically send logs via Syslog, allowing easy integration with any service.
Snapt provides full 24x7x365 support for its products and will support your EC2 load balancing installation. We have experienced EC2 engineers on our support staff and are ready to help.
ADCs Optimized for AWS EC2
One key benefit of ELB is its native relationship with AWS / EC2. ADCs like Snapt Aria and Snapt Nova can meet a similar level of integration through extensive use of Amazon's APIs and Marketplace.
Snapt Aria is optimized for easy installation in EC2. You can launch a Snapt Aria Amazon Machine Image (AMI) quickly from the Amazon Marketplace. Aria also includes a free optional EC2 plugin that will integrate with Amazon’s EC2 API to allow specifying EC2 instances including auto-scaling instances as Snapt Aria virtual load balancer backend/upstream servers.
For hyperscale / multi-cloud deployments, Snapt Nova is also optimized for AWS EC2 and supports AMI-based service discovery, automated deployments, dynamic scaling as well as Global Server Load Balancing for multiple AWS Regions.