これは2024年10月時点の情報です。
やりたいこと
今回は、作成したRailsアプリを無料でデプロイする方法について解説します。デプロイには、無料で利用できるRender(PaaS)とNeon(PostgreSQLデプロイサービス)を組み合わせます。
利用するサービス
Render.com
Renderは、Webアプリを簡単に公開できるPaaS(Platform as a Service)です。無料のプランが用意されており、スタートアップや個人開発に最適です。
Neon
Neonは、PostgreSQLを簡単にデプロイできるサービスです。サーバー管理の手間を減らし、データベースの管理を効率化します。
デプロイ手順
Neonのデプロイ設定
まずはデータベースのセットアップから始めます。Neonを使用して、PostgreSQLのデプロイを行います。
Neonアカウントの登録とデータベースの作成
- Neonの公式サイトにアクセスし、Free Tierでアカウント登録を行います。
- 画面の指示に従って、新しいデータベースを作成します。
- DashboardでConnection Detailsを開きます。
接続情報の確認
- Connection Details内の接続情報を確認し、Node.jsのオプションに切り替えてから、.envタブを選択します。
- タブ内の以下の項目をメモします。
PGHOST
PGDATABASE
PGUSER
PGPASSWORD
ENDPOINT_ID

- PGPASSWORDが不明な場合は、サイドバーのBranchesからRolesを選択し、パスワードリセットを行って再発行します。
⚠️ 注意: これらの情報は機密情報です。他人に共有しないようにしてください。
Railsの設定に接続情報を追加
メモした内容を使って、Railsアプリ内でNeonを使用できるように設定を行います。
- 以下のコマンドを実行し、Railsのcredentials.yml.encファイルに接続情報を追加します。
EDITOR="vi" rails credentials:edit
- 下記の内容を追加します。
neon:
username: PGUSERの内容
host: PGHOSTの内容
database: PGDATABASEの内容
password: PGPASSWORDの内容
config/database.yml
ファイルにも、以下の内容を追加します。
production:
<<: *default
host: <%= Rails.application.credentials.neon&.fetch(:host) %>
database: <%= Rails.application.credentials.neon&.fetch(:database) %>
username: <%= Rails.application.credentials.neon&.fetch(:username) %>
password: <%= Rails.application.credentials.neon&.fetch(:password) %>
ssl_mode: verify_identity
sslca: "/etc/ssl/certs/ca-certificates.crt"
Renderのデプロイ設定
次に、Renderを使ってアプリをデプロイします。
Pumaの設定
config/puma.rb
に以下の内容を追加し、Pumaの設定を行います。
workers ENV.fetch("WEB_CONCURRENCY") { 2 }
preload_app!
production環境の設定
config/environments/production.rb
ファイルに、静的ファイルをサーバーで提供する設定を追記します。
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? || ENV['RENDER'].present?
Build用のスクリプト作成
アプリをビルドするためのシェルスクリプトをbin/render-build.sh
として作成し、以下の内容を記載します。
#!/usr/bin/env bash
# exit on error
set -o errexit
bundle install
bundle exec rake assets:precompile
bundle exec rake assets:clean
bundle exec rake db:migrate
Renderアカウントの登録とサービス作成
- Renderの公式サイトでアカウントを登録します。
- 登録が完了したら、ダッシュボードのヘッダーからNew→Web Serviceを選択し、GitHubリポジトリと連携します。
Webサービスの設定
Webサービスを作成する際の設定は以下の通りです。
項目 | 入力内容 |
---|---|
Branch | デプロイしたいブランチ名 |
Runtime | Ruby |
Build Command | ./bin/render-build.sh |
Start Command | bundle exec puma -C config/puma.rb |
Instance Type | Free |
- 画面下部のAdvanced内にあるAdd Environment Variableから、
config/master.key
の内容をRAILS_MASTER_KEY
として登録します。
デプロイの実行
Create Web Serviceボタンをクリックすると、デプロイが開始されます。完了すると、表示されるURLからデプロイされたアプリにアクセスできます。

まとめと感想
今回は、RailsアプリケーションをRenderとNeonを使って無料でデプロイする方法を紹介しました。無料でアプリを公開したいときに最適な方法で、スタートアップや個人開発のプロジェクトに役立ちます。
Neonの設定やデプロイは少し手間がかかるかもしれませんが、これを習得することで、データベースやアプリのデプロイがスムーズに行えるようになります。ぜひ、この手順を参考にして、実際のアプリデプロイに挑戦してみてください。
今回の内容が参考になったら幸いです。
コメント