Amazon EC2

Amazon AWS logo

Amazon AWS logo

As part of my job I was asked to take a look at Cloud Computing.

There were several obvious options – Amazon Web ServicesGoogle App Engine and Windows Azure. Google App Engine was out of the running because it would require our app to be rewritten in Python.  Windows Azure was out of the running because it would require our app to be rewritten in a .NET language. This left Amazon AWS.

The main part of AWS that we’re using is EC2 (Elastic Compute Cloud) which provides virtual servers.  Fortunately Amazon recently added Windows support to EC2 – before it was Linux-only.  Although our platform (Jade) can run on Linux, we don’t have a lot of in-house Linux experience.

You start with a machine image that just has Windows 2003 server installed (they take care of licensing), install your software and save that as a new image.  You can then start multiple instances of this to provide your services.  You can start different kinds of instances that have differing numbers of cores and amounts of memory.  Amazon EBS (Elastic Block Storage) provides storage as a mounted drive for your application data (in our case a Jade database).  Amazon S3 (Simple Storage Service) is used for cheaper, larger storage, for example backups.  They have nice support for static IP’s and DNS so that you can add/remove/swap instances behind the scenes without negatively affecting your customers.

You pay a certain amount per hour for each instance, depending on what kind of instance it is (the cheapest is around $0.10 per hour), then you pay a few cents per Gb of storage and cents per Gb for network traffic.

All of the management of instances etc. is done using an API, so you can write management apps to monitor your instances and start new ones when need arises or if one crashes.  One wierd thing about this is that applications need to be written to use the API’s to do all of the management stuff, so it relies a bit on the community to build what you need.  Oddly, the best software I found to manage EC2 with is a Firefox extension called Elasticfox.

So far my experience with Amazon EC2 has been fantastic. We haven’t started using it in a live environment yet, but everything I’ve seen has sold me on it.  Basically you have access to an enormous resource of processing, storage and bandwidth so you can start your business off small and cheap and grow it without messing with hosting companies and hardware.

I wondered about moving my website onto EC2, but while the pricing of the service makes sense versus buying a server and paying to have it in a co-lo somewhere, $876 a year ($0.10 x 24 x 365) is a lot more than I’m currently paying.

Related articles by Zemanta

Reblog this post [with Zemanta]