I recently went to Amazon’s Web Services Startup Tour (see some nice pics over at Ian Irving’s blog). I’ve been using S3 (via JungleDisk) for a while but all I really knew that EC2 meant “VMs in the Cloud” but didn’t have much of an idea about their other acronyms mean (SQS, EBS, etc.) nor any technical details. Here’s some of what I learned…
AWS is paid on a per-use basis with one charge for bandwidth and then another charge for any persistent resources used (HD space, VMs, etc.). With only one exception, whenever you transfer data between AWS services it’s free – a big incentive to use multiple services together.
S3 is their oldest service and offers near unlimited storage. What’s interesting is that many other services can automatically backup to an S3 account. S3 organizes the stored data into buckets (analogous to directories, except without nesting), objects (analogous to files), and keys (like in a hash, used to retrieve objects).
Simple Queue Service is a message service which provides a way for apps to store messages in a queue (*shock*) and can then be pulled out again by another part of the system. These queues can then be chained together to provide a simple way of controlling the flow of messages along different parts of a system.
Elastic Block Service provides a network mounted drive for VMs inside of Amazon’s Cloud. Nice for adding more space your EC2 instances and it’s lifetime is not limited to the instance it gets mounted on. A couple people pointed out that you can store most of you’re VM’s data on the EBS then when you bring up more VMs you shut down your VM, clone a couple copies, then clone the matching EBS Blocks. Sounds sweet.
EC2 is the best known part of the cloud: the VMs themselves. EC2 lets you clone existing VMs on demand so that you can grow your capacity. One of the presenters showed how he setups up his VMs with a shell script on his desktop. The VMs can run either Linux or OpenSolaris (with Windows VMs coming soon – wonder what the cost for those will be?). There are about a dozen different types of VM instances which you can run.
The only thing that keeps AWS from being completely automatic is the fact that load balancing is something that you have to do by yourself. However this is not a huge problem as you can just setup some VMs to do load balancing and certainly SQS can help out there too.
During the Q&A an audience member asked about why people entrusted their architecture to Amazon’s virtual cloud. The general consensus was, even ignoring cost and added flexibility, no one was really sure they could do it better and the cost of trying is so high that given the cloud as an option it seems like the best idea.
Amazon has some other neat offerings like SimpleDB and the Mechanical Turk which weren’t really explored but sound pretty useful. I haven’t looked at other providers of similar services but it would be interesting how do they try to differentiate themselves – especially since it should be possible to mix and match the services between providers.








