Elastic Beanstalk本を読んだ

8月にO'ReillyからAWS Elastic Beanstalkの解説本(英語)が出版されていたので読んでみました。まだまだ誰もが知る製品とはいえないBeanstalkですが、すでに紙の本が出版されて本屋に並んでいるあたりに、米国においてAWSが完全な市民権を得ている雰囲気を感じます。

Elastic Beanstalkは、ごくごく簡単に言えば、アプリケーションをAWSの様々なリソース上に素早くdeployするためのプロダクトです。現在はコンテナとして用意されているのはTomcatのみですが、今後はJava以外の言語も含めて、複数の環境がサポートされていくようです。詳しくは、AWS公式ブログの記事が参考になると思います:

Elastic Beanstalk - O'Reilly

Elastic Beanstalk: Simple Cloud Scaling for Java Developers

Elastic Beanstalk: Simple Cloud Scaling for Java Developers

著者はProgramming Amazon EC2: Survive your Successと同じJurg van Vliet氏と Flavia Paganelli氏を含めた4名の方で、AWS Solution Providerの9apps(オランダ)のエンジニアの皆さんです。

この本は50ページしかないのですが、Elastic Beanstalkの解説に加えて、実際にURL短縮ツールをBeanstalkを使ってAWS上にdeployする例が紹介されてます。Beanstalkでは、Auto Scalingによって自動的にEC2インスタンスが起動・停止されるので、ローカルにデータを保存するというアプローチは取れないわけですが、そのためにどのようなアーキテクチャをとるべきかといった点も簡単に説明されています。Hudsonを使ってCIの環境を構築している点など、実務的な視点が貫かれているのが特徴だと感じました。

AWS tips

AWSのwebサイトなどに明示的に書かれていない内容で、執筆陣が経験的に学んだAWS利用上のtip(コツ)的な内容も有意義だと感じました。アベイラビリティ・ゾーンを複数利用することが可用性向上に極めて重要であり、EC2障害時に有効に機能する方策であることなどもしっかり書かれています(p.19)。

Beanstalk固有の話題ばかりではないですが、3箇所ほど印象的な部分を引用すると・・・

There is an EBS volume and ephemeral storage. Both are unreliable for storage that needs to be persisted. (p.4)

参考訳:EBSとephemeral storageがあるが、どちらもストレージとして十分な信頼性があるわけではないので(S3にスナップショットをとったり、DBに記録するなどの方法で)永続化する必要がある。

EBSのスナップショットはS3に保存されるので、スナップショットまでとっておけば、相当安心できますねー。

Elastic Beanstalk is not a PaaS. You can forget about servers for a while, but if you are not happy with them, you can take control. (p.17)

参考訳:BeanstalkはPaaSではない。しばらくは個別のサーバーについて考えなくて済むが、もし都合が悪いことがあれば細かく制御することができる。

AWS公式ブログにも書かれていますが、必要に応じてサーバー単位でトラブルシュートを行ったり、ロードバランサーの設定を変更したりといったことが可能であったり、Elastic Beanstalkは、いわゆるPaaSとは毛色の違うサービスなのですが、案外メッセージが伝え切れていないのかな、と思うこともあります。

It is important to realize that the command-line tools always implement 100% of the available features. The Console does not. (p.20)

参考訳:コマンドラインツールは100%の機能を常に網羅している一方で、マネージメント・コンソールは必ずしもそうではない。

スクリプトで自動化したりする上で、実際にはコマンドラインツールが有用な局面も多いのですが、一部の操作についてはコマンドラインツールを使わないと行けないという現実があります。GUIで100%の機能が網羅されているとさらに良いですね。

Hacking Elastic Beanstalk

本書の第4章は"Hacking Elastic Beanstalk"と題されていて、Beanstalkの応用的な話題として、Apache httpdをNginxに置き換えたり、OpenJDKをSun JDKに置き換えたりといった内容が触れられてます。

まとめ

ページ数の割に少々値段が張りますが、Beanstalkの解説として記念碑的な本ですし、EC2などについても学べる内容が大ですので、Beanstalkに興味があれば読んでみて損はないと感じました。

この記事のリンクはAmazon.co.jpアフィリエイトになってますが、Amazon.com(米国)だと$9.99でKindle版を購入できます。円高のおかげで、今なら800円未満です。また、O'Reillyのオンラインサイトからは、$16.99ですが、DRMフリーなePub, Mobi, PDFの電子ファイル形式で購入することも可能です。