The cloud is coming of age. Amazon has taken another 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. Their uptime has been stellar, and they are 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. (Mhh, I wonder whether the Microsoft Professional Developers Conference happening next week has something to do with the timing of the announcement…)
RightScale is of course supporting the new features that enable launching and bundling Windows instances, and we’ll have everything on our production systems within a couple of days. (Update: 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 T&C’s to upgrade on your own.
But let’s shift over to the differences between Windows and Linux instances (apart from the obvious).
Launching a Windows instance really 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. [Expletive deleted...]
We’ll have an RDP button in the RightScale UI that will automate all this and get you into your server with far fewer hassles. Launching an RDP client from the web browser isn’t very smooth, unfortunately, specially as we want to support non-Windows users.
Bundling is very 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 server templates and RightScript mechanism.
For Windows there now is a “please bundle my instance, will you” API call to EC2. 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 also 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 up to 8 volumes to an instance, and they appear as drive letters ‘a’ through ‘h’. But the local disks also appear using these drive letters, so the low-down is that you can mount 5 EBS volumes on a small instance, 4 on a large, and 2 on an extra-large.
Pre-announced monitoring and auto-scaling services
We’re quite excited about Amazon’s pre-announcement of monitoring and auto-scaling services. The details are still quite sketchy through our sources, but all indications are that they’ll integrate very 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 auto-scaling as well as failure tolerance. This is precisely why we offer our customers server templates for popular software stacks with all the hooks for auto-scaling 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 and 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.