リア充爆発日記

You don't even know what ria-ju really is.

AWSにRailsをデプロイするのはBeanstalk or OpsWorks?

AWSはアプリケーションマネジメントサービスとして、Elastic BeanstalkとOpsWorksの2つを用意している。

どっちがいいのか?の判断基準の参考として公式には以下のページがある。
http://aws.amazon.com/application-management/

カンタンに言えば

  • コードさえ用意すれば、冗長化したインスタンス用意して、デプロイして監視設定までしてくれて宝クジがあたって彼女もできちゃうのがElastic Beanstalk
  • Chefと同じ事ができるのでレシピさえ用意すればなんでもできちゃうけど、彼女まではできそうにないのがOpsWorks

という感じのようだ。

だったらこんなのElastic Beanstalk一択っしょ!って思ってたんだけど、「秒速でデプロイ」みたいな売り文言に警戒心をいだいた堅実な性格のぼくは運用実例とかないかと探してみた。

で、見つかったのがこれら。
http://blog.recreahq.com/post/38155795749/deploying-rails-app-amazon-elastic-beanstalk
http://troessner.wordpress.com/2013/04/29/elastic-beanstalk-and-ruby-rails-stay-away/

1つめは、なんとか動かしているもののワークアラウンドがちょこちょこ必要なことを示しており、2つめは明確に「起きたり起きなかったりなエラーが多いしログもろくに出ねぇし、そもそも情報少ないし、運用事例も見当たらねえ。RailsでElastic Beanstalkは使うな。OpsWorks使え」と言っている。
確かに、運用実例も見当たらないし、StackOverflowでの引っ掛かりも弱い。

いっぽうでOpsWorksはつまるところChefなんだから、OpsWorksの立て付けが気に食わなかったら、自前でchef-soloあたりを前提にした仕組みを組めばいいんだから大きな意味でのハズレがないことは約束されている。

やっぱなんでも堅実にいかないとね。