Amazon.com has a history of making good presentations at O’Reilly Conferences. Today’s “Amazon Web Services: Building a “Web-Scale Computing” Architecture to Meet the Variable Demands of Today’s Business” keynote by Werner Vogels from Amazon was another eye opening keynote speech.

In the last few years Amazon has created some of the most compelling web services in order to extend the reach of their massive online store. In the process of doing so, they have become the experts on web services and now the bring their extensive experience to the software hacker public.

First stop in this plan is their S3 service — Don McAskill has been talking a whole lot about S3 and he will give a keynote on the topic tomorrow morning. S3, or Simple Storage Service, allows users to store data on Amazon’s servers for a flat rate. $0.15 per GB-month of storage (read: store 1 GB on their servers for 1 month an it costs you 15 cents) and $0.20 for GB of data transferred to or from S3. S3 does not make a standard filesystem available — instead you access the storage via web service calls. To store data on S3, you make a web service call and POST your data to their service, with a 5GB maximum per item. To retrieve it you make a similar GET call. Its so simple, its almost brain dead.

Let’s think about this for a second. You hand your data to Amazon and Amazon hang on to it and safe guards it. You don’t need to worry about backups or downtime — that’s Amazon’s hassle. With the prices that Amazon charges for this service this is an amazing piece of mind for really cheap!

I’ve been using S3 for a number of months now and I’ve really enjoyed its simplicity — you can have .Mac’s iDisk functionality if you use JungleDisk in conjunction with the S3 service. I plan to use S3 to store my growing picture collection and not have to worry about backing things up. For a few dollars a month, this is a great deal!

But, what really blew my mind was the the EC2 service that Amazon is putting into beta right now. Elastic Computing Cloud, or EC2, actually allows you to run a server on Amazon’s turf for the amazing price of $.10 per instance (server) hour. Here is how it works:

  1. You create a server image and upload the image to S3
  2. You boot an instance (server) from the uploaded image.
  3. The instance starts running and starts working for you.

Using these simple steps you remotely deployed a server! Normally this would be an amazing amount of work. Purchasing a server, loading the OS, loading the software, putting it in a rack and hosting it takes much time and money. EC2 lets you do this quickly and cheaply. Each instance costs only $.10 per hour and the data transfer rates are the same as for S3, namely $.20 per GB transferred.

What is even more amazing, and the whole point of this service, that you can start more instances as you need them. Let’s say that Digg sends a huge wave of traffic in your direction. Under normal circumstances you pray that your server can handle the load and stay up. If it doesn’t you look stupid. If you use the EC2 service you can automatically determine that you have a load spike coming and start more instances quickly to handle the demand. Once the load spike is over, you can ditch the extra instances and return to normal workload. Amazon only charges you for what you use — forget the typical nonsense of 95th percentile billing for bandwidth!

Wow! Amazon bills EC2 as having these key features:

  1. Elastic — add more servers as you need them.
  2. Completely controlled — you have complete control over the instances. Including the root password!
  3. Designed for use with S3 — you don’t even have to pay for the S3 traffic to boot instances.
  4. Reliable — Use Amazon’s tech knowledge to keep the service up and running.
  5. Secure — Your data/instances are isolated from other people’s data/instances.
  6. Inexpensive — We saw that its really cheap!

Keeping MusicBrainz alive and running costs a lot of money in a month. I could reduce my bill to a fraction of what it currently is by switching my services over to Amazon EC2. I always worry about how to manage growth and how to add more servers. I worry about crashing hard drives. I worry about skyrocketing bills. If I can manage to move a bulk of MusicBrainz over onto EC2 I can eliminate many of my worries and have a vastly more scalable site that costs less than it does today.

My brain is abuzz about how to integrate EC2 into MusicBrainz and the first day of ETech hasn’t even finished off yet!