Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

トンネルの可用性とフェイルオーバー

最終更新 Markdown で表示Agent セットアップ

軽量なオープンソースコネクタ cloudflared は、追加設定なしで高可用性を前提に作られています。トンネルを起動すると、cloudflared はオリジンサーバーと Cloudflare ネットワークの間に、アウトバウンドのみの接続を 4 本確立します。この 4 本は、少なくとも 2 つの異なるデータセンターに分散した 4 台のサーバーへ接続します。このモデルにより可用性が高くなり、個別の接続障害のリスクを抑えられます。1 本の接続、1 台のサーバー、または 1 つのデータセンターがオフラインになっても、リソースは利用可能なままです。

cloudflared レプリカ

可用性とフェイルオーバーのために、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 を使います。

cloudflared レプリカを使う場合

  • 1 つのトンネルに対して、追加の可用性ポイントを用意する。
  • ネットワーク内にフェイルオーバーノードを割り当てる。
  • トンネルの設定を ダウンタイムなし で更新する。

セットアップ手順は cloudflared レプリカをデプロイする を参照してください。

Cloudflare Load Balancers

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 に接続されている場合に使います。

役に立ちましたか?