開発運用

Linuxサーバーへのロビーアプリデプロイ

ロビーアプリケーションをLinuxサーバーにデプロイする方法について、完全かつ包括的なガイドを日本語でご紹介します。以下の手順に従い、ロビーアプリケーションを正しくインストールして運用できるようにします。

1. 必要な前提条件

ロビーアプリケーションをLinuxサーバーにデプロイするためには、いくつかの基本的な条件があります。まず最初に確認しておくべきことは、サーバーが以下の要件を満たしていることです。

  • Linuxサーバー: Ubuntu、CentOS、または他の主要なディストリビューション
  • Rubyのインストール: Rubyのバージョンは最新である必要があります(通常は2.x以上)。
  • データベース: ロビーアプリケーションは通常、MySQLやPostgreSQLなどのデータベースを利用します。
  • Webサーバー: NginxやApacheなどのWebサーバーが必要です。
  • Bundler: Rubyの依存関係を管理するために、Bundlerを使用します。

2. サーバー環境の準備

サーバー環境が整っていない場合、まず以下のように必要なパッケージをインストールします。

Rubyのインストール

最新バージョンのRubyをインストールするためには、まずサーバーに必要な依存関係をインストールします。以下はUbuntuの場合です。

bash
sudo apt-get update sudo apt-get install -y curl gnupg2 curl -sSL https://get.rvm.io | bash -s stable --ruby source ~/.rvm/scripts/rvm rvm install ruby rvm use ruby --default ruby -v

これで、Rubyがインストールされ、バージョンを確認できるようになります。

データベースのインストール

ロビーアプリケーションはデータベースを使用するため、まずMySQLまたはPostgreSQLをインストールします。ここではMySQLを例に挙げます。

bash
sudo apt-get install mysql-server sudo mysql_secure_installation

MySQLがインストールされ、初期設定が完了しました。次にデータベースを作成します。

bash
mysql -u root -p CREATE DATABASE ruby_app;

必要なGemのインストール

次に、アプリケーションの依存関係を管理するためにBundlerをインストールします。

bash
gem install bundler

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

アプリケーションのクローン

まず、ロビーアプリケーションのソースコードをサーバーにクローンします。Gitを使用してリポジトリからアプリケーションを取得します。

bash
git clone https://github.com/username/ruby_app.git cd ruby_app

必要なGemをインストール

次に、Gemfileに記載された依存関係をインストールします。

bash
bundle install

これで、アプリケーションに必要なすべてのGemがインストールされます。

データベースの設定

アプリケーションのデータベース設定を行います。データベースのマイグレーションを実行して、必要なテーブルを作成します。

bash
rails db:create rails db:migrate

これで、データベースが作成され、テーブルが構築されます。

4. アプリケーションの起動

アプリケーションを起動するためには、以下のコマンドを使用します。

bash
rails server -b 0.0.0.0 -p 3000

これで、アプリケーションがhttp://<サーバーのIPアドレス>:3000でアクセスできるようになります。

5. Webサーバーの設定

本番環境では、直接Railsサーバーを使用することは避け、Webサーバー(NginxやApache)を利用します。ここでは、Nginxを設定する方法を説明します。

Nginxのインストール

bash
sudo apt-get install nginx

Nginx設定ファイルの作成

/etc/nginx/sites-available/ディレクトリに、以下のような設定ファイルを作成します。

nginx
server { listen 80; server_name example.com; root /path/to/ruby_app/public; passenger_enabled on; passenger_app_env production; location / { try_files $uri/index.html $uri @rails; } location @rails { proxy_pass http://127.0.0.1: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に設定ファイルを読み込ませるため、シンボリックリンクを作成します。

bash
sudo ln -s /etc/nginx/sites-available/ruby_app /etc/nginx/sites-enabled/

Nginxの再起動

bash
sudo service nginx restart

6. SSL設定(オプション)

本番環境でのセキュリティを高めるために、SSL(HTTPS)を設定することをお勧めします。Let’s Encryptを利用して無料でSSL証明書を取得できます。

bash
sudo apt-get install certbot python3-certbot-nginx sudo certbot --nginx

7. メンテナンスと監視

最後に、アプリケーションが正常に稼働しているかを監視することが重要です。systemdを使用してアプリケーションをサービスとして管理することができます。

systemdユニットファイルの作成

/etc/systemd/system/ruby_app.serviceというファイルを作成し、以下の内容を追加します。

ini
[Unit] Description=Ruby Application After=network.target [Service] Type=simple WorkingDirectory=/path/to/ruby_app ExecStart=/usr/local/bin/bundle exec rails server -b 0.0.0.0 -p 3000 User=deploy Group=deploy Environment=RAILS_ENV=production [Install] WantedBy=multi-user.target

サービスの起動

bash
sudo systemctl start ruby_app sudo systemctl enable ruby_app

これで、システムが再起動した場合でもアプリケーションが自動的に起動します。

結論

これで、ロビーアプリケーションをLinuxサーバーにデプロイするための基本的な手順が完了しました。適切にサーバーを設定し、アプリケーションが正常に動作するようにすることが重要です。また、運用を開始した後は、バックアップやセキュリティ対策を講じることを忘れずに行いましょう。

Back to top button