The cloud is coming of age. Amazon has taken a huge leap forward today by announcing that EC2 is now out of beta, together with an SLA that is evidence of Amazon's commitment to provide top-notch service. Its uptime has been stellar, and it is now standing behind their offering contractually in a much stronger way, and signaling how customers can set their expectations. Read about the announcement on the AWS blog and on their CTO's blog.
The advent of Windows on EC2 is welcome news too. Even though Windows is not typically the OS used for serving highly variable workloads, it is a sign of the cloud maturing that even the more static workloads typical of Windows deployments will be more easily allocated and managed using cloud resources.
RightScale is of course supporting the new features that enable launching and bundling Windows instances. Our Windows support went live the same day as Amazon's announcement, and we'll be adding some more functionality soon; feedback and suggestions are always appreciated! In case you're wondering, EC2 is supporting Windows Server 2003 R2 for the time being. Windows Server 2008 is apparently on the roadmap but not available at present and it's apparently against the terms and conditions to upgrade on your own.
Let's shift over to the differences between Windows and Linux instances (apart from the obvious).
Launching a Windows instance is no different from launching a Linux instance: you just pick a different machine image (AMI). But once it's running, the game changes: SSH is not exactly the most popular remote access tool for Windows, so instead you get to use RDP, Windows' Remote Desktop Protocol. But there's a catch: what's the administrator password? Well, Amazon has concocted something I can't really describe with any other word but a hack. At boot time, the ec2-configuration-service that Amazon added to the Windows AMIs generates an admin password randomly, encrypts it with your SSH private key, and writes it to the console output. You then use a command-line tool (or ElasticFox) that reads the console output, locates the encrypted password, and uses your SSH public key to decrypt it. Then you get to type the password into the RDP client.
We'll have an RDP button in the RightScale UI that will automate all this and get you into your server with fewer hassles. Launching an RDP client from a web browser isn't very smooth, unfortunately, especially as we want to support non-Windows users.
Bundling is different on Windows instances than Linux instances. The Linux approach of creating a loopback filesystem in a file, tar-ing and encrypting up the root disk onto that filesystem, and then uploading that to S3 doesn't quite cut it. Not that the process is all that great under Linux either; it's one of the most fragile and frustrating aspects of EC2, and one we avoid using as much as possible with our ServerTemplates and RightScript mechanism.
For Windows there now is a "please bundle my instance, will you" API call to EC2. That's nice, except for the fact that it will shut the instance down in order to bundle it up! In Amazon's words: "Internally, it queues the bundling task and shuts down the instance. It then takes a snapshot of the Windows volume bundles it, and uploads it to S3." The API gets a couple of new calls to start the bundling and then to query on the progress of the bundling.
Of interest here is the fact that Amazon recommends deleting all temp files using the Windows Disk Cleaner tool, then defragmenting, and finally zeroing the free space using sdelete. The last step is presumably because they're bundling the raw disk partition and not the files in the filesystem, and zeroing the unused space reduces the size of the compressed image.
For the RightScale UI we rolled all these API calls into a single bundling button. You press it, we make the calls, EC2 makes it happen, you watch the progress.
Mounting EBS Volumes
Another slight difference is mounting Elastic Block Store (EBS) volumes on a Windows instance. You can theoretically attach as many as eight volumes to an instance, and they appear as drive letters A through H. But the local disks also appear using these drive letters, so really you can mount five EBS volumes on a small instance, four on a large, and two on an extra-large.
Pre-Announced Monitoring and Autoscaling Services
We're excited about Amazon's pre-announcement of monitoring and autoscaling services. All indications are that they'll integrate nicely into the RightScale system, giving our customers the choice of using our monitoring system or Amazon's or both. We've been focusing on all the configuration management and dynamic configuration that needs to occur when doing autoscaling, which is much more than just launching instances when the monitoring system says it's necessary. On top of that, the architecture of the multi-server deployment must be designed to actually support autoscaling as well as failure tolerance. This is precisely why we offer our customers ServerTemplates for popular software stacks with all the hooks for autoscaling already in place.
All in all, the announcement amounts to two great leaps forward for the cloud computing world: broader OS support and a stronger business commitment for EC2. It seems that cloud solutions get stronger with each passing quarter. Of course, managing the increasing complexity through design, architecture, and automation remains a critical ingredient in this picture, and one that continues to be our main focus at RightScale.