Skip to main content

第13章:D1・KV・R2・Queuesとの使い分け 🗺️

Durable Objectsを覚えると、何でもDOで作りたくなるかもしれません。
でもCloudflareには、それぞれ得意分野が違う保存先や処理基盤があります。


1. ざっくり地図 🧭

まずは使い分けを表で見ます。

KV  → 軽い設定、読み取りが多いデータ
D1 → SQLで扱う表データ
R2 → 画像、PDF、ログなどのファイル本体
Queues → あとで処理する仕事
DO → 同じIDの状態を1か所で管理したい処理

DOは万能箱ではなく、状態管理の担当です。

各サービスの得意分野


2. チャットの場合 💬

チャットなら、こう分けられます。

現在の部屋状態 → Durable Object
長期保存するメッセージ検索 → D1
添付画像 → R2
通知送信 → Queues
機能フラグ → KV

1つのサービスに全部詰め込まないのがコツです。

チャットアプリの構成例


3. AIアプリの場合 🤖

AIチャットや生成アプリでも、分けて考えます。

進行中の会話ルーム → Durable Object
会話履歴の検索 → D1
生成した画像やPDF → R2
長い生成処理 → Queues
外部AI API保護 → AI Gateway

DOは「今この会話で何が起きているか」を扱う場所として使えます。

AIアプリの構成例


4. DOを避ける場面 🛑

次のような用途では、別サービスを先に考えます。

  • 全ユーザー横断で大量検索したい
  • 大きなファイルを保存したい
  • 単純な設定値を読むだけ
  • 長いバッチ処理を安定して流したい

こうした場合はD1、R2、KV、Queuesのほうが自然です。

DOを避けるべきケース


5. 章末チェック ✅

  • DOは万能ではないと分かる
  • KV、D1、R2、Queuesとの違いが分かる
  • チャットでの分担を説明できる
  • AIアプリでの分担を説明できる
  • 状態管理が必要な場所だけDOを使える

この章で覚える一言はこれです。
Durable Objectsは、“同じIDの状態をまとめたい場所”に使います 🗺️

第13章まとめ