EC2 coming of age?


I’ve been participating in the EC2 beta program for the past 18 months because the ability to fire up any number of PCs seems like such a good idea.  And kudos to Amazon for investing in a speculative area like this. 

EC2 provides the means to start any number of virtual machines running one or another versions of Linux and pay $0.10 per hour of uptime.  Each instance runs in an emulated i386 32/64 bit machine provided by Xen.  Each provides some multiple of the EC2 computing unit which today is the equivalent of a 1.0 GHz Xeon processor.  A running instance can choose from 1, 4 or 8 computing units.

Recipe to create an EC2 instance running Windows 2003

So what’s it for? 

Suppose you want to allow users to trial software and give each their own machine to work in.  Or you want to provide a Facebook add-in which takes off and need to scale the server available to service the request.  Suppose you no longer want to run your ERP system in-house.

Running Windows?

When EC2 first came about the only instances available had the power of just one computing unit and I tried running Windows on an instance using QEMU (that’s Xen->Linux->QEMU->Windows).  It was not a pretty picture.  So yesterday I tried using an instance with 4 computing units and it worked just fine.  Windows thought it was running on a Pentium II 2.0GHz with 1.5GB memory.

The attached file is a kind of recipe for getting an instance configured.  I have Windows 2003 licenses so I can do this but you could try using one of the trial version of Windows 2003 or even 2008.

Read for prime-time?

No, but recent announcements have plugged some important gaps.  The hole I got lost in was the inability to have a static IP address.  Without a static IP address its not really possible to use the service as a web site.  Kluges involved updating a Dynamic DNS service!  But now an account can have up to 5 IP addresses which can be assigned running machine instances.  Cool.  Even better they are free while instances are running or $0.01 while they are not.

Another hole is that for a reliable service it should be possible to implement disaster recovery and the new “Availability Zones” begin to support this idea.

The remaining flaw is that while running instances have a 160GB hard drive, as soon at its switched off that persistent store is not so persistent and any data it contains is lost.  The idea is that the user will implement some kind of backup to Amazon’s S3 service.  In practice that’s easy to do for, say, a database but what about changes to the running configuration of a the instance, user files, etc.

The promised fix is the ability to snapshot the entire disk and save it off to S3.

Controlling EC2

One of the great things the EC2 team has done is make it possible to control the whole process of starting stopping and managing instances via web request (REST) based API.  This means any application can control the running instances.  The EC2 team provides a set of Java based command line wrappers around these requests but the best interface is the “ElasticFox” (used to be EC2UI) Firefox addin available here though it is for an older version of the API.  The latest version is always available in an SVN repository.

This means it’s possible to create a web interface to control the running instance.  For example a web interface that allows a user to start their server in the morning and stop it in the evening.  Or for backups to be initiated remotely.

Information and Links

Join the fray by commenting, tracking what others have to say, or linking to it from your blog.


Other Posts

Write a Comment

Take a moment to comment and tell us what you think. Some basic HTML is allowed for formatting.

Reader Comments

Be the first to leave a comment!