Cloud Computing is a hot topic in IT circles right now and many will be keen to try out some of the technology involved to gain an insight into how they or their organisation might be able to benefit from this area. One significant product is the Amazon Elastic Compute Cloud (also known as Amazon EC2) which offers the promise of a server image that can adjust its specifications to cope with peak demands on a website. Getting started with this product has previously meant a lot of preparation though, lots of reading up on new terms and new ways of doing things and that is before understanding a pricing structure which thanks to its pay as you go nature might work out cost effective, but also takes longer to understand. Fortunately Canonical, the commercial backer of Ubuntu has stepped in and introduced an offer where you can test drive an instance of Ubuntu Server 10.10 on EC2 free of charge for an hour. I decided to take up this opportunity and see what I could learn.
The offer is detailed at https://10.cloud.ubuntu.com/ and you will need an account on Launchpad and some basic Linux command line skills to take advantage of it. During configuration you can chose a basic Ubuntu Server image or one preloaded with these web software options: Drupal 7 Beta 1, Wordpress or Moin Moin wiki. Once your server image is set up you can log in and alter it as you wish as you get given full sudo rights, giving you the power of the root user.
The first step before you get started is to register yourself on Launchpad, I already had an account so could get going but you can find full instructions there. The second step is to get an SSH key set up, this will be used later on to enable you to access a terminal session in your new server, you then need to register the public key part of this SSH key on your Launchpad account. This might sound a bit complicated but fortunately it is all clearly explained at: https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair. I noticed that there are instructions there for Linux and Windows, but not for the Mac, so I don't know if Mac users just follow the Linux instructions? Make a note of the passphrase you use while creating your SSH key, you will need this later. Once you have set up your Launchpad account and sorted out the SSH keys the difficult bit is largely over.
Now you are ready to click that big orange “Try Ubuntu 10.10” button to begin set up of your new EC2 instance. I found it odd in a way they picked 10.10 over 10.04 for this exercise as 10.10 is not a Long Term Service (LTS) release, meaning it isn't supported for long enough for a lot of business updates. LTS server releases get five years of updates but non-LTS only get eighteen months, so maybe 10.04 would have been a better product to show to enterprise minded people?
After signing into the trial you get a page asking you a couple of questions about how you would like your image to be built. I picked the option of an image with Drupal 7 Beta 1 already installed which meant I would have a server with MySQL and Apache 2 set up and ready to go on it. I also ticked the box for byobu. Then it was time for the moment of truth pressing the “Launch” button!
A “provisioning” page is now displayed to let you know that your new server image is being created. Note that this is not reusing somebody else's server image, a new one is being created in a process that takes only a minute or two, less time than it takes to unwrap a new physical server from its packaging. When this process is complete you get a message that the server is complete and a message stating:
“Your instance was launched with cloud-config content in the user-data field. To launch one on your own configured similarly, use the same cloud-config.”
I wasn't sure what this meant but it turned out that this is a file containing the configuration of the server and details on how it was set up, very handy if you want to replicate that image elsewhere on EC2 or own your own Ubuntu Cloud server. At this point you get some details on how to actually reach this server including the IP address, instructions on how to login to a terminal session with SSH and a handy URL to take you straight to the Drupal 7 installation page to set up your new site. So this is a really quick way to get a Drupal server and up and running.
If that isn't quite to your taste it is possible to set up your own machine images that can be replicated on demand, charging is done on the capacity actually used, so if you shutdown these images when you don't need them they shouldn't cost you anything. According to the EC2 documentation you can also get the CPU to be flexible about the amount of power it gives you, during busy times you can get more CPU power, it will cost you a little extra but there might be no need to upgrade server, it is designed to be a bit more flexible than traditional hosting arrangements.
When you log into the server via SSH you don't get prompted for a password in the terminal as you would on many servers, instead authentication is done via the SSH key you registered earlier and your machine prompts for the passphrase you used to create it. When you log in you get a nice message welcoming you to “the Cloud” and letting you know some information about your server. You can then alter the software installed on the machine using the usual apt-get commands (and packages download very quickly). Towards the end of the trial hour you get messages warning you that your trial is almost up.
It was great to be able to try out Ubuntu Server running on Amazon's EC2 technology. I was impressed at the speed at which new instances were set up and it was interesting to have a real experience of this technology. More importantly, and this is why this trial was a smart move from Canonical, I imagine it will make people more confident about proposing this sort of technology in future as the proposal will be based on an experience of actually using the product rather than just reading about it. This is certainly how I feel after the trial, even though the trial period was brief I felt it gave me an experience I could build on, which is also useful from a professional development perspective.