Amazon Elastic Compute Cloud (EC2)

Amazon has started a rather limited beta of their new service Elastic Compute Cloud abbreviated EC2. I am one of the developers who got the invitation to participate. Here’s the most important point:

Amazon EC2 enables you to increase or decrease capacity within minutes, not hours or days. You can commission one, hundreds or even thousands of server instances simultaneously. Of course, because this is all controlled with web service APIs, your application can automatically scale itself up and down depending on its needs.

It costs 10 cents per full hour of usage + usual S3 bandwidth fees. That means that if you run it 24/7 it will cost around $72/month + bandwidth. That’s cheaper than a dedicated server (with reliability similar to what I expect from Amazon) but more expensive than an unmanaged VPS. However, look at the specs: “an instance is roughly equivalent to a system with a 1.7Ghz Xeon CPU, 1.75GB of RAM, 160GB of local disk, and 250Mb/s of network bandwidth (bursting to 1Gb)” and that’s a lot of power, sounds like Amazon will put a lot of smaller hosting companies out of business.

The main point of course is that it can be set up and torn down programmaticaly. It works like this: you upload a system image (Amazon Machine Image or AMI) and then make a call to boot it, you use another call to monitor the status of your instances, once they boot up you know the domain name you can use to connect to the instance, for ex.

It only supports Linux at the moment, and I have one particular use for this service that would need Windows, so I can’t wait until it supports OS’es other than Linux.

Just in case you missed it — your instances can be web servers, database servers, load balancers, anything. The traffic within Amazon EC2 and S3 is free, so you can have setups as funky as you wish. Remeber what it takes to build Flickr or Livejournal datacenter? Now you can do similar setups from home (unbelievable) and just let Amazon take care of the networking and hardware. This is so much more ’WebOS’ than Google’s walled garden. August 28 Update: Please note that EC2 is not limited to web hosting applications, far from it. It makes even more sense to use it for virtual render farms, to run simulations and other tasks that require a lot of computing power but are usually executed only once in a while. So if you need for ex. 100 instance-hours to complete the computation, you can make your own cluster of 20 machines of similar power (will cost about $10000 for hardware alone) and complete the task in 5 hours, you can use EC2 to create this virtual cluster, compute and then shut it down when done and pay much less — $10 per job. Or you could use EC2 to create a 200 machine virtual cluster, complete the job in half an hour and pay the same $10 for it. Think about that.