IMO, the perfect setup for most non-Facebook sized money-making web apps is nearly always dedicated SSD-powered database hardware connected to a cheap cloud of virtual boxes to serve requests. Spending engineering $$$ on scaling your data across unreliable virtual instances often is not a good idea.
Going all-dedicated, if you can afford it, is great for pretty good uptime at zero engineering cost. I recommend SoftLayer for this: they sell cheap and reliable dedicated servers connected to pretty good networks (just stay away from their older Dallas-based DCs, but DC5 is good).
Reasons:
Local development with Appengine is pretty bad. Good luck debugging and profiling production issues.
Appengine will make you jump through many hoops that undermine or completely drop pieces of the Django framework.
Getting data out of Appengine is a huge nightmare and timesink.
If you ever decide to migrate off Appengine you will need to rewrite almost everything.
I still have an app on GAE (the high availability version) mostly because I don't want to roll out my own HA Mongo DB. At some point it will become cost effective to do my own.
The other AWS plus: when my response time skyrockets, I can figure it out and fix it.
I recently made the switch from Datastore/djangoappengine to Cloud SQL, and it has been a far better experience.
(where I work)
I'm happy to elaborate, but I would stay as far away as possible from GAE. Our experience was terrible. I should note as a disclaimer that we did not use the high availability version.
Docs on running native django on cloud sql: https://developers.google.com/appengine/docs/python/cloud-sq...
A guide I used to set it up: http://www.joemartaganna.com/web-development/running-django-...
Last time I touched any of these sites other than to add security patches and the likes was 6 months ago, so it could be better/worse these days, YMMV.