Amazon Announced Elastic Compute Cloud (EC2)

I am an Australian, and Australia is a tiny place. Well, the land is big, but majority of 20+ million people chose to squeeze into a few coastal cities. Web hosting is expensive here, and everyone went “wow” when Aussie HQ introduced their million-dollar real time provisioning dedicated server this month (see all the buzz on this Whirlpool thread). I mean, you have enough customers and servers in Australia to provision dedicated servers in real time? Instead of hours or even days of waiting? No wonder they claimed to be Australia’s first.

But it is a dwarf in comparison to Amazon’s Elastic Compute Cloud (EC2), which is currently at limited beta.

What is EC2? From Amazon’s page:

Amazon EC2 presents a true virtual computing environment, allowing you to use web service interfaces to requisition machines for use, load them with your custom application environment, manage your network’s access permissions, and run your image using as many or few systems as you desire.

And how is it different from other hosting service? From their FAQ page:

Traditional hosting services generally provide a pre-configured resource for a fixed amount of time and at a predetermined cost. Amazon EC2 differs fundamentally in the flexibility, control and significant cost savings it offers developers, allowing them to treat Amazon EC2 as their own personal data center with the benefit of Amazon.com’s robust infrastructure.

Basically, it is a virtual private server hosting service that (1) servers can be instantiated and destroyed in real time with web service API calls (2) you only pay for the resource you are utilising. Pricing structure is pretty easy to understand:

  1. $0.10 per hour when your VPS is running.
  2. $0.20 per GB of data transferred outside of Amazon.
  3. $0.15 per GB per month of data stored.

Each VPS instantiated has a spec of 1.7Ghz Xeon equivalent, 1.75Gb of RAM, 160Gb of local disk and 250Mb/s network bandwidth, so it is not the $20/month VPS that people rent to run their blogs. So to have a server running 24×7, a 30 day month would cost $72 — and that is not including data transfer and storage. Even with 40Gb of storage and 250Gb of data transfer it would still cost only $128.

However we need to remember that you are only paying what you are using. That means Amazon is not overselling — they don’t promise their customers 1,000Gb of data transfer, hoping that some are only using 20Gb to offset other hungry customers. It is certainly very refreshing from the current dedicated/shared hosting market.

Also from the pricing structure above, (2) and (3) come directly from Amazon S3, a storage infrastructure that is scalable, reliable, fast and cheap. Like another SAN-backed VPS hosting, if the physical server that hosts your VPS happen to burn in flames, it is easy to re-instantiate the same image on another physical server to reduce down time. It is not the luxury you can get from other $100/month dedicated servers.

From its developers’ documentation, EC2 appears to be powered by Xen, but you cannot yet run your own kernel. That seems to contradict the claim that Xen is not yet ready for production use.

What differentiates EC2 from other Xen providers is, this web service API that allows real time provisioning. Need a 20 Xeon server farm for your secret project in the next 10 minutes? Amazon says no problem. Only use them for 10 days? No problem either, and you are only paying for the amount of time you are using. EC2′s API is clearly documented, and from the look it could do some amazing things like grouping instances, etc.

It is going to be very useful when you need that computation power suddenly. For example, need to crack that hash getting Slashdotted or Dugged. Just use the API to create a few more instances. Provided that your software can scale, adding new hardware has never been easier.

With S3, EC2 and other services, Amazon has clearly taken the path to be centrepiece to the developers, like how Google is to average web users. As software developer, you just need to focus on your application’s scalability, and Amazon will take care of the scalability of computation and storage.

On the other hand, this service might not yet be suitable for general web hosting — not when it is in beta anyway. Your VPS’s IP is allocated on DHCP so no static IP address, which cannot be easily used to host web and mail services without going down to the dynamic DNS hack. Also there is no persistent storage other than S3 — rebooting your VPS and you’ll be surprised to find out all data you kept on the 160Gb partition has disappeared. Otherwise, I can forsee EC2 as a popular platform to build shared hosting, as you can easily oversell on non-overselling resources.

Too bad beta has already been closed, but I am sure I will be eagerly waiting for this one.