DEV Community

スシロー
スシロー

Posted on • Edited on

【2026】Heroku 代替 2026 (Render/Railway/Fly.io):料金・移行コストで選ぶ

結論(おすすめ1つ)

Heroku から乗り換えるなら、まず Render を選べ。

Heroku のデプロイフロー(git pushProcfile、環境変数、PostgreSQL アドオン)がほぼそのまま通用するため、移行コストが三者の中で最も低い。ドキュメントと UI の完成度が高く、非インフラ専門家が混在するチームでも運用が破綻しにくい。Railway・Fly.io は用途によって強みがあるが、「とにかく今すぐ Heroku を脱出したい」なら Render が最短経路だ。


比較表(料金/無料枠/移行コスト/対応言語)

項目 Render Railway Fly.io
無料枠 あり(一定時間後スリープ) あり(月次クレジット制・公式要確認) あり(小規模インスタンス枠・公式要確認)
有料プラン料金 公式の料金ページで要確認 公式の料金ページで要確認 公式の料金ページで要確認
課金モデル プラン固定 リソース従量課金 リソース従量課金
Heroku からの移行コスト 低(Procfile/環境変数互換) 中(railway.toml 追加が必要) 高(fly.toml + Dockerfile 必須)
対応言語 Node/Python/Ruby/Go/Java 等 同左 + Deno 等 Docker ベースで言語非依存
マネージド PostgreSQL あり あり あり(自己管理寄り)
デプロイリージョン US/EU 中心 US/EU/AP 世界 30+ リージョン

移行手順

Heroku → Render への移行を、典型的な Node.js アプリを例に説明する。

1. リポジトリ連携

Render の Web UI から「New Web Service」を選択し、GitHub リポジトリを接続する。CLI を使う場合は以下。

npm install -g @render/cli
render login
Enter fullscreen mode Exit fullscreen mode

2. Procfile の確認

既存の Procfile はそのまま使える場合がほとんど。

web: node server.js
Enter fullscreen mode Exit fullscreen mode

Render は Procfile を自動検出する。手動指定する場合はダッシュボードの「Start Command」欄に同等コマンドを入力する。

3. 環境変数の移行

# Heroku から環境変数一覧を取得
heroku config -a <your-app-name>

# 出力を Render ダッシュボードの
# Environment → Add Environment Variable に転記する
# あるいは render.yaml で IaC 管理する(後述)
Enter fullscreen mode Exit fullscreen mode

4. render.yaml で Infrastructure as Code 管理(推奨)

services:
  - type: web
    name: my-app
    runtime: node
    buildCommand: npm install
    startCommand: node server.js
    envVars:
      - key: NODE_ENV
        value: production
      - key: DATABASE_URL
        fromDatabase:
          name: my-db
          property: connectionString

databases:
  - name: my-db
    databaseName: myapp
    user: myapp
Enter fullscreen mode Exit fullscreen mode

5. PostgreSQL データ移行

# Heroku Postgres からダンプ取得
heroku pg:backups:capture -a <your-app-name>
heroku pg:backups:download -a <your-app-name>

# Render Postgres へリストア
pg_restore --verbose --clean --no-acl --no-owner \
  -h <render-host> -U <render-user> -d <render-db> \
  latest.dump
Enter fullscreen mode Exit fullscreen mode

6. カスタムドメインと DNS 切り替え

# Render ダッシュボード → Custom Domains → [ドメイン](https://px.a8.net/svt/ejp?a8mat=4B3XB4+4VMW8I+50+2HU3GX)を追加
# DNS プロバイダ側で CNAME を Render 指定の値に更新
# SSL は自動発行(Let's Encrypt)のため手動設定不要
Enter fullscreen mode Exit fullscreen mode

向き不向き

Render が向くケース

  • Heroku から離脱するが、インフラ工数を最小化したいチーム
  • git push でデプロイするシンプルなフローを維持したい場合
  • PostgreSQL・Redis をマネージドで使いたい中小規模アプリ
  • 非インフラエンジニアが主体のスタートアップや個人開発者

Railway が向くケース

  • 従量課金でコストを細かくコントロールしたい場合
  • モノレポ構成で複数サービスをまとめてデプロイしたいとき
  • プレビュー環境を使い捨てで量産したいチーム

Fly.io が向くケース

  • エッジに近い複数リージョンへの展開が要件にある本番サービス
  • Docker と独自ランタイムで細かい制御が必要なケース
  • インフラエンジニアが在籍しており fly.toml を自前管理できるチーム

避けるべきケース

  • Render 無料枠:スリープ復帰に数十秒かかるため、即応が必要な本番 API には不向き。有料プランへのアップグレードを検討すること
  • Railway:月次クレジットの消費ペースが読みにくく、突発トラフィックが発生するサービスではコスト管理に注意が必要
  • Fly.iofly.toml・マシン管理・ボリューム設定など学習コストが高い。インフラ担当不在のチームが短納期で移行するシナリオには向かない

If you found this useful: I packaged 50 copy-paste AI debugging prompts + drop-in Claude Code config templates (CLAUDE.md, settings.json, MCP) into a small kit.
Launch deal: code START50 = 50% off → 50 AI Debugging Prompts + Claude Code Config Pack (about $6, 50% off applied)
New: my 10-chapter ebook Practical Claude Code — automation & unattended operation (about $9, 50% off applied)

Top comments (0)