0
0

More than 1 year has passed since last update.

ElasticBeanstalkのRuby環境で軽微な修正を反映させるためにPuma再起動する方法

Last updated at Posted at 2022-07-20

概要

マネージドサービスの場合、通常のデプロイ手順だとEC2自体が別のものに切り替わったりして反映までに時間がかかるため、そこまでの手順を踏まずに軽微な修正を反映したい場合の手順を記載します。

ElasticBeanstalk環境

Ruby 3.0 AL2 バージョン 3.4.8

ソースコード修正

ElasticBeanstalk(Ruby環境)で稼働しているEC2にsshキーペアでsshログインし、修正対象のファイルを修正しておきます。

sudo su - webapp
cd /var/app/current
# rubyファイルを修正

# もしRailsアプリケーションでassetsを変更した場合は以下が必要(環境変数読み込みとassets:precompile)
export $(/opt/elasticbeanstalk/bin/get-config --output YAML environment | sed -r 's/: /=/' | xargs)
bin/rails assets:precompile

Puma再起動方法

PumaプロセスIDの取得

ElasticBeanstalkで稼働しているEC2にsshキーペアでsshログインし、以下コマンドを実行します。

sudo su - webapp
ps aux | grep "/var/run/puma/my_app" | grep -v "grep"

稼働しているpumaのプロセスIDが取得できます。

webapp   13591  0.0  2.8 262392 27696 ?        Ss   Jul19   0:03 puma 5.6.4 (unix:///var/run/puma/my_app.sock) [current]

Puma再起動

上記のプロセスIDから以下のようなpumactlコマンドでアプリケーションサーバpumaの状況取得および再起動が実施できます。

/var/app/current 配下でpumactlを実行するとconfig/puma.rbが存在する場合に上書きで設定を読み込んでしまうので、別のディレクトリで実行します

cd ~
pumactl -p 13591 status
pumactl -p 13591 restart

ワンライナーで実行したい場合は以下コマンドで実施できます。

cd ~
pumactl -p `ps aux | grep "/var/run/puma/my_app" | grep -v "grep" | awk '{print $2}'` status
pumactl -p `ps aux | grep "/var/run/puma/my_app" | grep -v "grep" | awk '{print $2}'` restart
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0