Heroku と Engine Yard と Elastic Beanstalk

記事タイトルとURLをコピーする
こんにちは、営業部という部名を変えたくて他の名前を考えているものの横文字はチャラいなぁという古風の考えを持っているため雲解決部にしようとしている羽柴です。
今日は名曲「部屋と◯シャツと私」に似たような題名できめてみました。

3つのPaaSを比較してみる

早速ですが、AWS Elastic BeanstalkがRubyをサポートしましたね。社内にはRuby on Railsが好きなエンジニアもいますので、PaaS(Platform as a Service)として選択肢が増えたことは嬉しいかぎりです。
そんな中、こんなTweetを見ました。
私たちの会社ではCloudworksなどのサービス提供のインフラとしてHerokuを使っているものの、最近 Engine Yard も熱いなぁと思っていたところで Elastic Beanstalkが Rubyサポートをしたことを受けて、とても目移りしています。そこで現時点での比較表を作ってみたいと思います。
ちなみに私もプログラマではないので大したコードは書けませんがHerokuは好きで、ある切腹アカウントの簡単なTweet Bot を動かしたりしています。

比較表

  Heroku Engine Yard Elastic Beanstalk
サポートされている言語 Ruby , Java , Python , node.js , Scala , Cloujure

Ruby , PHP, node.js Java , .NET , Python , Ruby , PHP
DB PostgreSQL , 自前DBも可能 PostgreSQL , MySQL , 自前DBも可能 自前DB
デプロイ方法 Git Git Git , IDE
オートスケール なし なし 標準装備
スケール方法 2種類のDynosという専用の単位を増やしていく サーバー増設 サーバー増設
インフラ AWS AWS , 他 AWS
リージョン US-EAST 複数Regionから選択可能 複数Regionから選択可能
テナント マルチテナント シングルテナント シングルテナント
無料プラン あり 制限付きあり(時間制限) 制限付きあり(EC2の無料枠に依存)
その他特記事項 数多くのサードパーティプラグインはまるで宝石箱 Chefによる構成管理は感動ものの予感 Amazon VPCへの対応は泣けるほど嬉しい

一部思い切って端折ったところもありますが概ねこんなところだと思います。こうみると3つのサービスが共通でサポートしている言語はRubyだけなんですね。

まとめ

感覚的に最もPaaSらしいのはHeroku、ややIaaS寄りなのが Engine Yard、さらにIaaS寄りなのが Elastic Beanstalk です。用途としての使い分けとしては以下のような感じかなぁと。

とにかく早くリリースならHeroku

ある程度インフラを把握しつつアプリ開発に集中したい場合はEngine Yard

インフラも把握しながらのしっかり開発であればElastic Beanstalk

また、もちろん快適なレスポンスが必要なケースなどの場合はリージョンが選択できる Engine Yard か Elastic Beanstalk になったりと構築するシステムの要件に応じても最適なサービスが変わってくると思います。

各々特徴は異なりますが3つともPaaSとして素晴らしいサービスで、アプリケーションのデプロイや監視などのインフラ運用管理はスクラッチ構築に比べると劇的に楽になることは間違いありません。国内ベンダーからもニフティさんのC4SAやIIJさんのMOGOKなども出てきますので、今後どんどん盛り上がってくると思います。ぜひぜひみなさん試してみてください。