We use Amazon’s S3 storage service here at Phanfare and love it. I especially like that while we are leveraging Amazon’s cost position and development budget, we could probably swap out the service for a competitive service or our own service if we really had to.
Google’s new App Engine offering, which gives you a vertically integrated development environment to create a web application in Python, has pros and cons relative to the Amazon Web Services approach of giving you more industry standard pieces like Linux instances (EC2), key-value stores (SimpleDB) and web-service-based filesystems (S3). (If you are not familiar with the offerings, Gartner has a nice summary)
Amazon’s offering is a lower level offering, closer to the hardware. It will take you longer to get started with Amazon Web Services and require more work to build systems but the resulting systems will be more extensible (and my guess, higher performing). For example, if I need to convert video using an obscure codec, I can probably install the appropriate code on an EC2 linux instance, but there may not be a suitable Python module for Google’s App Engine.
You can build Google’s App Engine on top of Amazon’s EC2 and S3 offerings, but you would have a tough time building Amazon’s web services using Google App Engine. To make the point, the folks at AppDrop are running the open source App Engine SDK on an Amazon EC2 instance.
There is a place for both the Amazon and Google approaches. If you want to create a new web app that requires very little third party open source software, Google App Engine will get you running faster, especially if you are proficient in Python and have no pre-existing code. The Google App solution might just wind up being your early prototype, but will let you get to market faster. If you are extending an existing service, have a lot of code, or want to split between in-house and cloud-based infrastructure, as we do at Phanfare (we use only S3), then Amazon is the natural choice.
Personally, Amazon’s approach is more attractive as we look to build Phanfare. Amazon is creating virtual instances of industry-standard services that everyone is building. I know that if we create services that run on an Amazon standard Linux EC2 instance that we can move it off of Amazon fairly easily. I also like that Amazon has broken down the problem of building scalable systems into different services pieces that do one thing very well. Large monolithic systems can get overly complex and unreliable.
Google has developed an environment that nobody is using today. If Google decides that Google App Engine is not strategic for them and discontinues it, it could be catastrophic for me. Sure I can take the SDK and run it myself like they did at Appdrop, but that won’t guarantee any level of reliability. By contrast, I am pretty sure that Linux is not going away. If we had to find another host for our Linux-based system, it would be easy.