This blog started out as a SaaS blog. After a while it moved into Android. I’m going to bring it back to its roots (sort of) with a post on IaaS (infrastructure as a service). I’ve been using Amazon AWS (Amazon Web Services) for about 2 years now. It has been fantastic. I’ve done research on other IaaS and PaaS providers (Microsoft, Rackspace, etc.) and I am extremely happy with the service, usability, and price that I get from Amazon.
One of Amazon’s cool services is called Auto Scaling. It allows you to automatically add/remove servers from an “Auto Scaling Group” as user load increases or decreases. The Auto Scaling group monitors itself (using a service called CloudWatch) and if an alert occurs then a server is automatically added or removed from the group. (Server are added to handle more user load; they are removed to save you money.)
And for the most part, setting this up is a huge pain in the butt… until now.
But before I describe why it’s a pain, here is an example of how Auto Scaling works:
- You have 1 server running in an Auto Scaling Group
- User load suddenly spikes and that server’s CPU usage is at 90%
- You are asleep, so you have no way of knowing this is happening and thus no way of quickly increasing the number of servers to improve performance for the user spike
- Fortunately, CloudWatch is set up to check if CPU usage is over 90% on that server and if it is it sends an alert/trigger…
- A new server is added to the Auto Scaling Group and added to a Load Balancer that is part of that Auto Scaling Group
- Now, automatically, 2 servers exist in your farm, load balanced, and user load can be handled literally without a hitch. CPU usage is down to 40% on each server and CloudWatch ends the alert.
I use EC2 servers exclusively for some of my projects and for me Auto Scaling is one of the main reasons for using Infrastructure as a Service with Amazon.
Amazon AWS has an amazing user interface that allows you to interact with almost all of their services. But for some reason… there is no Graphical User Interface for AWS Auto Scaling. You need to download command line tools for Auto Scaling and CloudWatch, set those up with your keys, then figure out the commands and pre-requisites in order to set up all that I mentioned above.
Until Amazon completes their own implementation of a GUI for Auto Scaling, here is a tool that will help: EZAutoScaling. The entire online tool/website is dedicated to 1 thing only: a user-friendly way of managing AWS Auto Scaling.
The tool is not free, but the price is very cheap: $1/month/auto scaling group up to a maximum of $5/month. The tool will not be live to the general public until February 2013, but if you sign up before then you will get free usage of the tool for 3 months.
There are other online tools that also offer a GUI for Auto Scaling, one such tool being Ylastic, but Ylastic offers a lot more services than Auto Scaling and it comes with a minimum price of $25/month. Most of the GUI that Ylastic offers is already offered by Amazon, though Ylastic does a great job of making it look extremely pretty and useful.
I find EZAutoScaling more interesting than Ylastic only because I am a “small start-up” kind of guy, and as such I don’t have a lot of money to spend. I only require 1 single service that I cannot get from Amazon and that is a user-friendly interface for Auto Scaling. EZAutoScaling offers just that for a very small price. In comparison, I don’t want to pay $25/month just to use Auto Scaling from Ylastic.
If you need a simple online tool for AWS Auto Scaling give EZAutoScaling a try (or until February 2013, sign up for a limited free account).