更新:答えは最新ではありません。GoogleのCloud SQLはベータ版ではなくなったため、AWSとGAEの両方がMySQLデータベースを使用するように記述されたJavaアプリをサポートし、移行はそれほど難しくありません。全体的な考えは、どちらのクラウドプロバイダーも、「すべて」を提供できるようになる傾向があるということです。AmazonがBeanstalkに取り組んでいる間に、GoogleがCompute Engineを起動しました。ただし、AmazonのIaaSサービスはGoogleよりも成熟しており、GoogleのPaaSサービスはAmazonよりも成熟しています。つまり、IaaSとPaaSのどちらが必要かということになります。
AWSとGoogle App Engineの間には重要な違いがあります。AWSはサービスとしてのインフラストラクチャ(IaaS)であり、GAEはサービスとしてのプラットフォーム(PaaS)です。つまり、AWSでは引き続き独自のサーバー(ec2インスタンス、dbインスタンス、ロードバランサーなど)を管理する必要があります=>いくつかのsysadmin作業が必要です。GAEを使用すると、アプリをコード化してGoogleクラウドにデプロイするだけで、実行するサーバーやサーバーの数を気にする必要がありません。Googleがすべてのsysadmin作業を代行します。
どちらも従量課金モデルを使用しています。
各質問の回答:
- AWSでサポートされています。GAEの場合は、独自のデータストレージ(ビッグテーブルと呼ばれます)を使用する必要があります。大きなテーブルデータへのアクセスにはJPAを使用できますが、多くの制限があります(たとえば、テーブル結合を実行できないなど)。GAEはリレーショナルデータベースをサポートしていますが、ベータ版のようです。
- どちらにも無料プランがあります:AWS、GAE
- 難しい。ポイント1で述べたように、gaeは独自のNoSqlデータストレージを使用します。リレーショナルモデルに切り替える場合は、モデルを再設計する必要があります。
- チュートリアルを読む:AWS、GAE。
注:AWSはまたを通じてのPaaSをサポートしていElastic Beanstalkで、それはまだベータ版であります