An Overview of Auto Scaling on Amazon Web Services
Recently I talked about how changing seasons can affect computing needs. It’s inefficient to size your environment for only a few months of heavy activity. A more efficient solution is to use a cloud platform to scale your environment as needed. Now that we’ve established the concept, let’s examine how this actually works. Each cloud provider has their own implementation method and for this example we’ll use Amazon’s.
The first building block in our solution is an Amazon EC2 instance. An instance is simply a server running an OS. In our case we would have a virtual instance running our application server of choice. It could be Tomcat, Weblogic, IIS or your own custom server. The key to shifting to a scalable cloud environment is that your servers are stateless. That is, no relevant data is stored on them. They can attach to shared storage as required but they have to be able to be cloned and decommissioned as demand requires.
The second item in our solution is a load balancer. Relate this to the same one that you use today for multi-server scaling. For the load balancer to work it needs to be able to dynamically add and remove nodes from your cluster of servers through a command line or API. AWS contains dynamic load balancers that we can use as part of our environment.
As this point nothing I’ve described is really new to you. You’re probably not seeing anything to make you jump and want to implement your solution on the cloud. Let me change that with the next few items.
There are two Amazon toolkits to install on your main nodes that are at the center of the auto scaling feature set. They are the Auto Scaling toolkit, and the Cloud Watch toolkit.
Cloudwatch is Amazon’s offering that lets you see what’s going on inside of your application nodes. With Cloudwatch in place you can monitor any number of prepackaged or custom metrics. You can monitor connections, CPU utilization, memory utilization, latency or anything else that you believe could cause a reduction in end user experience.
The Auto Scaling toolkit provides a number of functions that let you link the Cloudwatch results with actions. Those actions are what will set the environment resizing into action. Depending on your exact configuration, new instances are launched, added to the load balancer and opened for business without any intervention from you. Once things calm down, the nodes will evacuate and decommission themselves.
With elasticity and auto scaling you no longer have to worry about capacity. You grow as needed and your customers aren’t going to get shut out when they need to access your application regardless of total demand.
I’ve just scratched the surface here with where a cloud solution can take you. There are numerous cloud based features that give you the ability to automatically scale your application as required.
If you would like to see a demo of auto scaling in action on Amazon’s cloud please contact us. Once you explore the options and really see the true benefits of leveraging cloud technology you’ll wonder what took you so long to embrace it.