Both Amazon Web Services (AWS) and Google App Engine (GAE) can be used for free initially, AWS via the AWS free tier and GAE simply by default. Whatever your backend service, just keep it as light as possible initially as on cloud providers the larger your computations the higher the cost (or the quicker to go over your free usage limits). I would consider the RackSpace cloud (RS) too. Here RS compare their services to AWS.
One important distinction. In AWS and RS you have control over your instance because you "own" (pay for) and control a full instance. On the other hand GAE is a cloud application platform and therefore, as in the case of Heroku, you have to write your code to work with such application platform. There are several pros & cons to the cloud application platform.
For instance, as an advantage of GAE you get most DevOps for free. E.g. to update your application in GAE it's extremely easy, whereas on AWS you would have to write your own deployment script. On the other hand (as a problem I ran into), on GAE you cannot have your own DB server on the same instance since you do not have full control; you would have to go for a proprietary solution as Google Cloud SQL or GAE's High Replication Datastore.