Have you looked at Amazon Web Services and shook your head in dismay and frustration? Well, stop shaking your head and shake my hand instead, because so have I. The documentation is so geeky it froze me solid for several minutes - surely it must be easier than this?
I've had customers become so confused that they gave up entirely!
Here's what I want you to know: yes, it is a bit geeky. However, getting started is not all that difficult. If you can handle getting Apache or any other web server configured and running, you can do this.
By the way, I searched in vain for a simple write up that would explain what I needed to do to get started - I never found anything, so this is my gift to you and the world.
I'm going to skip right by the simple stuff like creating an Amazon account. You'll need to give them a credit card, but since November 2010, you can get free (yes, free) use for a year. No, I'm not kidding:
From AWS Free Usage Tier:
There are some limitations, but they are quite generous - see the link above the quote for details. After the year is up, they estimate that your site would cost about $40 a month - that is very competitive with hosting sites offering comparable services.
So, you've signed up. Sign in to the control panel - that will vary by your geographic location, but for me it is https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Home.
Click on the EC2 tab and create an Instance.. You'll get a screen like this:
Choose your poison (you need to pick one of the *starred* instances to be eligible for the free year). Once you do that, Amazon provisions the (virtualized) server and sends you email when it is ready. It will have also created a firewall rule that allows you to ssh with a key - you'll get that key shortly.
Once the instance is ready, you can start it up and assign a static IP to it.. Amazon calls this an "Elastic" IP because you can quickly assign it to another instance if you need or want to.
You need to generate a key pair. That's right there on the control panel. You give it a name and it gets downloaded as a ".pem" file. Congratulations, you are ready to access your server:
ssh -i mykeyfile.pem ec2-user@my-elastic-ip
"mykeyfile.pem" will actually be whatever name you gave it when you created it. You'll need to use "ec2-user" until you create other users later.
You'll be logged in. Issue a quick "sudo su -" and you are root.
You'll next install your software of choice. I did "yum install httpd", did some editing of httpd.conf, threw some files into the /var/www directory (using "scp -i mykeyfile.pem ec2-user@my-elastic-ip:") and did an "httpd -k start". The webserver can't be accessed until you add a firewall rule back at the EC2 dashboard, but once that's done, the webserver is up and running. Yes, it really is that quick.
One thing you do NOT want to do is trust much of what you read on the web about AWS. You'll find plenty of pages that tell you that you can only serve static pages - no dynamic content. That was true before you could install these server instances, but obviously is not true now.
I am considering transferring this site to AWS. Certainly there are pros and cons - perhaps we'll look into some of those in the next post. I'd save a few hundred dollars the first year, and it certainly gives me back the flexibility and control that I lost when moving to shared hosting.
Got something to add? Send me email.
More Articles by Anthony Lawrence © 2011-04-12 Anthony Lawrence
If we define Futurism as an exploration beyond accepted limits, then the nature of limiting systems becomes the first object of exploration. (Frank Herbert)