Cloudflare では、次の 3 種類のロードバランサーから選べます。
レイヤー 7 ロードバランサーは、各 HTTP/HTTPS リクエストに含まれる情報(HTTP ヘッダー、URI、Cookie、データの種類など)に基づいて、特定のエンドポイントへトラフィックを振り分けます。
クライアントがアプリケーションにアクセスすると、Cloudflare はそのリクエストを健全なエンドポイントへ向けます(トラフィックステアリングポリシー と エンドポイントの重み で決まります)。
ホスト名へのトラフィックが Cloudflare で プロキシ されている場合、Cloudflare はレイヤー 7 負荷分散を行います。Load Balancing ダッシュボードでは、これらのロードバランサーはオレンジの雲で表示されます。
DNS-only の負荷分散と比べて、レイヤー 7 の負荷分散には次の利点があります。
- エンドポイントの IP アドレスを隠すことで、DDoS 攻撃から保護します。
- DNS キャッシュの影響を受けにくく、より速いフェイルオーバーと正確なルーティングを提供します。
- キャッシュ、Workers、WAF など、ほかの Cloudflare 機能と連携します。
- Cloudflare への権威クエリを減らし、従量課金のお客様ではコスト削減につながる場合があります。
- カスタマイズした セッションアフィニティ と エンドポイントドレイン に対応します。
- ユーザーの再帰リゾルバーに紐づくデータセンターではなく、リクエストを行ったユーザーに紐づくデータセンターを使うため、トラフィックの位置情報をより正確に特定します。
- Private Network Load Balancing により、プライベート IP アドレスに対応します。
DNS のみのロードバランサーは、クライアントの DNS クエリに対して特定の IP アドレスを返すことでトラフィックを振り分けます。
クライアントがアプリケーションにアクセスすると、Cloudflare は健全なエンドポイントのアドレスを返します(トラフィックステアリングポリシー と エンドポイントレベルのステアリングポリシー で決まります)。ただし Cloudflare は、健全なアドレスの最新リストを再問い合わせするために、DNS リゾルバーが短い TTL を守ることを前提にしています。クライアントがキャッシュ済みの DNS 応答を持っている場合、以前の宛先へ向かい、ロードバランサーを無視する可能性があります。
ホスト名へのトラフィックが Cloudflare を プロキシ経由でない 場合、Cloudflare は DNS のみの負荷分散を行います。Load Balancing ダッシュボードでは、これらのロードバランサーは灰色の雲で表示されます。
ロードバランサーを、MX または SRV レコード に使うホスト名へ接続している場合(A、AAAA、CNAME レコードではない場合)、プロキシモードは DNS-only にしてください。
プロキシされたレイヤー 7 ロードバランシングと比べ、DNS のみのロードバランシングには次の制限があります。
- エンドポイントの IP アドレスを隠さないため、DDoS 攻撃にさらされやすくなります。
- DNS リゾルバーとキャッシュ設定に依存するため、フェイルオーバーが遅く、ルーティングの精度も低くなります。
- キャッシュ、Workers、WAF などのほかの Cloudflare 機能と連携できません。
- Cloudflare に対する権威クエリが増え、従量課金のお客様ではコストが上がる可能性があります。
- セッションアフィニティ は使えません。代わりに DNS persistence を使えます。
- 利用できる場合は、ECS 送信元アドレスに紐づくデータセンターでトラフィックを地理的に特定します。利用できない場合は、ユーザーの再帰リゾルバーを基準に地理的に特定します。この場合、レイテンシベースステアリング で問題が起きることがあります。
- Private Network Load Balancing は使えません。
レイヤー 4 ロードバランサーは、特定のポートまたは IP アドレスへトラフィックを転送してルーティングします。
Cloudflare は現在、レイヤー 4 ロードバランシングを Cloudflare Spectrum の一部としてのみサポートしています。