EYCでのステージング環境問題ですが、料金シミュレーターで見積もってみたらsmallを一台だけ立ち上げれば6119円だそうなのでEYCにステージング環境を作ってみました。
こんな感じです。
staging環境はRails.envがstagingになります。そんなの大丈夫なのかよとおもいますが、37signalsも色々とenv作ってるようなので予想外のことはそれほど起きないです。
変える必要があるところ
- database.ymlにstagingを追加する。
if Rails.env.production?
となってるところをif Rails.env.production? or Rails.env.staging?
に変える。- s3、CloudFrontにstaging用の設定を追加する(paperclip使ってる場合は要注意)
- Gemfileで
group :production do
となってるところをgroup :production, :staging do
に変える。
ものに応じてproductionだけでやりたいこと、production or stagingでやりたいことがあるので慎重に選ぶ必要があります。
例えば公式Twitterアカウントで通知する部分や本物の広告配信はproductionだけでやりたいでしょうし、S3を使うかどうかというのはproduction or stagingでやりたい。
リリース作業をCIする
デプロイといっても色んな意味が含まれてて、コンパイル・テスト・パッケージング・リリースをひっくるめてデプロイと言えますが、Railsだと大抵テストのみをさしてデプロイと言う。
実際のRailsアプリはリリースで問題が結構起きるのでこれを含めてCIしたい。
EYCはeyコマンドでリリースするので怖話ではこんな感じ。
弊社の場合はpushされるたびに↓のような通知がくるが、まあいい。
受託開発でEYCを使う場合はステージング環境代金もちゃんと見積りに入れると良いと思います。