Google App Engine vs. Amazon Web Services: The Developer Challenges, Page 2
In my experience, the most difficult performance problems with AWS occur when operations (such as using SimpleDB, file access to Elastic Block Storage volumes, or satisfying HTTP requests) slow down. The detective work of determining whether the problem is specific to your application or is an AWS platform issue is quite a challenge.
Compared with Google App Engine, which requires almost no administration tasks (almost all your work is in application development), using AWS carries some administration and deployment costs. While using AWS is much less effort than maintaining your own server farm, the costs of effectively using AWS for complex web applications partitioned over many servers in multiple availability zones can mean substantial system administration time. However, Google's App Engine has suffered several short breaks in service, so the additional admin cost for AWS probably pays off with more reliable service for your web application users (in my opinion).
On the data storage front, Amazon's SimpleDB is very similar to the Google App Engine datastore in that it is very reliable (won't lose data) and highly scalable (requiring no effort at all from you), and it provides schema-free data storage. However, it also shares some of the inconveniences of the Google App Engine datastore for developers who are used to using relational databases.
An Alternative for Ruby Developers
If you are a Ruby on Rails developer, a good compromise is to use the Heroku deployment platform (which itself runs on AWS). Using Heroku reduces administrative requirements to almost nothing (much easier even than administering Google App Engine applications). I also like to run a Rails application on Heroku along with my own web services running on AWS. If the web services you need to support a Rails application are modest, a single small Elastic Compute Cloud (EC2) instance is probably adequate. See my Developer.com articles on using Heroku with MongoDB and CouchDB remote services.
Both Google App Engine and AWS are very good resources for writing and deploying scalable applications "in the cloud." Hopefully, this article will help you to decide which platform to choose.
For Further Reading
About the Author
Mark Watson is a consultant living in the mountains of Central Arizona with his wife Carol and a very feisty Meyers Parrot. He specializes in web applications, text mining, and artificial intelligence. He is the author of 16 books and writes both a technology blog and an artificial intelligence blog at www.markwatson.com.