I have been watching Amazon EC2 progress but I had never deployed one on my own. I really wanted to see if it lived up to the hype. So far it does. I have been using an Amazon S3 account already to back up my blog and some other files and wanted to see if the EC2 experience was equally painless.
Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developer but for tinkerers like me it’s a great way to bring up a test or lab server. Since you are charged by your compute hours you only pay for what you use not for taking up rack space in a data center as you would with a hosted server. I expect for my needs I can probably get away with running my test servers for a few bucks a year. I am sure persistent servers would only be slightly more expensive.
For my first test I needed something to deploy. Amazon has a huge directory of Amazon Machine Image or AMIs. I decided to use one of the cloud images from Btinami, a Joomla CMS image for a project I was working on.
Setting up the account for me as an existing Amazon customer was a piece-o-cake. I just signed up and then entered my telephone number, Amazon’s automated system called me immediately and asked for a PIN number used during the sign-up process. Next I logged into my EC2 Account and configured my security group – I added support for HTTP (Port 80), SSH (Port 23) and HTTPS (Port 443) since they were the ports I might need to access Joomla! and the server. Then I went through the process. I got so excited about how easy it was I followed up and installed an Ubuntu image for another project. I documented it as I went figuring it would have some level of complexity. However I was wrong it was dead simple. Here are the 1o easy steps for deploying a AMI.
Step 1: Find an Amazon Machine Image
Step 2: Set-Up an EC2 Account
Set-up a Amazon EC2 Account and login.
Step 3: Choose your Amazon Machine Image
Choose your Amazon Machine Image (AMI) by clicking on the Community AMI Tab and entering the AMI ID from the listing you choose in Step 1.
Step 4: Request You Instance
Next you can choose the number of instances by size and billing options. You have a number of choices to make here including which data center you want to run your instance from (I had four choices). I also could chose between two billing options.
EC2 Instances let you pay for compute capacity by the hour with no long term commitments. This transforms what are commonly large fixed costs into much smaller variable costs.
Spot Instances let you pay for compute capacity by the hour at a Spot Price that fluctuates based on supply and demand. You specify a maximum price you are willing to pay per hour, and your instance only runs when the Spot Price is at or below that price. This allows for cost reduction on compute tasks with flexible start and end times.
Step 5: Advanced Instance Options
I chose cloud monitoring here, for an extra fee you can have Amazon monitor your EC2 Instance. I checked the box because I was interested in what they offered in the way of monitoring:
Step 6: Create a Key Pair
Step 7: Configure Firewall
Step 8: Review and Launch
Step 9: Wait for the image to boot.
Step 10: View Your Amazon Instance
If you want to buy additional services Amazon offers EBS Volumes and Elastic IPs. I didn’t buy either but I suspect they would be of value to people who are bringing up producton servers but for creating a sandbox it’s pretty darn simple.
All in all bringing up EC2 instances is dead simple. Of course if you need to create a custom image it’s a few more steps but overall it’s by far the easiest way to bring a server online I have ever used.