Skip to content

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

Load Balancing の構成要素

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

このページでは、Cloudflare Load Balancing の 3 つの主な構成要素と、それらの関係を簡潔に説明します。

ロードバランサー

ホスト名(blog.example.com)を解決するには、Domain Name System(DNS)がそのウェブサイトまたはアプリケーションをホストする IP アドレス(オリジン)を返す必要があります。

パブリックロードバランサーを設定すると、Cloudflare は指定したホスト名に対して LB DNS レコード を自動で作成します。つまり、単に IP アドレスを返すのではなく、優先順位 に従って、Cloudflare Load Balancing で導入したロジックが考慮されます。

ルートドメインをロードバランサーのホスト名として使うこともできます。その場合は、ゾーン名の前に自動生成されるドットを含めず、ホスト名を入力してください。

    flowchart LR
      accTitle: 負荷分散の流れ
      accDescr: 負荷分散には、ロードバランサー、プール、エンドポイント、モニター、ヘルスモニターが含まれます。
      B[リクエスト 1] --> A
      C[リクエスト 2] --> A
      D[リクエスト 3] --> A
      A[ロードバランサー] -- リクエスト 1 --> P1
      A -- リクエスト 2 --> P2
      A -- リクエスト 3 --> P3
      subgraph P1 [プール 1]
      Endpoint1((エンドポイント 1))
      Endpoint2((エンドポイント 2))
      end
      subgraph P2 [プール 2]
      Endpoint3((エンドポイント 3))
      Endpoint4((エンドポイント 4))
      end
      subgraph P3 [プール 3]
      Endpoint5((エンドポイント 5))
      Endpoint6((エンドポイント 6))
      end

プール

Cloudflare では、プールはエンドポイントとその整理方法を表します。そのため、プールは複数のエンドポイントのグループにも、エンドポイント 1 つだけのプールにもできます。用途に合わせて選びます。

たとえば、Cloudflare でリージョン間にトラフィックをグローバルに分散するだけなら(グローバルトラフィックステアリング)、各プールを 1 つのリージョンとし、その中にデータセンターへの入口となるエンドポイントを 1 つ置く構成が考えられます。

Cloudflare の Private Network Load Balancingエンドポイントステアリング を使うと、データセンター内のサーバー間でも負荷分散できます。この場合、各プールはデータセンターを表し、サーバーを表す複数のエンドポイントを含めます。

エンドポイント

エンドポイントとは、受信したパブリックまたはプライベートトラフィックを受け取り、処理するサービスまたはハードウェアです。

エンドポイントの例には、オリジン、ホスト名、プライベートまたはパブリック IP アドレス、仮想 IP アドレス(VIP)、サーバー、その他の専用ハードウェアがあります。

モニター

モニターは、トラフィック分散の対象を 健全なプール だけにするための構成要素です。

モニターを設定してエンドポイントに関連付けると、モニターは一定間隔でエンドポイントへヘルスモニターリクエストを送ります。これにより、ロードバランサーは実際に利用できるエンドポイントを考慮して、トラフィックを判断できます。

    flowchart RL
      accTitle: ロードバランシングのモニターの流れ
      accDescr: モニターはヘルスモニターリクエストを送り、各プール内のサーバーの現在の状態を確認します。
      Monitor[モニター] -- ヘルスモニター ----> Endpoint2
      Endpoint2 -- 応答 ----> Monitor
      subgraph Pool[プール]
      Endpoint1((エンドポイント 1))
      Endpoint2((エンドポイント 2))
      end

役に立ちましたか?