Today, Amazon removed the beta label from their EC2 service, along with a bunch of related announcements. This is great news!

Over the past half year, I have become an enthusiastic user of the various AWS services, including EC2, which has been very stable for me thus far. But now Amazon is formalizing this by offering a 99.95% availability guarantee as part of the new EC2 SLA.

I don’t personally care about the new Windows support, but I suppose this might make some Microsoft aficionados happy…

Amazon also announced some exciting future features:

Management Console - The management console will simplify the process of configuring and operating your applications in the AWS cloud. You’ll be able to get a global picture of your cloud computing environment using a point-and-click web interface.

I’ve been using Ylastic as a Management Console, and can highly recommend this service. It allows me to monitor and manage our various AWS services from any machine, without having to install any apps locally. But having a Management Console built right into AWS would be neat (assuming it is as solid as Ylastic).

Load Balancing - The load balancing service will allow you to balance incoming requests and traffic across multiple EC2 instances.

This is great! Currently, AWS users have to roll their own load balancing implementation or rely on a more limited, DNS based solution. Most of my EC2 deployments don’t involve public websites, so I have not had to tackle this issue. But having a solid load balancing solution built right into AWS will be tremendously useful for me in the future.

Automatic Scaling - The auto-scaling service will allow you to grow and shrink your usage of EC2 capacity on demand based on application requirements.

Another feature that’s been on our roadmap, and I’m excited to hear there’s going to be an officially supported solution. Hopefully Amazon’s implementation will be flexible enough to allow different criteria to determine when to start and stop instances, such as CPU usage or SQS queue status.

Cloud Monitoring - The cloud monitoring service will provide real time, multi-dimensional monitoring of host resources across any number of EC2 instances, with the ability to aggregate operational metrics across instances, Availability Zones, and time slots.

Another awesome feature! So far I’ve shied away from setting up a tool like Nagios for in-depth monitoring of our EC2 instances. It sounds like Amazon’s built-in monitoring solution will meet this need.

Overall I’m very excited about the pace at which AWS has been improving over the past half year or so. Availability Zones and particularly Elastic IPs made a major difference, followed closely by EBS.

Here’s a small wishlist of features I’d like to see in EC2:

  1. Instance Aliases: When running more than a handful of instances, each one for a specific service, it becomes very difficult to keep track of which instance ID maps to which service. Ideally instances would have a user-defined alias, but unfortunately the EC2 API does not offer this functionality. Luckily I am currently managing all instances via Ylastic, which supplements this functionality, but it means that I would be lost if I had to manage my existing instances using a different tool. This really should be implemented on the EC2 API level.

  2. Querying User Data: Along the same lines, EC2 instances do support arbitrary user data (which I use to specify the role of the instance upon startup), but unfortunately this can only be queried from within the instance, not externally. Again, Ylastic solves this issue by keeping track of the user data itself, but this should be supported by the EC2 API.

This list used to be a lot longer, but the recent release of EBS, coupled with the announcements above, took care of much of it. Nice work, Amazon!