Creating a WordPress site in Amazon Web Service’s Free Tier

I’ve been contemplating moving all of my hosted materials from my current hosting provider to my home server and saving on some of the costs. My sites are all relatively low traffic, so hosting on a home server would be easy. My problems are that I won’t have a dedicated IP, the server would need to be on all the time, and I’ll have to maintain the hardware. Well, since I’ve been using a lot of the AWS (Amazon Web Service) tools at work, I figured I can explore more of the options by utilizing it for personal use.

The nice thing is that AWS has a free tier for a year that I can try out. I don’t really have a plan (since this is just for fun and my own personal education) but if I did it would be something like: (1) setup instance, (2) setup wordpress, (3) write content, (4) track usage and performance, (5) evaluate. Warning, everything I write will be on-the-fly, so if you don’t understand how I got from one place to another, or want some clarity, feel free to write it in the comments and I’ll try to answer you.

Intro to AWS

First of all, make sure you sign up for an AWS account, and sign up for their free tier read more about it on http://aws.amazon.com/free/ . For now, I’m going to utilize EC2 (Elastic Compute Cloud), RDS (Relational Database Service), S3 (Simple Storage Service), and EBS (Elastic Block Store).

Here are my description of those services.

EC2 – In physical computing terms, this is primarily the processing (cpu) and memory of a server. In non-physical computing terms, the brains and the memory.

EBS – This is additional “persisitent” “hard drive” storage for the EC2 instance. When you restart an EC2 instance, the “hard drive” will pretty much empty its contents and you start on a blank slate. This is like having an external hard drive that you can remove from one machine and install into another.

RDS – This is the hosted MySQL part of our application. Think of this as structured data that will help organize your content.

S3 – This is where we can store content in a really cheap way. It also makes it a little faster to access the data since the storage is duplicated across several regions (Amazon’s version of datacenter locations).

Let’s start with these first. There’s a whole bunch of utilities to use in a production setting, but for our simple setup this might be all we need at first. I’ll describe additional tools as I use them.

Setting Up Your Instance

An instance in the AWS world is considered your server. Sign into AWS, and head over to the Console (https://console.aws.amazon.com/ec2/v2/?region=us-west-2). Notice that region at the end of my link? You can choose whatever you want, but that’s what AWS defaulted me to. The cheapest rates are usually in us-east-1.

First, let’s create the instance. On the left of the console, click Instance. Near the top you’ll see a button that says “Launch Instance”. This will open up the wizard. I’m using the generic Amazon Linux AMI, you can choose whatever Free Tier Eligible Operation System you are familiar with. Make sure you choose t1.micro. The defaults should pretty much be fine for now, so click “Review and Launch”, then “Launch”.

Congratulations! You just setup a new Amazon instance. My next post will be about setting up a database in RDS.