本番DBの選定
RenderとNeonとAivenとSupabaseの4つのサービスを比較した
選定の軸
- 無料で使えるか
- 月の稼働時間に制限がないか(理由:アプリの要件として、ジョブのポーリングを常時稼働させる必要があるため)
- シンガポールリージョン(理由:Renderのリージョンがシンガポールであり、そことの間の処理に大きなレイテンシを生まないようにしたいため)
各サービスの比較
Render ― 却下
- 無料枠は作成から 30 日で失効する
参照:Render Changelog — Free PostgreSQL instances now expire after 30 days / Render Docs: Deploy for Free
Neon ― 却下
無料プランでは月の稼働時間に上限がある。(ジョブの定期的なポーリングとは相性が悪い)
Aiven ― 却下
-
稼働時間の制約がない。
-
Aiven にはシンガポールリージョンが存在しない。そのため、webサービスとの間のレイテンシの懸念から今回の用途には不向きと判断。
Supabase ― ✅ 採用
- シンガポールリージョンが存在する → webサービスとのレイテンシを最小化できる
- 月の稼働時間の制約がない → 定期的なジョブのdbポーリングに対応可能
- 「7 日間アクセスがなければプロジェクトが停止される」という制約はあるが、このアプリではすでに「定期的な DB ポーリング」を導入済みのため、実質的な問題にならない
まとめ
| サービス | 無料 | 稼働時間無制限 | シンガポールリージョン | 採否 |
|---|---|---|---|---|
| Render | ✅ | ❌(30日で失効) | ✅ | ❌ |
| Neon | ✅ | ❌ | — | ❌ |
| Aiven | ✅ | ✅ | ❌ | ❌ |
| Supabase | ✅ | ✅ | ✅ | ✅ |