🚀
初期Railsアプリデプロイ SaaS比較
Fly.io、Render、DigitalOcean、Fargate、Railway、Herokuなど実践比較
Railsアプリを初めてデプロイする時、最も悩むのが「どこにデプロイするか?」です。Herokuが無料枠を廃止して以降、Fly.io、Render、Railwayなどの代替サービスが急浮上しました。
比較基準:「1人/少人数チームのRails 8 + SQLiteプロジェクトを最速・最安・最安定でデプロイできる場所は?」
| サービス | 最小費用 | Docker | SQLite | 永続ストレージ | Rails 8適合度 | 適した段階 |
|---|---|---|---|---|---|---|
| Fly.io | ~$5/月 | O | O(ボリューム) | O | 高い(公式対応) | MVP → 本番 |
| Render | 無料枠あり | O | 制限的 | 有料のみ | 中間 | MVP |
| DigitalOcean | $4-6/月 | O(手動) | O(ローカル) | O(ローカルSSD) | 高い(自由度最高) | 本番 |
⚠️ Fly.io + SQLite + Solid Queue = "database is locked"問題
Rails 8のSQLite + Solid Queue構成をFly.ioで運用すると「SQLite3::BusyException: database is locked」エラーが頻発。DigitalOceanでは同構成でほぼ発生しない。
Fly.ioで特にひどい理由:(1) Fly.ioボリュームのI/OレイテンシがDOのローカルSSDより高い → lock保持時間が長い、(2) Solid Queue + webが同じDBファイルを共有、(3) WALモードやbusy_timeoutが不十分の可能性。
解決策:busy_timeoutを10000msに増加、queue/cache/cableのDBファイル分離。問題が続く場合DigitalOcean + KamalがSQLite運用にはより安定的。
構造ダイアグラム
デプロイ難易度ランキング(簡単 → 難しい)
簡単(Easy)
Heroku
Render
Railway
git pushだけでデプロイ完了。インフラ知識不要
普通(Medium)
Fly.io
DigitalOcean App Platform
Dockerfileの理解が必要。CLIベースの設定
上級(Advanced)
Kamal + VPS
AWS Fargate
Docker、ネットワーク、SSL等インフラ全般の理解が必須
価格 vs 制御マトリクス
↑ フルコントロール
低コスト + 高い制御
Kamal + Hetzner
〜$5/月、SSHフルアクセス
高コスト + 高い制御
AWS Fargate
$30+/月、エンタープライズ級
低コスト + 低い制御
Render Free
Railway Free
$0、リソース制限あり
中コスト + 低い制御
Heroku
DigitalOcean
$7〜25/月、PaaSマネージド
← 低コスト
↓ 低い制御
高コスト →
Railsデプロイフロー(簡略化)
📝
コード
↓
🐳
Dockerfile
↓
🔨
イメージビルド
↓
📦
レジストリPush
↓
🚀
プラットフォームデプロイ
↓
🔒
ドメイン + SSL
↓
🌐
Live!
* PaaS(Heroku、Render等)はこのプロセスを自動化します
おすすめガイド
サイドプロジェクト
Fly.io
Railway
- 無料または$5/月以下
- 素早いプロトタイピングに最適
- DockerfileさえあればOK
スタートアップ
Render
Fly.io
- $7〜25/月
- マネージドDB、自動SSL
- チームコラボレーション対応
プロダクション
Kamal + Hetzner
Kamal + DO
- $5〜20/月(VPSコストのみ)
- SSHフルアクセス、完全な制御
- Rails 8公式デプロイツール
核心ポイント
•
Rails 8からKamalがデフォルトデプロイツール -- docker build + SSHデプロイを自動化
•
PaaSは便利だがコストが急増 -- トラフィック増加時にVPS切り替えを検討
•
無料プランはコールドスタート遅延あり -- プロダクションには不適切
キーポイント
1
Dockerfile作成(Rails 7.1+は自動生成)
2
環境変数設定(DATABASE_URL、SECRET_KEY_BASE、RAILS_MASTER_KEY)
3
PostgreSQL/SQLiteデータベース設定
4
アセットプリコンパイル + イメージビルド
5
PaaSにデプロイ(git pushまたはDocker push)
6
カスタムドメイン + SSL設定
7
モニタリング + ログ確認
ユースケース
サイドプロジェクトの迅速なデプロイ
MVP検証用の最小コストデプロイ
チームプロジェクトのステージング環境
本番サービスの運用