One of the big draws to the cloud is its ability to scale with your application. That has become much easier with Amazon Web Services today. Early this morning the Amazon Web Services team launched three new services: CloudWatch, Auto Scaling and Elastic Load Balancing. Combining the use of these three services allows a user to configure and scale their application based upon information gathered by CloudWatch. These are important additions to the Amazon Web Services offerings because it helps take more of the coding and configuration work away from the developers and system administrators. This is a key benefit of cloud computing that AppEngine from Google and Azure from Microsoft have built in and they have kept completely transparent to the developer. While Amazon has not made it completely transparent with the release of these services, it is a great step and may be exactly the middle ground that is needed.
CloudWatch allows you to monitor CPU utilization, data transfer and disk usage, request rate and traffic to your EC2 instances. Based up on the information that CloudWatch gathers, you can set triggers that will look at that data over a time period and allow you to use the Auto Scaling to automatically add or remove EC2 instances to the specific group of machines working on a particular task. Finally the Elastic Load Balancing helps you distribute the traffic coming into your application to your EC2 instances. This is a welcome addition as it accomplishes fault tolerant load balancing for us without the cost of having to setup several HAProxy instances. So, even though we incur the costs of using the new Elastic Load Balancing Service, it quickly pays for itself because we are able to remove our own load balancing configuration on EC2. I am excited to see these new services finally go beta to the public and I am looking forward to more.