Turso が『SQLiteをエッジで使う』を本格化させた
Tursoは2023年に登場したlibSQLマネージドDBで、SQLiteをエッジロケーションに分散配置できる点が最大の特徴です。Read Replicaがグローバル展開されており、読み込みは最寄りリージョンから数msで返ります。書き込みはプライマリで処理してから各レプリカに伝播する設計で、低レイテンシと整合性のバランスを取っています。Cloudflare D1と並ぶエッジ分散DBの本命候補です。
採用すべき5つのシグナル
- グローバルユーザー向けSaaSで読み込みレイテンシを下げたい
- サーバーレス(Workers/Lambda)からの低レイテンシDB接続が必要
- SQLite互換でWebアプリ・モバイル・組み込みを統合管理したい
- マルチテナント(テナント毎にDB分離)の運用負荷を下げたい
- PostgreSQL/MySQL固有機能は不要
主要機能
- Edge Replicas: 30+ロケーションに自動分散
- Embedded Replicas: クライアント側にも同期可能・オフライン対応
- libSQL拡張: SQLite + ベクトル検索 + HTTP API
- Per-tenant DB: 数万〜数百万のテナント別DBを安価に運用
- HTTP API: TCP接続不要・サーバーレス親和性
料金感(実務目安)
- Free: 500DB・9GB・10億行読み
- Scaler: $29/月・1000DB・24GB
- Pro: $499/月・10000DB・500GB
- 無料枠が非常に大きく、副業・個人開発に十分
Cloudflare D1との比較
共通点: SQLite基盤・エッジ分散・サーバーレス親和性。
Turso優位: テナント別DB大量運用・Embedded Replicas・libSQL拡張機能。
D1優位: Cloudflare Workersとの完全統合・無料枠もシンプル。
使い分け: マルチテナントSaaSはTurso・Cloudflare閉じはD1。
本番採用の判断基準
- 本番実績: Vercel・Resend・各種スタートアップ採用
- 整合性モデル: 結果整合性(プライマリ→レプリカ伝播)を許容できるか
- クエリ複雑度: SQLiteの範囲内なら問題なし
- ベンダーロックイン: libSQLはOSSなのでSelf-host移行可能
実装で詰まる3つの落とし穴
- 書き込みのレイテンシ: プライマリは1リージョンなので遠隔地の書き込みは遅い
- Embedded Replicasの同期: クライアント側DBの同期タイミング設計が必要
- マイグレーション: スキーマ変更を全テナントDBへ展開する仕組みが必要
30日学習プラン
- 1週目: Tursoセットアップ・CLI/SDK統合
- 2週目: Edge Replicaの分散配置・レイテンシ計測
- 3週目: Drizzle/Prisma連携・マルチテナント設計
- 4週目: Embedded Replicas・本番運用
関連リンク
Cloudflare D1との比較は Cloudflare D1深掘り、Drizzle ORMは Drizzle ORM深掘り、エッジ実行全般は Cloudflare Workers深掘り を参照してください。Astro DBとの統合は Astro DB深掘り もどうぞ。