Contents
Heroku アカウント作成と有料プランの選び方
Heroku は 2022 年に無料プランを完全廃止し、2026 年現在はすべて有料で提供されています。アカウント登録後にどのプランを選択するかが、コスト管理やスケーラビリティに直結します。このセクションでは最新の料金体系と、プラン選定時に確認すべきポイントを解説します。
現在提供されているプラン概要
以下の表は 2026 年 5 月時点で Heroku が公式に公表している有料プランです(※Heroku Pricing)。価格は米ドル表示ですが、為替レートに応じて円換算が変動しますので、実際の請求額はご利用時点のレートで計算されます。
| プラン | 月額 (USD) | 主な提供リソース | 想定ユースケース |
|---|---|---|---|
| Starter | $7 〜$12* | 1 dyno(Standard‑1X)+基本的なアドオン利用枠 | 個人開発・小規模プロトタイプ |
| Professional | $25 以上** | 複数 dyno、Performance‑M/L、プライベートスペース、拡張アドオン | チーム運用・本番サービス |
* Starter は「Standard‑1X」dyno がデフォルトで、必要に応じて同プラン内のサイズ変更(例:Standard‑2X)で月額が増加します。
** Professional の価格は dyno の数とサイズ、追加アドオンによって変動します。
出典: Heroku 公式料金ページ(2026 年 5 月更新)
プラン選択時のチェックポイント
- 同時リクエスト数とレスポンスタイム要件
- Starter の Standard‑1X は CPU とメモリが制限されるため、トラフィックが集中するとスローダウンします。
- チーム人数とアクセス権管理
- Professional では「Private Spaces」や「Team Collaboration」機能が利用でき、組織単位での権限設定が容易です。
- 使用予定アドオンのコスト構造
- データベースやキャッシュ系は dyno と別料金です。Starter でも小規模な Heroku Postgres は無料枠がありますが、容量超過時は有料へ移行します。
Express.js プロジェクトの準備
Express.js は Node.js エコシステムで最も利用されている Web フレームワークです。Heroku にデプロイする前に、リポジトリ構成や実行コマンドを正しく設定しておくことが成功への鍵となります。
.gitignore のベストプラクティス
.gitignore はリモートへ不要なファイルを送らないための基本設定です。以下は 最小限かつ推奨 される項目一覧です(Heroku Dev Center 推奨)【^1】。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# Node.js 関連 node_modules/ npm-debug.log yarn-error.log # 環境変数・シークレット情報 .env .env.* # .env.production など # ローカルのビルド成果物 dist/ build/ # OS やエディタ固有のファイル .DS_Store Thumbs.db .vscode/ |
ポイント:
node_modules/を除外することで、Heroku が独自に依存関係をインストールし、ビルド環境と実行環境が一致します。
Procfile と npm scripts の設定方法
Heroku は Procfile に記載されたコマンドでプロセスを起動します。Express アプリの場合は web プロセスタイプを指定し、npm start と連携させるのが一般的です。
|
1 2 3 |
# Procfile(リポジトリ直下に配置) web: npm start |
続いて package.json の scripts.start を次のように定義します。Node バージョンは engines フィールドで明示し、Heroku が自動的に対応ランタイムを選択できるようにします。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
{ "name": "my-express-app", "version": "1.0.0", "description": "Sample Express app for Heroku deployment", "engines": { "node": ">=20.x <21.x" }, "scripts": { "start": "node index.js" }, "dependencies": { "express": "^4.19.2" } } |
- Node バージョンの指定は必須です。Heroku のデフォルトは
14.x系ですが、最新機能を利用したい場合は上記のように明示してください(2026 年時点で推奨される LTS は 20.x)【^2】。
Node バージョンと依存関係の管理
- ローカル開発環境と同一バージョンを使用
nvm(Node Version Manager)やfnmを活用し、プロジェクトごとにバージョンを固定します。- 依存関係は必ずロックファイルで管理
package-lock.jsonまたはyarn.lockをリポジトリに含めることで、Heroku ビルド時の再現性が保証されます。
Heroku CLI のインストールと最新スタックへの対応
CLI は Heroku とローカル環境を結ぶ重要なツールです。2026 年現在、デフォルトで適用されるスタックは Heroku‑22(Ubuntu 22.04 ベース)であり、旧 Cedar スタックは完全に廃止されています【^3】。
CLI の導入手順(OS 別)
| OS | インストールコマンド例 |
|---|---|
| macOS (Homebrew) | brew tap heroku/brew && brew install heroku |
| Ubuntu/Debian | curl https://cli-assets.heroku.com/install-ubuntu.sh | sh |
| Windows (PowerShell) | iwr https://cli-assets.heroku.com/heroku.exe -OutFile $env:USERPROFILE\heroku.exe その後パスを通す |
インストール完了後は以下でバージョン確認ができます。
|
1 2 |
heroku version # => heroku/8.5.0 linux-x64 node-v20.10.0 |
スタック情報の確認と変更方法
現在アプリに適用されているスタックを調べるには heroku stack コマンドを使用します。
|
1 2 3 |
# アプリ名が my-express-app の場合 heroku stack -a my-express-app |
出力例(2026 年 5 月時点):
|
1 2 3 |
=== my-express-app Stack heroku-22 (current) |
もし別のスタックに変更したい場合は heroku stack:set を実行しますが、Cedar 系は利用不可です。
|
1 2 3 |
# Heroku‑22 に明示的に設定(冪等) heroku stack:set heroku-22 -a my-express-app |
出典: Heroku Dev Center – 「Stack の管理」ページ(2026 年 5 月更新)【^4】
Git を使ったデプロイフローと dyno のスケール
Git によるコードプッシュだけで自動ビルド・デプロイが完了するのが Heroku の大きな利点です。ここではリポジトリ初期化から dyno のサイズ変更までの具体的手順を示します。
ローカルリポジトリの初期化とコミット
まずはプロジェクトディレクトリで Git を初期化し、作業中のファイルをステージングします。.gitignore が正しく設定されていれば不要なファイルは自動除外されます。
|
1 2 3 4 |
git init # リポジトリ作成 git add . # すべての追跡対象ファイルを追加 git commit -m "Initial commit – Express starter" |
Heroku へのプッシュと自動ビルド
Heroku 用のリモートを登録し、main(または master)ブランチをプッシュします。プッシュが完了すると、Heroku が package.json を解析し依存関係をインストール、続いて Procfile に従ってアプリを起動します。
|
1 2 3 |
heroku git:remote -a my-express-app # リモート名設定(1回だけ) git push heroku main # デプロイ実行 |
デプロイ中のログは自動的にターミナルへ出力され、ビルド成功か失敗かを即座に確認できます。
dyno の種類とスケーリングコマンド
Heroku では dyno が実際のコンテナ実行単位です。プランごとに利用できる dyno 種類が決まっており、必要に応じて数やサイズを変更できます。
| dyno タイプ | 主なスペック(CPU / RAM) | 対象プラン |
|---|---|---|
| Standard‑1X | 1 vCPU / 512 MiB | Starter, Professional |
| Standard‑2X | 2 vCPU / 1 GiB | Professional |
| Performance‑M | 2.5 vCPU / 4 GiB | Professional |
| Performance‑L | 3 vCPU / 8 GiB | Professional |
スケールは heroku ps:scale コマンドで行います。例として Standard‑1X を 1 台起動し、トラフィック増加時に Performance‑M に切り替える手順を示します。
|
1 2 3 4 5 6 |
# Starter プランのデフォルト(Standard-1X)を 1 台起動 heroku ps:scale web=1 -a my-express-app # Professional プランで Performance-M を 1 台に変更 heroku ps:scale web=1:Performance-M -a my-express-app |
web=0 とすれば dyno を停止でき、再開は web=1(または別サイズ)で行います。スケール変更は即時反映され、ダウンタイムなくリソースが増減します。
まとめと次に取るべきアクション
- 有料化は必須:無料プランは廃止済みなので、Starter または Professional のどちらかを選択してください。
- 最新スタック (Heroku‑22) がデフォルト:Cedar 系は利用できません。
heroku stackで確認し、必要に応じてsetコマンドで明示的に指定しましょう。 - 料金は変動要素が多い:dyno の数・サイズ、アドオン使用量で月額が増減します。公式料金ページを定期的にチェックしてください【^5】。
- Node.js バージョンは明示的に指定し、ローカルと本番の環境差異をなくすことがベストプラクティスです。
- Procfile と npm scripts の整合性がデプロイ成功の鍵です。
web: npm startで統一するとトラブルが減ります。 - ポート取得は必須:
process.env.PORT || 3000を忘れずに記述し、ローカルと本番双方で同一コードが動くようにします。 - デプロイ手順はシンプル:
heroku login → heroku create → git push heroku mainの流れだけで完了します。 - dyno のスケーリングは CLI 1 行で実行可能です。トラフィック増減に合わせて柔軟にリソースを調整しましょう。
次のステップ: 手元の Express アプリを上記構成で作り直し、
heroku create→git push heroku mainまで実行してみましょう。デプロイが成功したらheroku ps:scaleで dyno のサイズ変更や複数インスタンス化を試すと、Heroku のスケーラビリティを体感できます。
参考文献
- Heroku Dev Center – Gitignore best practices (2026/05)
- Node.js Release Schedule – LTS version 20.x (2025/10)
- Heroku Blog – Heroku‑22 is now the default stack (2024/11)
- Heroku Dev Center – Managing stacks (2026/05)
- Heroku Pricing – Current pricing page (accessed 2026-05-20)