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