AmazonはPaaSの分野に参入する。手始めにJava環境を提供するが、すべての開発者が利用できるプラットフォームを構築する予定だ。
Amazonは今までInfrastructure-as-a-Service (IaaS)プロバイダとして知られていた。Amazonクラウドにアプリケーションを配置する企業は既に定義されているAMIを利用するか作成するかしなければならなかった。そしてその後、アプリケーションの実行に必要な関連サービスの設定をする。たとえば、ロードバランサやスケーリング、監視、データストアなどだ。しかし、AmazonはPlatform-as-a-Service (PaaS)事業への参入を決めた。Elastic Beanstalkというアプリケーション開発と配置のためのコンテナは、顧客のアプリケーション実行に必要なサービスすべてとプラットフォームを提供する。
現在パブリックベータのElastic BeanstalkはLinux、Apache、Tomcat、Java、Load Balancer、Auto Scaling Groupで構築されたJavaのコンテナだ。開発者はこのコンテナにアプリケーションをアップロードするだけで、他の設定をすることなくアプリケーションを実行できる。基本的にはひとつのステップで利用できる完全な環境を提供する。
開発者はアプリケーションの各バージョン用にEC2インスタンスとLoad BalancerとScaling Groupで構成した環境を定義できる。アプリケーションの各マイナーバージョンの環境を作成するのではなく、開発、テスト、配置ごとに異なる環境を作成するような使い方をする。各環境には構成があり、環境全体のパラメータが詳細に定義されている。Beanstalkはアプリケーションとその環境、各構成でできている(詳細はこちらを参照)。
Amazonのこのサービスが面白いのは、開発者が環境全体を制御して、望み通りの調整ができることだ。AMIやAvailability Zoneの設定、データベース、ヒープサイズやガベージコレクション、環境変数などJVMの設定、監視間隔、バランザのためのHTTPSリスナポート、通知機能、ロギングなどのなどさまざまな設定がある。
Elastic BeanstalkにはAPIとコンソールがあり、環境を操作するのに利用できる。開発者はEclipseのプラグインを利用して、Beanstalkを定義し、クラウドに直接アプリケーションを配置できる。
Amazonは現在、JavaをターゲットにしたBeanstalkだけを提供しているが、パートナーと協力してさまざまなプラットフォームを提供しようとしている。AmazonのCTOであるWerner Vogels氏曰く、
AWS Elastic Beanstalkは他のプログラミングプラットフォームが比較的簡単に作成できるように開発されています。これはとても重要なことです。AWSの開発者エコシステムはとても豊かで、私たちはこの状態を維持したいと思っています。すべての開発者が好きなプラットフォームがAWSで常に利用可能で、開発者が耐障害性を備えたアプリケーションを配置し運用することを心配することなく、アプリケーションの開発にだけ注力できるようにすること。これが私たちの目標です。簡単に言うとAWS上にたくさんのプラットフォームを咲かせたいのです。
.NETプラットフォームでさえ準備をしているようだ。このプラットフォームは普段はMicrosoftのAzureに惹き付けられている.NET開発者をターゲットにする。
Elastic Beanstalkには追加のコストはかからない。必要なのは普段EC2、S3にかかる費用だけだ。このサービスは現在、US East、Northern Virginiaで利用できるが近い将来ほかのゾーンでも使えるようになる。