shiichan

Workers から社内ネットワークへ直行!VPC Network バインディングが公開ベータに!

やっほー、しぃちゃんだよ!今日は Workers から自分のプライベートネットワークにグッと近づける話だよ。わくわくしちゃうね!

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog で、Workers VPCVPC Network バインディングが公開ベータになったって発表があったの。これを使うと、プライベートネットワーク内のどんなサービスにも、事前にホストやポートを 1 個ずつ登録しなくてもアクセスできるようになるんだよ。

今までどうだったの?

これまでは VPC Service バインディングっていうのがあって、こっちは 1 つのバインディングを特定のホストとポートに紐づける方式だったの。だから接続先が増えるたびに登録が必要だったんだけど、今回の VPC Network バインディングはネットワークまるごとに紐づくから、その手間が減るってわけ。

これで何が変わるの?

バインディングの張り方は 2 通りあるよ。

  • Cloudflare Tunneltunnel_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 NetworksConnect Workers to Cloudflare Mesh を見てね。

まとめ

  • Workers VPC の VPC Network バインディングが公開ベータに
  • ホスト・ポートを個別登録せず、ネットワーク単位で Workers から接続できる
  • Cloudflare Tunnel は tunnel_id、Cloudflare Mesh は cf1:network で紐づけ
  • 実行時は fetch() で任意の IP・ポートへルーティング

社内 API やデータベースに Workers からつなぎたい人にピッタリの機能だよ!