Trying out AWS

January 21st, 2011

As Gorlet is beginning a new marketing strategy which may see a rapid and drastic increase in usage we began looking a how we could accomplish those goals in a cost effective manner.

Dedicated servers are obviously one solution, but in the end they still you will still be constrained and, particularly in our case, you pay for that extra capacity until, and if, you ever need it.

Therefore, after investigating several options and due to the massive degree of scalability and flexibility, we decided to give Amazon Web Services (AWS) a tryout. The best part about the tryout is that AWS is currently offering a free usage tier with the following per month for a year. This is perfect to experiment with:

* 750 hours of Amazon EC2 Linux Micro Instance usage (613 MB of memory and 32-bit and 64-bit platform support) – enough hours to run continuously each month
* 750 hours of an Elastic Load Balancer plus 15 GB data processing
* 10 GB of Amazon Elastic Block Storage, plus 1 million I/Os, 1 GB of snapshot storage, 10,000 snapshot Get Requests and 1,000 snapshot Put Requests
* 5 GB of Amazon S3 storage, 20,000 Get Requests, and 2,000 Put Requests
* 30 GB per of internet data transfer (15 GB of data transfer “in” and 15 GB of data transfer “out” across all services except Amazon CloudFront)
* 25 Amazon SimpleDB Machine Hours and 1 GB of Storage
* 100,000 Requests of Amazon Simple Queue Service
* 100,000 Requests, 100,000 HTTP notifications and 1,000 email notifications for Amazon Simple Notification Service
* 10 Amazon Cloudwatch alarms

Since we are using a LAMP stack, we found an AMI (Amazon Machine Image for our stack) and had an instance up and running within an hour or two. We then moved our data across and we were up and running. Well, not quite as we first had to work through several configuration issues. It was then onto making the system production ready – moving the database onto persistent storage, setting up database backups, making our own image for easy installation of other instances and configuring Cloudwatch alarms and monitors.

We’re still not quite ready to turn this over to production, but all in all we’ve been quite happy. In particular, it has been very easy, provides the scalability we’ve been looking for (either by scaling up or out) and runs on a rock solid network.

The one biggest concern we have is support. While everyone is entitled to Basic Support which is essentially access to forums and FAQs, the Premium Support comes in 4 categories (Bronze, Silver, Gold and Platinum) with pricing ranging from $49/month up to the greater of $15k or 10% of monthly usage. The biggest difference here is in response time, ranging from 12 hours at the Bronze level to 15 minutes at the Platinum level. So, when adding in support costs Managed Hosting, and not AWS, may be the way to go for smaller organizations, without a lot of technical resources and with pretty well-defined and known usage.

Anyway, we’re still in the tryout phase and we’ll see how it goes.