Je suis clairement partial - je travaille au sein de l'équipe App Engine pour établir des relations avec les développeurs - mais voici ce que je pense:
Ils ne sont pas directement comparables. Il existe un ensemble d'applications que vous pouvez écrire pour n'importe laquelle d'entre elles, mais vous écrirez une chose différente dans chaque cas. App Engine fournit un environnement d'exécution restreint - pas d'écriture dans les fichiers, pas de sockets, etc. - et un SGBD non relationnel. Mais en retour, vous obtenez un environnement d’exécution qui évolue indéfiniment et un degré de certitude raisonnable que votre application sera redimensionnée à la taille souhaitée.
Azure, en revanche, fournit un environnement légèrement moins contraint, ce qui vous permet d’écrire un plus grand nombre d’applications, mais vous oblige à en écrire plus - car vous implémentez plus de la pile vous-même - et fournit une assurance beaucoup plus souple de l’évolutivité. .
Enfin, AWS fournit la solution ultime de bricolage. Ils fournissent le matériel, le stockage et pas grand chose d'autre. Vous construisez votre pile à partir de la base, vous la maintenez, vous la mettez à niveau, etc. Votre application est mise à l'échelle si et seulement si vous l'écrivez à l'échelle, ce qui n'est pas un mince défi. Mais vous obtenez un contrôle total sur votre matériel.
Mon conseil serait le suivant: si votre application correspond au modèle App Engine - et qu'une application de réseau social en est probablement un très bon exemple - écrivez votre application sur App Engine (Java ou Python, votre choix). C'est moins cher, et il est beaucoup plus facile d'écrire une application qui évolue.
Si votre application ne correspond pas au modèle GAE, choisissez Azure ou AWS, selon que vous écrivez pour la pile MS et le degré de contrôle que vous souhaitez avoir sur l'environnement d'exécution. Si la plupart de vos applications sont compatibles avec GAE, mais pas avec les petites pièces, vous pouvez envisager un système hybride - par exemple, la diffusion en direct sur GAE, mais le stockage sur S3 ou le traitement en bloc sur EC2.