• #hosting
  • #backend
  • #fastapi
  • #render
  • #railway
  • #fly.io
未分類

バックエンドホスティングサービス比較

FastAPI + FFmpeg などの Python バックエンドをデプロイする際の選択肢。

なぜ Cloudflare Workers ではダメか

Cloudflare Workers は FFmpeg が動かない

  • サーバーレス/エッジ環境のため、バイナリ実行ができない
  • 動画変換のような重い処理には向かない
  • サーバーフル環境(Render / Railway / Fly.io 等)が必要

サービス比較表

サービス無料枠コールドスタート設定難易度おすすめ度
Render750時間/月あり(30秒〜1分)⭐ 簡単
Railway$5/月(実質無料枠)なし(常時起動)⭐ 簡単⭐⭐⭐
Fly.io3VM無料なし(常時起動)やや複雑⭐⭐

各サービス詳細

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)
  • エッジに近い配置で低レイテンシ
  • スケーリングが柔軟

悪い点:

  • flyctl CLIのインストールが必要
  • fly.toml 設定ファイルがやや複雑
  • Dockerfile が事実上必須

向いているケース:

  • $0 で常時起動したい
  • CLI操作に慣れている
  • グローバル展開を視野に入れている

結論:どれを選ぶべきか

開発効率重視 → Railway($5/月)

✅ 常時起動で快適なテスト
✅ プロジェクト無制限
✅ 設定簡単
✅ 複数サービス運用に最適

コスト0死守 → Fly.io

✅ 無料で常時起動
△ 設定がやや複雑
△ Dockerfile必須

とにかく簡単に始めたい → Render

✅ 最も設定が簡単
❌ コールドスタートが辛い
❌ 開発体験が悪い

推奨パターン

個人開発・スタートアップ初期

Railway $5/月 を推奨

理由:

  1. 月額 $5 で複数プロジェクト運用可能
  2. 常時起動で開発体験が良い
  3. スケールアップも容易

段階的スケール戦略

もし無料で始めたい場合:

Phase 1: Fly.io(無料・常時起動)
    ↓ 設定が面倒 or スケール必要
Phase 2: Railway($5/月・簡単運用)
    ↓ 大規模化
Phase 3: AWS/GCP(本格運用)

Railway クイックスタート

1. GitHub連携

  1. railway.app にログイン
  2. 「New Project」→「Deploy from GitHub repo」
  3. リポジトリを選択

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するだけで自動デプロイ!


参考リンク