October 22, 2016
Hot Topics:

Google App Engine vs. Amazon Web Services: The Developer Challenges

  • March 28, 2010
  • By Mark Watson
  • Send Email »
  • More Articles »

AWS Challenges

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.

The Wrapup

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

  • AppScale is an open source Google App Engine implementation written at UCSB. It uses MongoDB, Cassandra, MySQL, HBase, Voldemort, and MemcacheDB as database back ends. The availability of AppScale makes it possible to move your applications off of Google's infrastructure using your own server cluster or Amazon EC2.
  • A video from Google I/O 2009 demonstrates an effective approach to using the Google App Engine datastore.
  • The Amazon documentation for AWS is excellent.
  • 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.

    Tags: cloud computing, Web services, Google App Engine, AWS, Amazon Web Services

    Page 2 of 2

    Comment and Contribute


    (Maximum characters: 1200). You have characters left.



    Enterprise Development Update

    Don't miss an article. Subscribe to our newsletter below.

    Sitemap | Contact Us

    Thanks for your registration, follow us on our social networks to keep up-to-date
    Rocket Fuel