This post is an introduction to Amazon Web Services, as I’ll be
writing a series of posts in the following weeks elaborating on the stuff I’ve been working on
Amazon Web Services, AWS, is a platform for infrastructure services in the cloud at very competitive prices. AWS is revolutionizing the IT services in all sorts of companies. No more
dealing with hardware, no need to have people available 24/7 to monitor
servers, no more trips to the data center, no need for the developers
to wait for days/weeks until IT can get you a specific server
AWS is composed of
S3 is a like a virtually infinite storage service. You can store files and pay per storage and data transfer ($0.15 per GB-month)
EC2 provides a way to have a virtual server running in a matter
of minutes. It takes an AMI (Amazon Image) stored in S3 and starts it,
giving you a public address where you can ssh to and you have your
server ready. There are many publicly available images from Amazon and
third parties, with several *nix flavors CentOS, Ubuntu, OpenSolaris… and Windows images
coming this fall. There are also images with stacks already installed, mysql, apache, ruby on rails,… If you need you can customize your running server and later capture an image to launch as many instances of it as you want, and
also considering that the image provided storage is not persistent, if
your image is stopped or dies, everything changed in the server since
you started it is lost. There are three types of servers, small, large, extra large,… with different amount of space, cpu, memory,… You pay per
type of instance, time running and data transfer, starting at $0.10 per hour.
EBS is an EC2 service that allows you to attach a virtual drive to EC2 instances, with high availability and high reliability, and size up to 1TB, providing persistent storage to the instance. The drive can be backed up to S3 too. You pay $0.15 per GB-month allocated.
SQS is a simple and scalable message queue, paying for the number of messages and data transfer (1$ gives you up to 500.000 messages)
SimpleDB is a web service for running queries on structured data in real time. Haven’t tried it at all but seems suitable if you have a huge structured database and need it to scale.
Now, why should you care about cloud computing and particularly about Amazon Web Services? well if you are in one of this cases you should definitely check it out:
- I need a server for a few hours only: with AWS you pay per hour
- I’m running a startup and dont have the cash up front to setup a huge infrastructure (and I don’t know if the company will go under in few months): you don’t have upfront costs, just pay for the time you use it
- I need huge storage space requirements: you can allocate TB of space
- I run a task that needs 24 hours to complete, but could be distributed in 24+ servers and take less than 1 hour: it will cost pretty much the same to have 1 server running 24 hours than having 24 servers running 1 hour
- I need to scale fast: you can add servers in a matter of minutes, storage space,…
- I need high availability and geographical distribution: Amazon provides availabilty zones, so far three for EC2 in the US East coast, and two for S3, US and Europe, most likely the possibilities will grow in the future
The next post will be about the tooling that can be used to easily manage all these services.
Next entry: Amazon Web Services: habemus Windows