概要
一言で言うと、ユーザーのリクエストが届く手前の、世界中の拠点(エッジ)に、計算も保存も防御も置く仕組みです。
Cloudflare はもともと CDN と DNS と防御の会社で、その同じ拠点にコードを動かす場所(Workers)が加わり、さらにデータの置き場と AI 推論が足されました。だから「Worker を中心に、必要なものを binding でつなぐ」と捉えると、全体が迷子になりません。
図の上段のうち、ユーザーとエッジの側は、ドメインを Cloudflare に向けるだけで効きます。下段の部品は、Worker のコードから呼びます。呼び出しには env.BUCKET のような binding を使い、API キーをコードに書きません。
全体を一望
タイルを押すと、そのサービスの説明に飛びます。枠の線で、学ぶ優先度が分かります。
データの置き場を選ぶ
Cloudflare で最初に迷うのは、どこにデータを置くかです。データの形で決まります。
| サービス | データの形 | 一貫性 | 得意 | 苦手 |
|---|---|---|---|---|
| KV | キーと値 | 結果整合。書いた直後は拠点ごとに差が出る | 読み取りが多い設定値、フラグ、リダイレクト表 | 頻繁な書き込み、正確なカウンタ |
| R2 | オブジェクト(ファイル) | 強整合 | 大きなファイル、転送量の多い配信、バックアップ | 中身を検索すること |
| D1 | SQLite の表 | 書き込みは単一のプライマリ | ユーザーや記事などの関係データ | 巨大な単一 DB、書き込みの大量並列 |
| Durable Objects | ID ごとの状態 | ID 単位で強整合 | 排他制御、順序保証、WebSocket | ID をまたぐ集計 |
| Vectorize | ベクトル | 書き込みは非同期で反映 | RAG、類似検索 | 完全一致の検索 |
| Hyperdrive | 外部 DB のまま | DB 側に従う | 既存資産の再利用 | DB が遠いと遅い |
まず触る
Worker を作って、R2、KV、D1 の 3 つを binding でつなぐ最小の形です。
ターミナル
npm create cloudflare@latest my-worker cd my-worker npx wrangler r2 bucket create my-bucket npx wrangler dev # ローカルで起動 npx wrangler deploy # 本番へ反映 npx wrangler tail # 本番のログをその場で見る
wrangler.jsonc
{
"name": "hello-edge",
"main": "src/index.js",
"compatibility_date": "2026-10-01",
// binding 名がそのまま env.XXX になる
"r2_buckets": [{ "binding": "BUCKET", "bucket_name": "my-bucket" }],
"kv_namespaces": [{ "binding": "KV", "id": "YOUR_KV_ID" }],
"d1_databases": [{ "binding": "DB", "database_name": "my-db", "database_id": "YOUR_D1_ID" }]
}
src/index.js
export default {
async fetch(request, env) {
const url = new URL(request.url);
if (url.pathname === "/file") {
const obj = await env.BUCKET.get("hello.txt");
return obj ? new Response(obj.body) : new Response("not found", { status: 404 });
}
if (url.pathname === "/flag") {
const v = await env.KV.get("feature-x");
return Response.json({ enabled: v === "on" });
}
const row = await env.DB.prepare("SELECT COUNT(*) AS n FROM notes").first();
return Response.json(row);
},
};
compatibility_date は、その日付時点の Workers の挙動に固定する設定です。新しく作るときは今日に近い日付にし、後から上げるときは変更点を確認してから上げます。
該当するサービスがありません。検索語か絞り込みを変えてみてください。
学ぶ順番
依存関係の順に並べています。各ステップは、1 日で終わる小さな課題を 1 つ作れば十分です。
用語集
- エッジ
- ユーザーに近い世界中の拠点。Cloudflare はここでコードを動かします。
- binding
- Worker のコードに、他のサービスを
env.名前として差し込む仕組み。設定は wrangler の設定ファイルに書きます。 - isolate
- Workers が使う、V8 の軽い実行単位。コンテナや VM より起動が軽く、1 つのプロセスに多数が同居します。
- wrangler
- Workers の公式 CLI。作成、ローカル実行、デプロイ、ログ、各種リソースの作成までを担います。
- compatibility_date
- Workers の挙動を、指定した日付の時点に固定する設定。ランタイムの更新で突然壊れないための仕組みです。
- Smart Placement
- Worker を、ユーザーの近くではなくバックエンドの近くで動かす設定。DB の往復が多い処理で効きます。
- egress
- 外へ出ていくデータ転送のこと。多くのクラウドでは課金対象ですが、R2 では転送料がかかりません。