Following my last post, saying that I’d moved my sites to EC2, I had some feedback on twitter asking me where people can find out a little more about the service. So, I thought I’d tell you all about it here.

Amazon’s EC2 Service is part of a wider collection of products called ‘Amazon Web Services‘. They rock (Note image above).
Essentially, they are a collection of API’s that allow developers to do ‘stuff’. Yes, stuff. Because AWS has such a wide range of ‘stuff’ it can do, I’m not going to bother listing them all. But there’s plenty.
One of the most interesting services I came across was EC2. This service allows developers to create ‘instances’ of ‘machine images’. Sounds pretty complex, but it’s really not.
EC2 is basically a huge virtual computing platform. And, it lets you start up a virtual server, or 3, or 10, or 200,000 virtual servers to do any sort of computing you want.
These instances are connected to the web via nice high-speed links, so naturally, web developers decided to start getting their hands dirty by setting up web servers on this platform.
Part of EC2′s beauty is its ‘on-demand’ nature and very nice pricing model. Traditional hosts charge for servers by calendar month, or by year. This is a pretty big commitment, so you need to make sure you get your specification and terms perfect before jumping in.
Then, when you agree terms with your provider, they set up your server and it’s usually online within a few days. Sounds perfectly reasonable to me… right?
Wrong. Amazon cut straight to the good stuff and give you, the developer, API calls to instantly start up instances. And, you get charged per hour. Which means you can start or stop instances at any time depending on your real-time current requirements.
This helps you for a few reasons. Firstly, if you’re a developer wanting to play around with a new flavour of linux. You can start an instance, use it for 6 hours, and pay a marvellous $0.60 for the time you used.
Secondly, when your applications start to scale, you have a very very flexible platform at your disposal, and Amazon’s pricing model helps you to benefit from economies of scale.
The Price
Standard Instances
| Instance | Price (hour) | Compute Units | Memory | Storage | Arch |
|---|---|---|---|---|---|
| Small (Default) | $0.10 | 1 | 1.7GB | 160GB | 32bit |
| Large | $0.40 | 4 | 7.5GB | 850GB | 64bit |
| Extra Large | $0.80 | 8 | 15GB | 1,690GB | 64bit |
High CPU Instances
| Instance | Price (hour) | Compute Units | Memory | Storage | Arch |
|---|---|---|---|---|---|
| Medium | $0.20 | 5 | 1.7GB | 350GB | 32bit |
| Extra Large | $0.80 | 20 | 7GB | 1,690GB | 64bit |
EC2 Compute Unit (ECU) – One EC2 Compute Unit (ECU) provides the equivalent CPU capacity of a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor.
So, there’s an extremely flexible service, with a wide range of power options, and on-demand based provisioning. It sounds like a perfect service… but there are a few drawbacks.
The Downsides
Because EC2 is such an abstract virtual environment, instances are never classed as ‘permanent’. This means there is the possibility for instances to go down, with data lost.
This forces us to make sure our instances are appropriately backed-up so that we could lose an instance at any point and not really mind. Whilst this might seem annoying, I actually think it’s a good thing. After-all, we should be backing everything up anyway!
Luckily Amazon have a few other services that can hold our backups on a more long-term basis. These include Simple Storage Service, and Elastic Block Storage.
That stupid final summary
Want to use Ubuntu? Fedora? RHEL? CentOS? — No problem… EC2 can… and all for the same price.
EC2 is a fantastic service. It’s really creating a new path for cloud based hosting.
I’m glad I’ve moved into the cloud, it’s nice here. We have a Starbucks. And, I’ve now got the fast scalability to build web applications with an infinitely scalable platform.