devdev blog

なにかウェブサービスを作りたい

AWSのElastic BeanstalkとOpsWorksとCloudFormationの立ち位置

AWSには、リソース管理サービスとして、以下の3つのサービスがあります。

  • AWS Elastic Beanstalk -- ビーンスターク(豆の木, 豆の茎)と発音するようです
  • AWS OpsWorks
  • AWS CloudFormation
  • EC2, Auto Scaling等の個別サービス

それぞれの特徴と選択の仕方は、以下のページに書いてあります。

AWS のアプリケーション管理 | アマゾン ウェブ サービス(AWS 日本語)

以下の様な住み分けなんだと理解しました。

  • Beanstalk - インフラ専任がいないので、とりあえずな環境が欲しい
  • OpsWorks - インフラ専任もしくはそれなりにリソースがあるが、その運用に効率性・柔軟性を与えたい
  • CloudFormation - 自分で好きなように管理モデルを構築したい

ちょっとまえにBeanstalkを使ってみたので、その感想

メリット

Beanstalkは学習コスト対効果がなかなか優れたサービスだと思います。自分の場合は、Beanstalkを調べ始めて1週間程度で、ステージング、本番環境を用意することが出来ました。

この程度の学習で、EC2のオートスケール、ELBによる、アプリケーションの自動配備、ローリングアップデート、DNSの切り替えによるダウンタイム0のデプロイ、システムの監視が得られます。

それぞれ調べて調整するには、もっと時間がかかるように思います。

デメリット

情報がまだ少ないです。設定ファイルの書式は ini ファイル形式なのですが、そこで使えるオプションについてはOpsWorksやCloudFormationのものを参考にしましたが、何が有効で何が効かないか等の情報が少なかったです。

コマンドラインツールでBeanstalkを制御する場合で、チームで開発する場合、どういう開発・デプロイフローが適切かが、不明瞭です。

今後の期待

Beanstalkにチーム開発を想定した追加サービスが現れることを期待します。Jenkins等のCIをサービス化され、GITへのPushをトリガーに、テスト、デプロイが自動化されると、開発環境構築コストがかなり低減されるのではないでしょうか。