Atualização : a resposta não está mais atualizada. Como o Cloud SQL do Google não está mais em BETA, isso significa que tanto a AWS quanto o GAE oferecem suporte a aplicativos Java escritos para usar um banco de dados MySQL e que a migração não é mais tão difícil. A ideia geral é que ambos os provedores de nuvem tendem a chegar a um ponto em que oferecem "tudo": o Google lançou o Compute Engine enquanto a Amazon trabalha no Beanstalk . No entanto, os serviços IaaS da Amazon são mais maduros que os do Google, enquanto os serviços PaaS do Google são mais maduros que os da Amazon. Tudo se resume a se você deseja IaaS ou PaaS.
Há uma diferença fundamental entre AWS e Google App Engine: AWS é infraestrutura como serviço (IaaS), enquanto GAE é plataforma como serviço (PaaS). O que isso significa é que com a AWS você ainda precisa administrar seus próprios servidores (instâncias ec2, instâncias db, balanceadores de carga e assim por diante) => algum trabalho de administrador de sistema necessário. Com o GAE, você só precisa codificar seu aplicativo e implantá-lo na nuvem do Google, sem se preocupar com quais servidores ou em quantos servidores ele executa. O Google faz todo o trabalho de administrador de sistemas para você.
Ambos usam um modelo de pagamento conforme o uso.
Respostas para cada pergunta:
- Suportado pela AWS. Para GAE, você precisa usar seu próprio armazenamento de dados (é chamado de mesa grande). Você pode usar JPA para acessar dados de big table, mas há muitas restrições (como você não pode fazer junções de tabela, por exemplo). GAE tem suporte para bancos de dados relacionais, mas parece estar em beta.
- Ambos têm algum plano gratuito: AWS , GAE
- Difícil. Como eu disse no ponto 1, o gae usa um armazenamento de dados NoSql proprietário. Se você quiser mudar para um modelo relacional, precisará reprojetar seus modelos.
- Leia seus tutoriais: AWS , GAE .
Nota : AWS também tem suporte para PaaS por meio de beanstalk elástico , mas isso ainda está em BETA