Cloudflare Mesh + Workers VPC: エージェントと Workers を同じプライベート網に載せる
Cloudflare Mesh はデバイス・サーバー・エージェント向けのプライベートネットワーク(アカウントあたり 50 ノード + 50 ユーザーまで無料)。Workers VPC の network_id: "cf1:network" バインディングで、Workers / Agents / Durable Objects から Mesh 上の任意ホストに fetch() / connect() できる。ホストごとの事前登録は不要。
どんなときに使う?
- コーディングエージェントが staging・社内 API・プライベート DB に触りたいが、VPN ログインやインターネット公開は避けたい
- ノート PC・VPS・エージェントを同じ網にしたい
- Workers から Cloudflare Tunnel や Mesh ノードの裏にあるサービスへ届きたい
やり方(概要)
- ダッシュボード Networking → Mesh でノードを追加(クライアント / サーバー)
- Worker の Wrangler 設定:
jsonc
{
"vpc_networks": [
{
"binding": "MESH",
"network_id": "cf1:network",
"remote": true
}
]
}- コードからプライベート IP へ:
ts
const res = await env.MESH.fetch("http://10.0.1.50:8080/api/data");非 HTTP は同じバインディングの connect() で TCP。
Tunnel 単位で縛りたい場合は tunnel_id を持つ VPC Network バインディングも併用できる。
料金・ベータ
- Mesh: 50 nodes / 50 users まで無料(投稿・公式ブログ時点)
- Workers VPC: ベータ中は Workers 全プランで無料(変更の可能性あり)
注意点
- Mesh 経由は現状 IP ベースのルーティングが中心(ドキュメントの例も IP:port)
- 既存の Cloudflare One(Gateway ポリシー等)がある場合、Mesh トラフィックにも適用される
- 第三者ベンチ(NetBird / Tailscale との iperf3)は経路次第で結果が変わる。採用判断は自環境で測る