ローカルで開発してきたRailsアプリをリリースするときに、どこにデプロイするか考えてみました。
前提
- 流行るかどうかわからないアプリなので、コストをかけたくない
- もし流行ったときに、スケールアウトしたい
- 運用にはなるべく人手をかけたくない
今回は、メジャーなHerokuとAWSに絞って比較してみました。
Heroku
- デプロイが簡単
-
git push
するだけ。nginxとかunicornとか考えなくていい。 - Githubと相性がいい。
-
- DBはPostgresがデフォルト
- スケールアウトが容易
- コストは安い
- 1dyno Hobbyで $7/mo
- DBはHobby Free(10k rows)なら無料
- 開発環境/ステージング環境など常時起動しないでいいなら無料
- 日本リージョンがない
AWS
- デプロイ自動化は可能
- ansible + capistranoとかでコードを書く必要がある。
- DBは同じインスタンスに入れることができるが、スケールアウトができない
- スケールアウトを考えると、PaaSのDB(Amazon RDS)を使う
- RDSはMySQL, Postgres, SQL Serverなど
- スケールアウトは構成を考える必要がある
- コストはRDS使うならHerokuより高い
- EC2 t2.nano $0.01/h = $7.44/mo
- RDS db.t2.micro $0.026/h = $19.344/mo
- 日本リージョンを選べる
結論
- 1dynoとt2.nanoで性能差がどれだけあるかは分からないが、運用コストと月額コストを考えて、Herokuを選択しました。
- HerokuはPaaSなので、できないことが多々あるかもしれませんが、まずはHerokuで運用しようと思っています。
※価格などは、2016/2/9現在の情報です。