読者です 読者をやめる 読者になる 読者になる

ほろ酔い開発日誌

有意義な技術的Tipsを共有出来たら嬉しいです。Ruby、Railsが好きです。Web開発全般(Rails多め、フロント、サーバー、インフラ)、データ分析、機械学習あたりの記事が中心になる予定です。

Capistranoで複数productionサーバーに対して別々にdeployする

AWS Capistrano Rails

複数アプリケーションサーバーを用意して負荷分散をやろうと思いました。それで、それぞれに対して別々にdeployしたいなーと思いました。

今回やるのはAWS上のEC2の2台に対してそれぞれ別々にdeployします。 ここでやるのは、productionとstagingをそれぞれdeployするのではなくあくまでどちらもproductionにdeployするということです。

今回利用したのはこちらです。

github.com

普通にcapistranoの設定をした後に

  gem 'capistrano-multiconfig', require: false

をGemfileに加えて、

Capfileの中のcapistrano/setupcapistrano/multiconfig に変えれば準備オーケーです。

require: false入れないとうまくいかなかったです。

あとは以下のようなファイルを用意します。app1、app2のところは好きな名前で大丈夫です。production.rbをそれぞれに用意します。

/config/deploy/app1/production.rb
/config/deploy/app2/production.rb

あとは

$ bundle exec cap app1:production deploy

のようにコマンドを打つといい感じにdeploy出来ます。

このやり方の記事があまりなかったのですが、あまりこういうことってしないもんなのでしょうか?