
Over the past 6 months, I've seen a number of blog posts evaluating the pros and cons of Amazon's EC2 service versus Google's AppEngine and I wanted to toss my assessment of the two services into the mix.
First off, I don't believe the two services really compete with each other. In the majority of cases, one service or the other is the clear choice for a specific usage. At its core, Amazon's EC2 allows you to scale any computer instance to n-instances, so you have total control over what's available on each virtual box. AppEngine abstracts away from the operating system (and the concept of a computer instance) and provides a deployment platform for Java/Python web applications. If you are building a web application supported by AppEngine (aka Java or Python based application), then the winner is clear as long as you don't need special functionality from the operating system. If you need more control over your system environment or special OS-specific tools (perhaps for OCR or something similar), then AppEngine won't provide the flexibility you need and EC2 is where its at.
Second, this should be obvious but it seems to get overlooked in many reviews but with Amazon EC2 you still need a sysadmin to setup and administer the instances. The restrictive nature of AppEngine's environment is what allows them to provide an OS-less application platform. This allows application developers to stay in the role they are best suited for, writing bug free code
Especially with smaller development shops, being able to really focus on what you are best at, provides huge efficiency bonuses.
Third, AppEngine's deployment solution is portable while Amazon's EC2 is not. This is the only point where I see AppEngine being a clear winner. If you start out developing for AppEngine and then down the road decide you need the extra power Amazon EC2 provides, AppEngine's framework is both open source and portable so you could switch services with minimal rework.
I'm not trying to say AppEngine is superior. In fact, I don't believe either service to be the "king of the cloud". They both provide superior deployment options for very different situations. Before deciding on a platform, be realistic about the amount of flexibility you need now and in the future and go from there.
Cheers,
Todd
Enjoyed this post? ReignDesign is a great team of tech-savvy developers providing RIA and mobile services. For more articles like this, subscribe to our blog feed.
Tags: amazon, appengine, ec2, google
