So now that you have seen the feature lists and have some idea, lets start with the actual process. I will intentionally avoid going through details like EC2 Instance Types, Data Center Availabilities. These are relatively simple issues we can ignore now. We will come back to them maybe later. I will take you through a part by part tutorial of setting up a simple Drupal website on a fresh EC2 small instance. We will also setup WordPress on the same setup. We will deal with the full LAMP stack and our CMS apps including:
- Setting up a base Gentoo machine. Will do a Debian later.
- Installing the apps needed using emerge on Gentoo and apt-get on Debian
- Configuring nginx (Will probably do Apache at a later time
- PHP using php-cgi, MySQL server
- Setting up Drupal
- Setting up WordPress
We will need a simple set of tools to do all this. If you are on Linux or similar you will not need an SSH client. On Windows you can get PuTTY or Bitvise Tunnelier. On Linux or Windows you will need Elastic Fox, which is an extension for Firefox web browser and helps manage EC2 and related stuff. And before you start you will need an Amazon account. You will need a Credit Card but do not worry, you will be paying only for the stuff you need. So if the installation takes 1 hour on a small EC2 then you are going to pay $0.10 for the server and about similar amount for the data transfer. Pretty cheap right? Heh, you could send me a donation if you want to though :P
So start with getting an account from Amazon WS, getting Firefox (if you do not already have it), install Elasticfox, set up the Amazon Access Key and Secret (you will get both of these under Your Account > Access Identifiers in the top navigation menu).
Now before I jump into action (and Amazon starts billing you), let me explain in plain English what I want to do. Also I am clubbing the tasks up so that I can write them over a few blog posts, taking 2-3 days time. The first time I will do Gentoo/nginx/Drupal. We will come to Debian, Apache, WordPress combo later.
- Create an SSH key-pair (from within Elasticfox). Create a small EC2 Instance from an existing AMI of Gentoo (using Elasticfox). Set simple Firewall stuff (using Elasticfox). Continue here...
- Login to the Instance (server) using the Public Domain name we see in Elasticfox (which is of course given by Amazon). Install any extra software we need using "emerge".
- Setup php-cgi in nginx. Get Drupal, setup nginx configuration for Drupal including rewrite rules (convert from the Apache rules supplied). Done!