25 Feb 2011 Amazon CloudFormation First Look
Every so often someone mistakes me for an expert on things and asks me to pontificate or play pundit. Sometimes those questions revolve around Amazon, Amazon Web Services and why AWS seems to be kicking ass all over the Infrastructure-as-a-service (IAAS) world.
As much as I hate putting on my pundit hat (I’m an in-the-trenches kind of guy, not a suit …) , I do occasionally have some thoughts as to why Amazon is going to rule the cloud computing world and why the window of opportunity for competitors to play catch-up is shrinking. At this stage in 2011, I really don’t think anyone is going to have the combination of engineering skills and globe-spanning infrastructure necessary to attack Amazon Web Services in any significant way.
One of the common examples I give to people to explain why AWS is going to rule the world is this website:
That is the site where AWS posts notices of new products, features, services and enhancement to existing stuff.
The rate of innovation and the pace at which AWS rolls out is simply insane. If you don’t believe me, just scroll back through the history of posts at that typepad.com site and look at the month by month announcements. It’s rare for a single month to go by without AWS making a significant new announcement (or two, or three…).
Dopy research firms and pundits/suits can babble all they want about “the competition” but real people look at what is available and shipping today.
By the time an IAAS competitor finishes feature-copying what Amazon is already doing today, the ninjas doing all the complex stuff behind the scenes at Amazon will have already moved on to the next big engineering challenge or customer request.
As we get deeper in 2011 it’s getting harder and harder for me to come up with many significant peers or competitors who can match the infrastructure, pricing and rate of development.
Today’s example: AWS CloudFormation
I woke up this morning today to find the announcement about AWS CloudFormation in my inbox.
It looked pretty cool, especially the deep integration with existing AWS products and the nice “treat your infrastructure plans as text files” that can easily be tracked, audited and versioned control just like we do with source code.
At BioTeam, we are already Chef zealots and this announcement is unlikely to change our Chef usage all that much, especially as we can use Chef to orchestrate our own internal infrastructure in much the same way we use it to build and deploy cloud systems.
CloudFormation ended up on my mental “to play with when I find the time” list simply because it seems interesting and something that we can leverage for work in the future.
Hey Chris, Can we get a Redmine instance going?
Putting CloudFormation on the back burner lasted all of about 4 hours. On the same morning as the CloudFormation announcement was made, someone asked the Open Bioinformatics Foundation for a Redmine instance as a potential alternative to an bugzilla issue and bug tracking system.
The Open Bioinformatics Foundation (OBF) has already moved a few services onto inexpensive T1.Micro server types running on Amazon. Results have been good both for a source code buildbot system as well as an instance of the OpenConf conference planning software.
CloudFormation has a Redmine template!
I could not think of a better excuse to kick the tires on CloudFormation after that request. Especially as OBF already has an AWS account and running EC2 instances.
Redmine CloudFormation deployment: 20 minutes @ Starbucks
It really did take about 20 minutes sitting in a starbucks to go from nothing to a fully deployed Redline system complete with a running T1.Micro EC2 server instance, an automagically provisioned Elastic IP address and the backend MySQL database running in on the nice and safe AWS RDS platform.
It would have taken 10 minutes if I had not mistakenly named my database instance something that caused the RDS creation to fail and rollback. Once I simplified the database name it took about 5 minutes to configure the stack and 15 minutes for the stack to progress all the way up through completion & deployment
What follows below is a set of screen captures showing how all of this was done via a simple web brower.
I also installed the command line tools for CloudFormation and it would have been just as easy to do this from a terminal window.
I did use the CLI tools to download the stack template file which I will include here as a reference to what the JSON syntax looks like.
Figure 1: Hey look, a new tab in the AWS console!
Figure 2: Signing up for the service:
Figure 3: CloudFormation activated:
Figure 4: Creating a “Stack”
Figure 5: Selecting A Template:
(note my syntax mistake with naming …)
Figure 6: Specifying Parameters:
Figure 7: Review Stack Settings:
Figure 8: Create the stack!
Figures 9 & 10: Fix my mistake:
(I used a bad database name apparently, causing the creation to fail and an automatic rollback to occur. At this point I deleted the stack and started over)
Figures 11 & 12: Create and deploy the Stack:
Figure 13: Confirm our Stack is running:
Figure 14: SUCCESS
Command Line Tools
Two quick examples of using the command line tools to query for existing stacks, followed by a command to download the JSON formatted Stack template:
The Stack Template Itself
Click on the link below to see the JSON formatted CloudFormation template itself: