未分類
バックエンドホスティングサービス比較
FastAPI + FFmpeg などの Python バックエンドをデプロイする際の選択肢。
なぜ Cloudflare Workers ではダメか
Cloudflare Workers は FFmpeg が動かない
- サーバーレス/エッジ環境のため、バイナリ実行ができない
- 動画変換のような重い処理には向かない
- サーバーフル環境(Render / Railway / Fly.io 等)が必要
サービス比較表
| サービス | 無料枠 | コールドスタート | 設定難易度 | おすすめ度 |
|---|---|---|---|---|
| Render | 750時間/月 | あり(30秒〜1分) | ⭐ 簡単 | △ |
| Railway | $5/月(実質無料枠) | なし(常時起動) | ⭐ 簡単 | ⭐⭐⭐ |
| Fly.io | 3VM無料 | なし(常時起動) | やや複雑 | ⭐⭐ |
各サービス詳細
Render
良い点:
- GitHub連携でポチポチするだけで設定が最も簡単
- 無料枠が大きい(750時間/月)
悪い点:
- 15分アクセスないとスリープ
- コールドスタートに30秒〜1分かかる
- 開発・テスト時にイライラする
向いているケース:
- コスト0を死守したい
- アクセス頻度が高い(スリープしない)
- 本番前の一時的な検証
Railway ⭐推奨
良い点:
- 設定が簡単(Renderと同等)
- 常時起動(コールドスタートなし)
- プロジェクト数無制限
- サービス数無制限
- 使用量ベース課金(効率的)
料金体系:
| 項目 | 内容 |
|---|---|
| 月額 | $5(固定サブスクリプション) |
| 含まれるクレジット | $5分のリソース使用量 |
| プロジェクト数 | 無制限(作成自体は無料) |
| サービス数 | 無制限 |
| 超過時 | 使用量に応じて追加課金 |
重要ポイント:
- 10個作っても100個作っても、プロジェクトの追加料金なし
- 課金されるのは実際のリソース消費量(CPU/RAM/通信量)のみ
- 複数動かしても、軽量なFastAPIサービスなら$5で収まる可能性大
$5 でどれくらい使えるか(具体的な計算)
リソース単価:
| リソース | 月額 | 分あたり |
|---|---|---|
| vCPU | $20/vCPU/月 | $0.000463/分 |
| RAM | $10/GB/月 | $0.000231/分 |
| 通信量(Egress) | $0.05/GB | - |
動画変換(FFmpeg)1回あたりのコスト試算:
想定条件:
- FFmpeg変換処理: 約30秒
- CPU使用: 0.5vCPU
- メモリ使用: 0.5GB
- 出力ファイルサイズ: 約10MB
CPU: 0.5vCPU × 0.5分 × $0.000463 = $0.00012
RAM: 0.5GB × 0.5分 × $0.000231 = $0.00006
通信: 10MB × $0.05/GB = $0.0005
────────────────────────────────────────────
合計: 約 $0.00068/回
常時起動(アイドル時)のコスト:
最小構成(0.1vCPU + 0.25GB RAM)で24時間×30日稼働:
CPU: 0.1vCPU × 43,200分 × $0.000463 = $2.00
RAM: 0.25GB × 43,200分 × $0.000231 = $2.49
────────────────────────────────────────────
合計: 約 $2.2〜2.5/月(アイドル時)
$5 で何回変換できるか:
| 項目 | 金額 |
|---|---|
| 月額サブスク | $5 |
| 常時起動コスト | 約 $2.2/月 |
| 残り(変換処理用) | 約 $2.8 |
| 変換可能回数 | 約 4,000回/月 |
| 1日あたり | 約 130回/日 |
結論: $5 で十分すぎる
- 1日100回以上の動画変換でも $5 に収まる
- 複数のFastAPIサービスを動かしても余裕あり
- 超過しても使用量に応じた追加課金のみ
向いているケース:
- 複数のバックエンドプロジェクトを作りたい
- 開発体験を重視(常時起動で快適)
- $5/月を許容できる
Fly.io
良い点:
- 無料枠で常時起動可能(3VM)
- エッジに近い配置で低レイテンシ
- スケーリングが柔軟
悪い点:
flyctlCLIのインストールが必要fly.toml設定ファイルがやや複雑- Dockerfile が事実上必須
向いているケース:
- $0 で常時起動したい
- CLI操作に慣れている
- グローバル展開を視野に入れている
結論:どれを選ぶべきか
開発効率重視 → Railway($5/月)
✅ 常時起動で快適なテスト
✅ プロジェクト無制限
✅ 設定簡単
✅ 複数サービス運用に最適
コスト0死守 → Fly.io
✅ 無料で常時起動
△ 設定がやや複雑
△ Dockerfile必須
とにかく簡単に始めたい → Render
✅ 最も設定が簡単
❌ コールドスタートが辛い
❌ 開発体験が悪い
推奨パターン
個人開発・スタートアップ初期
Railway $5/月 を推奨
理由:
- 月額 $5 で複数プロジェクト運用可能
- 常時起動で開発体験が良い
- スケールアップも容易
段階的スケール戦略
もし無料で始めたい場合:
Phase 1: Fly.io(無料・常時起動)
↓ 設定が面倒 or スケール必要
Phase 2: Railway($5/月・簡単運用)
↓ 大規模化
Phase 3: AWS/GCP(本格運用)
Railway クイックスタート
1. GitHub連携
- railway.app にログイン
- 「New Project」→「Deploy from GitHub repo」
- リポジトリを選択
2. 設定
Root Directory: apps/api(モノレポの場合)
Build Command: pip install -r requirements.txt
Start Command: uvicorn main:app --host 0.0.0.0 --port $PORT
3. 環境変数
FRONTEND_URL=https://your-app.pages.dev
SECRET_KEY=your-secret-key
4. デプロイ
pushするだけで自動デプロイ!