RHELでのRuby on Railsアプリケーションのデプロイ手順

RHELでのRuby on Railsアプリケーションのデプロイ手順

Ruby on RailsアプリケーションをRHEL環境でデプロイする手順を詳しく説明します。必要な環境構築からサーバー設定まで、実際に動作するアプリケーションを構築するためのプロセスをカバーします。

RHELの初期設定と必要なパッケージのインストール

システムを最新状態に更新します。

sudo yum update -y
sudo yum install -y git curl wget gcc make

Rubyのインストール

RVMまたはrbenvを使用してRubyをインストールします。以下はRVMを使用する例です。

sudo yum install -y curl gpg
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
rvm install ruby
ruby -v

Railsのインストール

Railsをインストールしてバージョンを確認します。

gem install rails
rails -v

データベースのセットアップ

PostgreSQLを例にしてインストールと設定を行います。

sudo yum install -y postgresql-server postgresql-devel
sudo postgresql-setup initdb
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo -i -u postgres psql -c "CREATE USER app_user WITH PASSWORD 'password';"
sudo -i -u postgres psql -c "CREATE DATABASE app_db OWNER app_user;"

Node.jsとYarnのインストール

Railsで必要なJavaScriptランタイムとパッケージマネージャーをインストールします。

curl -sL https://rpm.nodesource.com/setup_16.x | sudo bash -
sudo yum install -y nodejs
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install -y yarn

Railsアプリケーションの作成

新しいRailsプロジェクトを作成します。

rails new myapp -d postgresql
cd myapp
bundle install

データベースの接続設定

`config/database.yml`を編集してPostgreSQLの設定を記載します。

default: &default
adapter: postgresql
encoding: unicode
host: localhost
username: app_user
password: password
pool: 5

development:
<<: *default database: app_db

データベースのマイグレーション

データベースを作成しマイグレーションを適用します。

rails db:create
rails db:migrate

Pumaアプリケーションサーバーの設定

Pumaを使用してRailsアプリケーションを起動します。

bundle exec puma -C config/puma.rb

Nginxのインストールと設定

Nginxをリバースプロキシとして設定します。

sudo yum install -y nginx
sudo systemctl enable nginx
sudo nano /etc/nginx/conf.d/myapp.conf

設定ファイル例:

server {
listen 80;
server_name your_domain.com;

root /path/to/myapp/public;

location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

設定をテストしてNginxを再起動します。

sudo nginx -t
sudo systemctl restart nginx

Railsアプリケーションのデプロイ

本番環境用のプリコンパイルと起動を行います。

RAILS_ENV=production bundle exec rake assets:precompile
RAILS_ENV=production rails server

SSLの導入

Let’s Encryptを使用してHTTPSを有効化します。

sudo yum install -y certbot
sudo certbot --nginx -d your_domain.com
sudo systemctl reload nginx

ログと監視の設定

ログを確認し、システムの安定性を監視します。

tail -f log/production.log

まとめ

RHELでのRuby on Railsアプリケーションのデプロイは、適切なツールと設定を活用することで効率的に行えます。セキュリティやパフォーマンスを考慮して、運用環境に合わせた調整を行ってください。