HerokuでRailsアプリを公開する方法【初心者向け・2025年版】
はじめに
HerokuはWebアプリケーションをインターネット上に公開しやすいクラウドプラットフォームとして、多くの開発者に利用されています。
特にRuby on Rails(以下、Rails)との組み合わせは初心者でも取り組みやすく、最低限の設定だけで動かせるのが魅力です。
ただし最初に触れる場合、「どのような手順で設定すればいいのか」「ローカル開発と何が違うのか」といった疑問が浮かぶかもしれません。
そこで本記事では2025年の最新情報を踏まえ、Heroku×Railsでアプリケーションを動かす際に必要となるポイントを具体的に解説します。
この記事を読むとわかること
- HerokuとRailsを連携させるための準備
- デプロイの手順と注意点
- Ecoプランなど最新のHerokuプラン概要
- 運用するうえでのポイント (スケールやアドオンなど)
HerokuとRailsの概要
Herokuとは
HerokuはソースコードをアップロードするだけでWebアプリケーションを動かせるホスティングサービスです。
以下のような特長があります。
- サーバー構築不要:インフラの細かい設定を意識せずデプロイできる
- 多言語対応:Ruby、Node.js、Python、Goなど多様な言語がサポートされている
- 簡単なスケールアップ:起動するプロセス数を変更するだけで負荷対策が可能
Railsを含むRubyのサポートが手厚いことから、個人開発から小〜中規模のプロジェクトでもよく使われる傾向があります。
Railsとは
RailsはRuby言語で作られたWebアプリケーションフレームワークです。
MVCモデルを採用しており、画面のルーティングやDB操作、テンプレートエンジンなど、Webアプリケーションの基本機能をひと通り網羅しています。
Heroku側でRailsをスムーズに動かせる仕組みが用意されていることもあり、学習段階から実務の運用フェーズまで活用しやすいのが魅力です。
2025年時点のHerokuプラン事情
以前は無料プランが充実していましたが、現時点ではEcoプランの登場などで仕様が少し変わっています。
- Ecoプラン
- 月間一定時間までの稼働が低コストで利用できる
- アクセスがないと30分程度でスリープする
- Basic以上のプラン
- スリープしない
- 常時起動が必要なサービス向き
学習中や試験的に公開する段階ではEcoプランを使い、サービスを本格運用する際はBasicまたはStandard以上への移行を検討すると良いでしょう。
デプロイの流れを把握しよう
全体フロー
Heroku上でRailsアプリを動かすまでの大まかな流れは以下のとおりです。
- Herokuアカウントの作成
- Heroku CLIのインストールとログイン
- Railsアプリの用意 (Gemfileの設定含む)
- Gitでソースを管理
- Heroku上にアプリを作成(
heroku apps:create
) - Procfileなどの設定ファイルを整備
- Git pushでHerokuへデプロイ
- DBマイグレーションの実行
- 動作確認 (
heroku open
など)
初めての方は各ステップごとに処理が上手くいかない場合があるため、慌てずに一つずつ設定を確認して進めましょう。
Heroku CLIのログイン
Herokuを使うためにはHeroku CLI(ターミナルやコマンドプロンプトで操作するツール)の導入が必須です。
CLIのインストールを終えたら、以下のコマンドでログインします。
heroku login
ブラウザが起動してHerokuのログインページが表示されます。アカウントをまだ持っていない場合はこのタイミングで作成してください。
ログインが完了すると、CLI上でHeroku関連のコマンドが使えるようになります。
Railsアプリの下準備
PostgreSQLを使う設定
Herokuの標準データベースはPostgreSQLです。
よってRailsプロジェクトを作成するときは以下のように指定すると便利です。
rails new my-heroku-app --database=postgresql
もし既存のアプリを流用していて、Gemfile
にsqlite3
が記載されている場合は、以下のようにpg
へ変更します。
gem 'pg'
そのうえで、bundle install
を実行し、config/database.yml
のadapter
がpostgresql
になっているか確認しましょう。
Gitでソース管理
HerokuへのデプロイにはGitを用います。
まだGitのリポジトリを初期化していない場合は以下のコマンドで設定します。
git init git add . git commit -m "Initial commit"
コミットが完了したら、アプリをHerokuに登録します。
heroku apps:create
このコマンドでHerokuのリモートリポジトリが追加され、git push heroku main
などでデプロイできるようになります。
Procfileの役割
Procfileの作り方
HerokuはProcfileというファイルを参照して、アプリケーションの起動コマンドを把握します。
Railsでは多くの場合、Pumaを使用するため、以下のように設定するのが一般的です。
web: bundle exec puma -C config/puma.rb
ファイル名は必ず大文字のP
で始まる「Procfile」にし、拡張子は不要です。
web:
と書いてある部分はHerokuでのWebプロセスを表し、ブラウザからのアクセスを受け付けます。
config/puma.rbの例
Rails 7以降はデフォルトでPumaが採用されていますが、実運用でスレッド数やワーカー数などを変更したい場合はconfig/puma.rb
を修正します。
以下は一例です。
workers Integer(ENV['WEB_CONCURRENCY'] || 2) threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5) threads threads_count, threads_count preload_app!
ENV['WEB_CONCURRENCY']
やENV['RAILS_MAX_THREADS']
を使うことで、Herokuの環境変数に応じて設定を変えられます。
実際にHerokuへデプロイする
デプロイ作業
アプリをコミットしたら、以下のコマンドでHerokuへの反映を行います。
git push heroku main
出力メッセージにDeploy succeeded
やVerifying deploy... done
のような行が出ればデプロイは完了です。
データベースのマイグレーション
DBを利用するRailsアプリでは、Heroku上でもマイグレーションを実行しないとテーブルが作られません。
下記コマンドで本番環境に対してマイグレーションを実行します。
heroku run rake db:migrate
実行後、もしエラーが出たらrake db:rollback
でロールバックし、再度設定を見直してみましょう。
アプリを開いて動作確認
最後に、ブラウザでHeroku上のアプリを確認するには
heroku open
を使います。
これで「Hello, world!」などトップページが表示されれば、ひとまずデプロイは成功です。
Ecoプランを利用している場合、しばらくアクセスがないとスリープする仕組みがあります。
この場合、最初のアクセス時に数秒の待ち時間が発生しますが正常な動作です。
よくあるハマりポイント
必要なGemがインストールされない
Herokuはデフォルトでdevelopment
やtest
グループを除外してインストールを行います。
もしアプリの実行に必要なGemを誤って:development
グループなどに入れていると、Heroku上で正常に動かないことがあります。
本番運用で使うGemはgroup外、または:production
に入れておきましょう。
データベースのアダプタ設定
config/database.yml
のadapter
がpostgresql
以外、例えばpostgres
だけなどになっているとエラーが起きやすいです。
正しくはadapter: postgresql
ですので、細かい文言を確認してください。
Assetsコンパイルエラー
RailsのAsset Pipelineでは、Herokuにデプロイする際にassets:precompile
が走ります。
エラーが発生する場合はローカルでも以下を試してみます。
rake assets:precompile
何らかのGemや設定が原因でコンパイルに失敗していないかチェックしましょう。
ログを活用して原因を特定
Heroku上のアプリがクラッシュしたときは、
heroku logs --tail
でログを確認します。
Railsであれば例外内容などが表示されるため、原因特定の助けになるでしょう。
運用・拡張のポイント
Dynoのスケーリング
Heroku上ではアプリの実行単位をDynoと呼びます。
Dyno数を増やすことでアクセスが増えたときに対応しやすくなります。
heroku ps:scale web=2
のようにするだけでプロセスが2つに増えます。
EcoプランとBasic以上の違い
- Ecoプラン
- 一定の使用量まで低コスト
- 30分アクセスが無いとスリープ
- Basic/Standardプラン
- 常時起動可能
- 高いスケーラビリティ
始めはEcoプランで十分ですが、サービス運用を続けるのであればBasic以上へのアップグレードを検討してください。
アドオンの活用
Herokuの魅力のひとつに、豊富なアドオンの存在があります。
- Heroku Postgres(DB)
- Redis
- SendGrid(メール送信)
- Papertrail(ログ管理)
など、必要に応じて追加できるので、アプリの拡張や本格運用に最適です。
アドオンは「heroku addons:create ...」といったコマンドで導入します。
必要になった時点で気軽に追加できるため、段階的に導入していくのが実践的です。
まとめ
HerokuでRailsアプリを公開する方法は、初心者が最初に学ぶクラウドデプロイの入り口としておすすめです。
- Heroku CLIをインストールし、ログイン
- Gemfileで
pg
を使うよう設定 - Procfileでアプリ起動コマンドを定義
- Gitでソースを管理し、
git push heroku main
でデプロイ - DBマイグレーションを実施して動作確認
これらのステップを踏めば、短時間でインターネット上に自作のRailsアプリを公開できます。
学習や試験的なプロジェクトでは、Ecoプランの上手な使い方を覚えておくと良いでしょう。
将来的にサービスが成長し、アクセス数が増加したらBasic以上に切り替えてダウンタイムを防ぐのが一般的な流れです。
もしデプロイ時にエラーが出た場合は、Herokuのログをこまめにチェックして原因を調べてください。
今回紹介したポイントを押さえておけば、HerokuとRailsの連携は決して難しくありません。
ぜひ一度試してみてください。