LoginSignup
10
4

More than 1 year has passed since last update.

【EC2/Amazon Linux2】puma5系でRailsアプリケーションを起動した際にはまったこと

Last updated at Posted at 2022-05-18

はじめに

Gemの更新作業にあたりpumaのバージョンを5.6.4にアップデートを行いました。
開発環境では問題なかったのですが、テスト環境でアプリケーションが起動しない現象が発生したため、
対応した内容を記述しています。

環境

  • Ruby: 2.7.3
  • Rails: 6.1.5
  • puma: 5.6.4

発生していた問題

今までは、 puma -C config/puma.rb -d のコマンドで起動していました。
issuesを見るとDaemonizationが廃止されていたたようです。

じゃあどうするか

issuesのコメントでは ↓のように systemd、upstartもしくはsupervisorを使ってくださいと記載されていました。
今回はsystemdを選択しました。

Use systemd/upstart/a process supervisor instead.

設定内容

Sysconfigに環境変数を記述

$ vim /etc/sysconfig/puma

# 環境変数を記述
DATABASE_USERNAME=''
DATABASE_PASSWORD=''
DATABASE_HOST=''
DATABASE_NAME=''
DATABASE_PORT=''

Unitファイルの構成

$ vim /etc/systemd/system/puma.service

[Unit]
# Unitの説明
Description=Puma App Server
# Unitより先に起動するUnit
After=network.target

[Service]
Type=notify
# 実行ユーザー
User=ec2-user
# サービスを定期的に監視して稼働状態をチェック
WatchdogSec=10
# プロセスの実行ディレクトリ
WorkingDirectory=/var/www/app/
# 環境変数の読み込み
EnvironmentFile=/etc/sysconfig/puma
# 実行コマンド
ExecStart=/bin/bash -lc "bundle exec puma -C config/puma.rb -e staging"
# プロセス停止時の再起動
Restart=always

[Install]
WantedBy=sockets.target

Unitファイルの反映

sudo chmod +x /etc/systemd/system/puma.service
sudo systemctl daemon-reload
sudo systemctl restart puma.service

自動起動設定

sudo systemctl enable puma.service

参考URL

10
4
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
10
4