ほろ酔い開発日誌

AI企業のエンジニアのブログです。機械学習、Web開発の技術的お話、ビジネスチックなお話、日常のお役立ち情報など雑多な内容でお送りします。

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

複数のアプリケーションサーバーを用意して負荷分散をやろうと思いました。それで、それぞれに対して別々に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出来ます。

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