AWS Elastic Beanstalk

Amazon Web Servicesにまた新しいサービスが。 Elastic Beanstalkは、JavaのWeb Serviceのコンテナを提供してくれるサービス。Beanstalkは「豆の木」。BeanがJavaを指すんだろう。

なにができるか

要するに、サーブレットコンテナTomcatが、ロードバランサの背後で自動的に数を増減しながら動いてくれる、ということ。内部的にはEC2, S3,SNS, Elastic Load Balancing, Auto-Scaling を利用して構成されているそうだ。

ユーザがwarを作ってアップロードする。この部分はEclipseプラグインから自動的にもできるらしい。App Engineと同じだ。

App Engineの場合インスタンスの起動時間を短くしなければならない関係でSpringなどの重いフレームワークは事実上使えなかったけど、Beanstalkなら問題なく使えるだろう。

必須であるデータベースに関しては、選択できるとしか書かれていない。RDS, SimpleDB,Oracleインスタンスのどれでも使えるのだろうけど、デフォルトでRDSあたりをセットアップしてくれてもいいような気がする。

アプリケーションは、

http://myapp.elasticbeanstalk.com/

のようなURLで提供される。このあたりもApp Engineと同じ。

特徴は

ふつうのPaaS、たとえばApp Engineなどでは、コンテナの下のレイヤ、たとえばOSに直接さわることはできない。Beanstalkだとそれができるらしい。下にあるのは普通のEC2なのでログインしていろいろやることが可能。

しかし、これができるべきなのかというのは議論の残るところじゃないだろうか。EC2のインスタンスはBeanstalkで勝手に起動・シャットダウンするのだろうから、EC2のうち1台にだけ入ってどうこうしても意味がない。

下のレイヤに触れるということは、下のレイヤをプロバイダ側でいじれないと言うことになる。それでいいんだろうか?

お値段

このサービス自身は、なんと無料。当然、AWSのEC2や他のサービスをつかうことになるのでそちらの課金は発生するのだけど、Beanstalk自身は無料なんだそうだ。これはインパクトある。

所感

このサービスでAWSがPaaSに参入!というとらえ方もあるようだけど、私的には、Elastic MapReduceもPaaSだと思っているので、とっくに参入していたんじゃないかと。たしかにWeb ApplicationのPaaSにはインパクトがあるけど。

このサービスは、外部サービスとしても実現可能なんじゃないだろうか。実際そういうサービスを提供していた会社もあったような気がするのだけど。。初期のAWSは外部にエコシステムを構築してそちらに任せるというスタンスだったと思うのだけど、最近ちょっと違うのかも。市場が成熟したということか。