Cloudflare D1が『安価でスケールするマネージドDB』を再定義
Cloudflare D1はWorkersの一部として動くSQLiteベースのマネージドDBで、Read Replica・グローバル分散・SQL完全サポートを月数ドルから利用できます。Neon・PlanetScale等のサーバーレスPostgres勢と直接競合する位置付けで、エッジ計算と密結合した低レイテンシ・コスト圧倒的な選択肢として急速に採用が拡大しています。
D1採用を検討すべき5つのシグナル
- Workers中心のサーバーレスアプリでDB含めて完結したい
- NeonやPlanetScaleの料金が運用規模で重くなった
- SQLiteレベルの軽量DBで十分な要件
- グローバル分散・低レイテンシ読み出しが必要
- マイグレーション・バックアップを自動化したい
Neon/PlanetScale/D1比較
Neon: PostgreSQL・サーバーレス・ブランチング機能。料金は中程度。
PlanetScale: MySQL/Vitess・スキーマ変更が安全。料金高め。
Turso: SQLite・エッジ分散・OSS。Cloudflare依存なし。
Cloudflare D1: SQLite・Workers統合・コスト極小。データサイズ・複雑クエリで制限あり。
実装パターン
(1) マイグレーション: wrangler d1 migrations applyでSQL適用
(2) クエリ: env.DB.prepare('SELECT * FROM users WHERE id = ?').bind(id).first()
(3) Drizzle ORM統合: D1アダプタで型安全クエリ
(4) Read Replica: グローバル分散でenv.DB.withSession()
(5) バックアップ: wrangler d1 exportで自動エクスポート
料金感(実務目安)
- Free: 5GB Storage・月50,000ms 読み込み・月100,000 書き込み
- Pro: $0.75/月 + 利用量課金
- Storage: $0.75/GB/月
- Read: $0.001/百万行・Write: $1.00/百万行
- Postgresと比較: 中規模利用で1/10〜1/30の料金
D1が向かないケース
- 大量データ(数百GB級)の書き込み中心の用途
- 複雑なJOIN・ウィンドウ関数・PostgreSQL固有機能が必須
- Cloudflareエコシステム外との連携が中心
30日学習プラン
- 1週目: Workers + D1でCRUDアプリ実装
- 2週目: Drizzle ORM統合・マイグレーション運用
- 3週目: Read Replica・グローバル分散テスト
- 4週目: 本番運用・バックアップ自動化
関連リンク
Cloudflare Workersは Cloudflare Workers深掘り、Neon/PlanetScale比較は サーバーレスDB選定、Drizzle ORMは Drizzle ORM深掘り を参照してください。