Friday, May 18, 2012

EC2 and Windows: a match made in... Hell

Henry Ford is famous for his lack of flexibility over the Model T: You can it in any colour you want, as long as it is black.

I think Amazon have taken a leaf out if his book, when offering their Windows instances: You can have any size disk you want, as long as it is 30Gb.

Don't believe me? Go on, try automating the creation of a 100Gb boot disk Windows machine. Or creating one from the web interface, without any post-configuration steps in Windows itself.

(I'll save you the Google: here is the AWS engineers telling you the multiple steps needed to achieve that. The instructions are different depending on the exact version of Windows.)

In fact, try automating anything to do with Windows configuration, using EC2. You can't. It can't be, won't be, scripted. You always have to log on afterwards (going through the EC2 Console to get your almost-impossible-to-type password) to do something. Usually quite a tedious and time-consuming something.
The bottom-line: Windows is not designed for the cloud.

...and yet, some of my clients, and some of my potential clients, insist on trying to use Windows anyway. The cloud is where they feel they should be, so people want to move their legacy apps there. Whenever I ask them how they do it, or why they do it, they seem to find justification. It is the cloud, look we're scaling. We're faster. It works! Like a man let out of prison, and running free in the meadow... only he still has the manacles and chains from his time doing time. Am I carrying my metaphor too far by wishing people would stop and take the Linux axe to the manacles before rushing off to the meadow?

Are you an expert at automating Windows on EC2? Please post a comment showing off your knowledge. I'm willing to learn, and will edit this article if you convince me it can be done :-)


Unknown said...

Just to brainstorm a couple of possible workarounds or solutions:

(1) Maybe SSDs are a similar problem.
A possible workaround, for people who can afford only a 30G or 60GB SSD, and thus want want to use a SSD plus separate hard disk combo, is to redirect (move/change the default location of) folders like My Documents to another drive.
MS documents the procedure for doing this. (But it seems to be generally agreed that even 60GB for an SSD boot drive is a bit small -- I don't know if Amazon would provide a choice of 30GB, 60GB or 120GB boot disks, preconfigured, if asked.)

(2) Once you have created a 100GB or 150GB boot drive, using Amazon's complicated procedure, surely you can save it as a preconfigured virtual machine snapshot (VMware calls them virtual appliances) and reuse it?

Unknown said...

"Once you have created a drive ... surely you can save it?"

I know I could with Linux, but can I with Windows? This could be the key gap in my knowledge, but doesn't that violate Windows licensing?

I tried to do just that last weekend: boot from a 120GB snapshot, on a new server instance, after I had accidentally terminated its original server instance, but it simply wouldn't work. In lieu of any error message to go on (other than "Instance reachability check failed.") I guessed it was Windows refusing to run on different hardware.

Unknown said...

Just looked at the Amazon EC2 FAQ, and FAQ items like "What is the difference between using the local instance store and Amazon Elastic Block storage (Amazon EBS) for the root device?", "How do I load and store my systems with Amazon EC2?" and the "EC2 Windows Guide" section on PowerShell scripting look helpful.

Unknown said...

Aside: here is how to save a virtual windows image (to use as a future template) on Azure:

It is answering a different question to what I was asking (for starters, I wanted to do this on EC2), but might still be useful.