Workers から社内ネットワークへ直行!VPC Network バインディングが公開ベータに!
やっほー、しぃちゃんだよ!今日は Workers から自分のプライベートネットワークにグッと近づける話だよ。わくわくしちゃうね!
Cloudflare Changelogなにが発表されたの?
Cloudflare の Changelog で、Workers VPC の VPC Network バインディングが公開ベータになったって発表があったの。これを使うと、プライベートネットワーク内のどんなサービスにも、事前にホストやポートを 1 個ずつ登録しなくてもアクセスできるようになるんだよ。
今までどうだったの?
これまでは VPC Service バインディングっていうのがあって、こっちは 1 つのバインディングを特定のホストとポートに紐づける方式だったの。だから接続先が増えるたびに登録が必要だったんだけど、今回の VPC Network バインディングはネットワークまるごとに紐づくから、その手間が減るってわけ。
これで何が変わるの?
バインディングの張り方は 2 通りあるよ。
- Cloudflare Tunnel に
tunnel_idで紐づけると、そのトンネルが動いているネットワーク上のサービスに届く - Cloudflare Mesh ネットワークに
cf1:networkで紐づけると、アカウント内の Mesh ノード・クライアント端末・サブネットルートに届く
つまり「この IP のこのポート」を先に全部登録しなくても、ネットワーク単位でつないでおけば、あとは実行時に好きな宛先へ飛べるの。
深く潜ってみよう
設定は wrangler の設定ファイルに書くよ。Mesh につなぐならこんな感じ。
{
"vpc_networks": [
{
"binding": "MESH",
"network_id": "cf1:network",
"remote": true
}
]
}
あとは実行時に fetch() を呼ぶと、指定した IP とポートまでネットワーク越しにルーティングしてくれるの。
const response = await env.MESH.fetch("http://10.0.1.50:8080/api/data");
もっと詳しい設定オプションや例は VPC Networks と Connect Workers to Cloudflare Mesh を見てね。
まとめ
- Workers VPC の VPC Network バインディングが公開ベータに
- ホスト・ポートを個別登録せず、ネットワーク単位で Workers から接続できる
- Cloudflare Tunnel は
tunnel_id、Cloudflare Mesh はcf1:networkで紐づけ - 実行時は
fetch()で任意の IP・ポートへルーティング
社内 API やデータベースに Workers からつなぎたい人にピッタリの機能だよ!