軽量なオープンソースコネクタ cloudflared ↗ は、追加設定なしで高可用性を前提に作られています。トンネルを起動すると、cloudflared はオリジンサーバーと Cloudflare ネットワークの間に、アウトバウンドのみの接続を 4 本確立します。この 4 本は、少なくとも 2 つの異なるデータセンターに分散した 4 台のサーバーへ接続します。このモデルにより可用性が高くなり、個別の接続障害のリスクを抑えられます。1 本の接続、1 台のサーバー、または 1 つのデータセンターがオフラインになっても、リソースは利用可能なままです。
可用性とフェイルオーバーのために、cloudflared の追加インスタンスをデプロイできます。これらのインスタンスをレプリカと呼びます。各レプリカは Cloudflare への新しい接続を 4 本確立し、オリジンへの追加の入口になります。すべてのレプリカは同じトンネルを指すため、cloudflared を動かしている 1 台のホストが停止しても、残りのレプリカがトラフィックを処理し続けます。
graph LR
C((Cloudflare))
subgraph E[ご利用のネットワーク]
cf1["cloudflared <br> (tunnel-01 のレプリカ)"]
cf2["cloudflared <br> (tunnel-01 のレプリカ)"]
S1[アプリケーション]
cf1-->S1
cf2-->S1
end
C -- "接続 × 4 <br>"--> cf1
C --> cf1
C --> cf1
C --> cf1
C -- 接続 × 4--> cf2
C --> cf2
C --> cf2
C --> cf2
レプリカはトラフィックステアリング(ラウンドロビンやハッシュベースのルーティングなど)に対応していません。リクエストが Cloudflare に届くと、地理的に最も近いレプリカへ転送されます。その接続が失敗した場合、Cloudflare はほかのレプリカで再試行しますが、どれが選ばれるかは保証されません。インテリジェントなトラフィック分散が必要な場合は、代わりに Cloudflare Load Balancers を使います。
- 1 つのトンネルに対して、追加の可用性ポイントを用意する。
- ネットワーク内にフェイルオーバーノードを割り当てる。
- トンネルの設定を ダウンタイムなし で更新する。
セットアップ手順は cloudflared レプリカをデプロイする を参照してください。
Cloudflare Load Balancing は、正常でないオリジンからトラフィックを事前にそらし、選択した ステアリングアルゴリズム に基づいて負荷を分散します。cloudflared レプリカ はすべて同じトンネルを使いますが、一般的なロードバランサー構成では複数のトンネルを作成します。多くの場合、データセンターごとに 1 つのトンネル、トンネルごとに 1 つのロードバランサープールを作成します。
graph LR
accTitle: Load balancing traffic to applications behind Cloudflare Tunnel
A[Internet] --> C{Cloudflare <br> Load Balancer}
B[Cloudflare One Client] --> C
M[Cloudflare WAN] --> C
C -- Tunnel 1 --> cf1
C -- Tunnel 2 --> cf2
subgraph F[Data center 2]
cf2[cloudflared <br> server]
S3[App server]
S4[App server]
cf2-->S3
cf2-->S4
end
subgraph E[Data center 1]
cf1[cloudflared <br> server]
S1[App server]
S2[App server]
cf1-->S1
cf1-->S2
end
- レイテンシ、地理位置情報、その他のシグナルに基づいて、トラフィックをインテリジェントに誘導する。
- トンネルが inactive 状態になったときのフェイルオーバーロジックを実装する。
- トンネルが inactive 状態になったときに ヘルスアラート を受け取る。
- Cloudflare Tunnel 経由で到達できるオリジンまたはエンドポイントへ、トラフィックをより均等に分散する。
セットアップ手順は、ユースケース に応じて 公開ロードバランサー または Private Network Load Balancing を参照してください。
Cloudflare Tunnel のエンドポイントで使えるロードバランサーには、次の 2 種類があります。
- 公開ロードバランサー は、インターネットからのトラフィックを、Cloudflare ドメインで公開しているアプリケーションへ誘導します。サービスが 公開アプリケーションルート 経由で Cloudflare Tunnel に公開されている場合に使います。
- プライベートロードバランサー は、Cloudflare One Client、Cloudflare WAN、その他の オンランプ からのトラフィックを、プライベートネットワーク上の内部 IP へ誘導します。サービスが CIDR ルート 経由で Cloudflare Tunnel に接続されている場合に使います。