ガイド: Cloudflare(Workers / Tunnel / R2 / DB)
X の投稿でいちばん多い話題。「エッジで小さく動かして安く済ませる」小技と、従量課金・設定移行でハマった実例をセットで押さえる。
使い方の小技
- Cloudflare Queues: eu / us / fedramp の jurisdiction でデータ所在地を固定する
- Cloudflare Workers: ランタイム更新時の grace period が最大 20 分に
- Cloudflare API Shield: スキーマ学習を週次待ちせずオンデマンドで走らせる
- D1 制御プレーンの設計パターン: ホットパスから中央 DB を外す
- YAOS: Obsidian vault を自分の Cloudflare Worker でリアルタイム同期する
- Cloudflare Logpush Transformers: SQL でログを絞る・伏せる・形を変えてから送る
- Cloudflare API MCP: skills/list で公式スキルを読む
- Cloudflare HTTP/3: クライアントキャンセルが 499 になる — 可用性計算から外す
- R2: 帯域を Cloudflare ロケーション別に見る
- Cloudflare Rules: cf.appsec.request.failed_detections で検知失敗を扱う
- Cloudflare Email Routing + Sending: 独自ドメインメールを Gmail で送受信する
- R2 を macOS Finder から扱う: rclone nfsmount(macFUSE なし)
- Cloudflare Zero Trust(ZTNA): VPN なしで社外から社内 RDP へ
- Cloudflare Workflows: createBatch() で最大 100 インスタンスをまとめて起動する
- Cloudflare Workers / Durable Objects の本番オンデマンド CPU・メモリプロファイリング
- Cloudflare Mesh + Workers VPC: エージェントと Workers を同じプライベート網に載せる
- Cloudflare Workers / Developer Platform 小技まとめ — DO の
scheduleEvery、Service Bindings + Hono RPC、Workers Cache、wrangler deploy --temporary、/crawl+ Cron、agent-context、料金の手触り - cloudflared Quick Tunnel をメール認証つきで共有する(--allowed-mail) — ローカルの開発サーバーを特定の人だけに見せる
- 個人開発の DB コストを下げる構成パターン — D1 / Turso のテナント別 DB、Postgres クラスタ共有、PlanetScale のクレジット注意
- 個人サービスのストレージ見直し: R2 → GCS のバックアップをイベント駆動に、冷たいデータは DB から出す
ハマりどころ
- Cloudflare Workers × better-auth: hanging promise で「特定ユーザーだけ全滅」する — isolate 共有の遅延初期化 × クライアント切断
- OpenNext + R2 で next/image の最適化を無駄に有効にしていて、AI クローラーに Images Transform を 250 万回叩かれた話 — 従量課金はボットでも発生する
- Astro 7 移行の罠: @astrojs/cloudflare v14 から配信先が Pages → Workers に変わる — ビルド成功なのに本番が古いまま