Amazon Web Services is a popular option for application hosting, but it’s not necessarily the best choice for your needs. Once you understand exactly what you get out of Amazon’s Elastic Load Balancing, you can make an informed decision on whether you need to go beyond the functionality offered by this service.
AWS’ ELB routes your traffic to Amazon EC2 instances as it comes in from your application. You have two types of load balancing you can use with this service. The Classic Load Balancer looks at network or application traffic to determine which EC2 instance to route the requests to. The Application Load Balancer uses more factors to determine how the traffic should move around EC2.
The Drawbacks of ELB
You face several challenges when you rely on ELB for your application. Ports and protocols have many limitations through this service, so you have to build around Amazon’s requirements rather than what works best for your app. While the two load balancing types cover many use cases, if you want to go outside the box at all, Amazon ends up falling short. Another limitation is the timeout setting, which is set at 60 seconds. You can’t make this shorter or longer, and the lack of flexibility makes it hard to optimize your app.
ELB scaling works well if you have predictable traffic trends, such as a steady growth curve. However, if your app is a runaway success or you get viral attention, it can’t keep up with the load. Another frustrating aspect of ELB is the lack of logging. When you’re trying to troubleshoot a problem with balancing, you’re working in the dark.
When You Should Use Amazon ELB
If you’re working with limited resources or only need basic load balancing, ELB works out quite well. You have two straightforward ways to handle your application’s traffic, and if you have a consistent growth pattern, you’ll be able to get the fault tolerance, failovers and auto-scaling that gives you a seamless experience.
When You’re Better Off Using Another Load Balancing Service
Amazon isn’t the only game in town for load balancing. Alternatives to ELB provide more robust and customizable options for working with your app traffic. For example, Snapt enables you to use any variation of TCP port and protocol so you can pick what’s best for your app. The load balancing options includes settings to balance based on URL, connections, maximum connections and many more traffic characteristics.
ELB limitations no longer stand in your way when you choose an alternative service. You can set the request timeout and get access to your logs. The scaling is well suited for any type of traffic, whether it’s predictable or not. Most ELB alternatives use EC2, so you still get to take advantage of Amazon AWS infrastructure and high availability without having to deal with their built-in load balancing. Snapt is available directly through Amazon’s marketplace, so you don’t have to worry about complicated deployment.
Amazon ELB is sufficient as a basic balancer, but when you need more control and flexibility, the alternatives stand out. Take the time to explore your options so you can give your app an optimized balancer that meets its needs, rather than go with Amazon as the de facto choice.
See some of the Snapt load balancer features.