AWS micro instances for personal & learning use

Too much money, too much downtime. That sums up my experience with my web hosting company over the last couple years. My shared hosting account costs about $120/year, and sure didn’t feel like I was getting my money’s worth. Due to ridiculous email downtime and failing SSL certs I moved email services to Google apps a year ago. That helped a lot, but many times over the last few months my web server has gone down for hours at a time.  The alternatives were to deal with another unknown web host (with likely the same problems), or buy a VPS (virtual private server) for a more than what I am paying now. Amazon web services was out of the question for personal use, as a small instance was $300 per year.

All that changed this fall though. Amazon introduced micro instances – 613 MB RAM machines which provide a small amount of consistent CPU and burst CPU capacity when additional cycles are available. This is plenty of horsepower for my little website; probably more overall resources than it had access to in shared hosting. Importantly the pricing is quite reasonable when you consider reserved instances. The three year reserved instance works out to $88.65 per year, plus storage and bandwidth costs (minimal in my case).   The real kicker though is that Amazon is eating the costs for micro instances + services for one year with their AWS Free Usage Tier to try to get more customers using AWS.

You can’t beat free, right?  This sounds like a hell of a deal, and it is. But this does come with hidden costs – your time and experience with two aspects:

  • The Amazon Web Services platform. I’m pretty familiar with AWS already – I’ve been using Amazon Web Services (EC2, EBS, S3, etc) at work for about two years now. It is great for being able to expand out with as much processing power as you want. Though things have been quite simplified these days (boot from EBS, elastic IPs, web control panel, etc), the service and concepts can have a fairly steep learning curve if you are new to it.
  • Configuring & running a Linux server. I’m using Amazon’s Linux image for my server with mysql and apache installed. Getting applications like Gallery and WordPress running happily on a new server does take some reading up if you aren’t familiar with linux and web concepts (e.g using yum to install dependencies, editing config files to enable php modules and htaccess). You also need to think about things which are normally taken care of by your web hosting provider, like backups.

This page is being served to you from my Amazon micro instance.  It took me an afternoon to transfer my files from my old hosting provider and get everything setup correctly on Amazon. If you were new to the platform or Linux, it would take longer than that. But if treated as a learning experience, it is an amazing opportunity. AWS Free Usage Tier lets you try out a server for a year for free, that’s pretty damned amazing.  Frankly, I don’t know of a better learning lab – you can pick and choose from hundreds of starting images, destroy them, and start fresh at any time easily and quickly with no cost.

The real question is – will I still think it is a good idea to run my own web server a year from now?  Probably not, but it was an fun little project.