+ 作るログイン
図を読み込んでいます…
1 / 15
Cloudflare のすべて ― 1機能ずつ、仕組みと存在理由から / 全35本

Cloudflare 10:ロードバランシング ― 健康なサーバーへ送る

発行
アニメモ公式
版
第1版
改訂
コマ
全15

複数のサーバーや複数の場所に振り分ける Cloudflare Load Balancing を説明します。エンドポイント・プール・モニターの関係、ヘルスチェック、1台やプールごとの障害でのフェイルオーバー、ステアリングの方式、セッションアフィニティ、橙と灰色の違い、導入と料金、落とし穴まで。

なぜ、サーバー1台では足りないのか

小さく始めたサイトは、たいていサーバー1台で動いています。それで困らないうちはよいのですが、サイトが大事になるほど、1台であることの弱さが目立ってきます。

困りごと中身
故障ディスクや電源が壊れると、直るまでサイトが止まる
メンテナンスOS の更新や再起動のたびに止まる
集中アクセスが1台で受けきれる量を超えると、遅くなり、やがて落ちる
場所データセンターや地域ごと止まる障害には、1か所ではどうしようもない

解決の方向ははっきりしていて、サーバーを複数にすることです。でも、複数にしただけでは足りません。次の2つを決める係が必要になります。

1つは、リクエストをどのサーバーに送るか。もう1つは、どのサーバーが今壊れているかです。壊れたサーバーにリクエストを送り続けたら、複数にした意味がありません。

この係をロードバランサー(負荷分散装置)と呼びます。昔は専用の機械を買ってデータセンターに置くものでしたが、Cloudflare では、エッジそのものがロードバランサーになります。この号では、その仕組みと設定を見ていきます。

※この号は 2026年9月時点の情報をもとにしています。料金・提供されている方式・上限は変わることがあるので、公式のドキュメントで確かめてください。

  • Cloudflare のすべて 10 ― ロードバランシング
  • 1 / 15
  • なぜ、サーバー1台では足りないのか
  • Cloudflare のエッジ(世界中の拠点)
  • 利用者
  • オリジン
  • ブラウザ・アプリ
  • 1台だけ
  • 故障・メンテナンス・アクセスの集中。どれか1つでサイトが止まる
  • サーバーを増やしても、「どれに送るか」「壊れたのはどれか」を決める係が要る
  • 1台が止まればサイトも止まる。アクセスが増えれば1台では受けきれない。

一言でいうと:健康なサーバーだけに振り分ける

Cloudflare Load Balancing は、エッジで、リクエストを複数のサーバー(や複数の場所)に振り分ける機能です。各サーバーの様子を定期的に確かめ、健康なサーバーにだけ送ります。

専用の機械のロードバランサーと比べると、次のような違いがあります。

観点機械のロードバランサーCloudflare Load Balancing
置き場所自分のデータセンターCloudflare の世界中の拠点
それ自体の故障2台用意しないと、それが弱点になる拠点の網全体で動く
振り分けられる範囲同じデータセンターの中が中心別の地域・別のクラウドにまたがれる
攻撃への強さ自分で守る前段に DDoS 対策(04号)や WAF(05号)がある

特に3つ目が大きな利点です。「東京の AWS と、大阪の別のクラウド」のように、まったく別の場所にあるサーバーを1つのサイトとして束ねられます。1つの地域や1つのクラウド事業者が丸ごと止まっても、サイトは動き続けます。

図では、右側のオリジンが、東京と大阪の2つのプールに分かれ、それぞれに2台ずつサーバーがあります。エッジは、そのどこへ送るかを、リクエストごとに決めています。

  • Cloudflare のすべて 10 ― ロードバランシング
  • 2 / 15
  • 一言でいうと:健康なサーバーだけに振り分ける
  • Cloudflare のエッジ(世界中の拠点)
  • プール A(東京)
  • リクエスト
  • ロードバランサー:どこへ送るか決める
  • サーバーA1
  • サーバーA2
  • ヘルスチェック:定期的に様子を見る
  • 健康
  • 健康
  • 利用者
  • ブラウザ・アプリ
  • プール B(大阪)
  • サーバーB1
  • サーバーB2
  • 健康
  • 健康
  • Cloudflare Load Balancing:エッジで、複数のサーバー(複数の場所)に振り分ける
  • 機械を置く必要はない。世界中の拠点が、同じ判断をする
  • エッジが入り口の係になり、元気なサーバーへ送る。壊れたら自動で外す。

部品は3つ:エンドポイント・プール・モニター

Cloudflare Load Balancing は、3つの部品の組み合わせでできています。

部品中身図では
エンドポイント1台のサーバー。IP アドレスかホスト名で指定する(以前は「オリジン」と呼ばれていた)白い小さな箱
プール同じ役目のエンドポイントの束。多くは「場所ごと」に作る青い大きな箱
モニター健康を確かめる決まり。どのパスを・何秒ごとに・何が返れば健康かエッジの中のヘルスチェック

そして、これらをまとめるロードバランサーそのものは、app.example.com のようなホスト名として作ります。利用者がこの名前にアクセスすると、ロードバランサーがプールを選び、プールの中のエンドポイントを選びます。

選び方は2段です。

段何を選ぶか決めるもの
1段目どのプールかステアリング(後のページ)
2段目プールの中のどのエンドポイントかエンドポイントの重みと、プール内の振り分け方

エンドポイントには重みを付けられます。性能の高いサーバーには多め、試験中の新しいサーバーには少しだけ、といった配分ができます。新しい版を少しずつ試す(カナリアリリース)のにも使えます。

  • Cloudflare のすべて 10 ― ロードバランシング
  • 3 / 15
  • 部品は3つ:エンドポイント・プール・モニター
  • Cloudflare のエッジ(世界中の拠点)
  • プール A(東京)
  • ロードバランサー:どこへ送るか決める
  • サーバーA1
  • サーバーA2
  • ヘルスチェック:定期的に様子を見る
  • 健康
  • 健康
  • 利用者
  • ブラウザ・アプリ
  • プール B(大阪)
  • サーバーB1
  • サーバーB2
  • 健康
  • 健康
  • エンドポイント=1台のサーバー(番号か名前)。プール=同じ役目のエンドポイントの束
  • モニター=どう確かめるかの決まり(どのパスを・何秒ごとに・何が返れば健康か)
  • サーバー(エンドポイント)をまとめてプールにし、モニターで見張る。

ヘルスチェック:定期的に「元気?」と聞く

ロードバランサーの判断の土台が、ヘルスチェックです。モニターの決まりに従って、Cloudflare が各エンドポイントに定期的にリクエストを送り、返事を確かめます。

モニターで決めること例
方式HTTP・HTTPS・TCP など
パス/health
期待する答え状態コード 200、本文に ok を含む
間隔60秒ごと
やり直し何回失敗したら「不調」とするか
ヘッダーHost など、サーバーが必要とするもの

大事なのは、ヘルスチェックが世界の複数の地点から送られることです。1か所からだけ確かめると、その地点とサーバーの間の回線が不調なだけで「サーバーが落ちた」と誤解してしまいます。複数の地点の結果を合わせて判断するので、誤判定が減ります。どの地域から確かめるかは、プールごとに選べます。

もう1つ大事なのは、何を確かめるかです。「Web サーバーが返事をする」だけでは、アプリがデータベースにつながらず、実際にはエラーばかり返している状態を見逃します。/health のパスでは、データベースへの接続など、サービスとして本当に動けるかを確かめる作りにしておくと、ヘルスチェックが実態を映すようになります。

  • Cloudflare のすべて 10 ― ロードバランシング
  • 4 / 15
  • ヘルスチェック:定期的に「元気?」と聞く
  • Cloudflare のエッジ(世界中の拠点)
  • プール A(東京)
  • ロードバランサー:どこへ送るか決める
  • サーバーA1
  • サーバーA2
  • ヘルスチェック:定期的に様子を見る
  • 健康
  • 健康
  • 利用者
  • ブラウザ・アプリ
  • プール B(大阪)
  • サーバーB1
  • サーバーB2
  • GET /health
  • 健康
  • 健康
  • 世界の複数の地点から確かめる。1か所の回線の問題で「落ちた」と誤解しにくい
  • /health は、DB などにもつながるかまで確かめる作りにしておくと役に立つ
  • 決めたパスを叩き、期待した答えが返らなければ「不調」とみなす。

1台が不調なら、そのサーバーを外す

ヘルスチェックに失敗したエンドポイントは「不調(unhealthy)」になり、振り分けの対象から外れます。図では、東京のサーバー A1 が不調になり、東京のプールには A2 だけが残っています。

このとき、利用者は何も気づきません。リクエストは、同じプールの健康なサーバーに送られるからです。人が夜中に起きて設定を変える必要もありません。

不調だったサーバーが直ると、次のヘルスチェックで「健康」に戻り、自動で振り分けの対象に戻ります。

プールには、「最低いくつのエンドポイントが健康なら、このプールを使うか」という決まり(health threshold)もあります。例えば4台のプールで「2台以上」にしておくと、3台が落ちて1台だけになった時点で、プール全体が「不調」とみなされ、次のプールに切り替わります。1台に全部のリクエストが集中して、それも落ちてしまう、という連鎖を防ぐためです。

不調を見つけたら知らせてもらうことも大切です。プールごとに、メールや Webhook での通知を設定できます。自動で外れて利用者は困らなくても、壊れたサーバーは誰かが直す必要があるからです。

  • Cloudflare のすべて 10 ― ロードバランシング
  • 5 / 15
  • 1台が不調なら、そのサーバーを外す
  • Cloudflare のエッジ(世界中の拠点)
  • プール A(東京)
  • リクエスト
  • ロードバランサー:どこへ送るか決める
  • サーバーA1
  • サーバーA2
  • ヘルスチェック:定期的に様子を見る
  • 不調
  • 健康
  • 利用者
  • ブラウザ・アプリ
  • プール B(大阪)
  • サーバーB1
  • サーバーB2
  • 健康
  • 健康
  • 直れば、次のヘルスチェックで自動で戻る。人が操作する必要はない
  • プールには「最低いくつ健康なら使うか」の決まりもある
  • 同じプールの残りのサーバーに流す。利用者は気づかない。

プールごと落ちたら、次のプールへ(フェイルオーバー)

では、プールの中のサーバーが全部落ちたらどうなるでしょうか。例えば、東京のデータセンターが停電した場合です。

このときは、プールごと「不調」になり、ロードバランサーは次のプールへ切り替えます。図では、東京(プール A)の2台がどちらも不調になり、全部のリクエストが大阪(プール B)へ流れています。これがフェイルオーバー(故障時の切り替え)です。

状態送り先
東京が健康東京(1番目のプール)
東京が全部だめ大阪(2番目のプール)
全部のプールがだめ予備のプール(fallback pool)

プールの並び順が優先順位になります。もう1つ、予備のプール(fallback pool)を決めておきます。全部のプールが不調と判断されたときの最後の送り先です。ここには、「ただいまメンテナンス中です」という静的なページを返すサーバーを置く、といった使い方もあります。

フェイルオーバーの力を最大に生かすには、プールを別々の障害に巻き込まれない場所に置くことです。同じデータセンターの2つのプールは、停電のときに一緒に落ちます。別の地域、できれば別のクラウド事業者に置くと、1つの事業者の大きな障害にも耐えられます。

  • Cloudflare のすべて 10 ― ロードバランシング
  • 6 / 15
  • プールごと落ちたら、次のプールへ(フェイルオーバー)
  • Cloudflare のエッジ(世界中の拠点)
  • プール A(東京)
  • リクエスト
  • ロードバランサー:どこへ送るか決める
  • サーバーA1
  • サーバーA2
  • ヘルスチェック:定期的に様子を見る
  • 不調
  • 不調
  • 利用者
  • ブラウザ・アプリ
  • プール B(大阪)
  • サーバーB1
  • サーバーB2
  • 健康
  • 健康
  • プールの順番がそのまま優先順位。全部だめなら「予備のプール(fallback)」へ
  • 別の地域・別のクラウドにプールを置くと、データセンターごとの障害にも耐えられる
  • 東京が全部だめなら大阪へ。場所ごと壊れても止まらない。

どのプールへ送るか:ステアリング

プールが複数あるとき、どのプールへ送るかを決めるのがステアリング(traffic steering)です。いくつかの方式があります。

方式決め方向いている場面
Off(フェイルオーバー)並び順どおり。1番目が健康なら全部そこへ本番と予備(active-passive)
Random重みに応じてばらばらに両方を常に使う(active-active)
Geo利用者の地域ごとに、決めたプールへアジアはアジアのプール、欧州は欧州のプールへ
DynamicCloudflare が測った往復時間が短いプールへ地域を決めずに「速いほう」へ
Proximity登録した位置から、地理的に近いプールへ位置がはっきりしたデータセンター
Least Outstanding Requests未処理のリクエストが少ないプールへ処理の重さがばらつくとき

いちばん簡単で、多くの場合に十分なのは Off(フェイルオーバー)と Random です。前者は「普段は東京、だめなら大阪」、後者は「普段から東京と大阪で半分ずつ」です。

Geo や Dynamic は、世界中に利用者がいて、各地にプールを置いている場合に効いてきます。利用者の近くのプールに送れば、それだけ速くなります。

方式によっては、追加の契約や上位のプランが必要なものがあります。どの方式が使えるかは、公式の料金のページで確かめてください。

  • Cloudflare のすべて 10 ― ロードバランシング
  • 7 / 15
  • どのプールへ送るか:ステアリング
  • Off(フェイルオーバー)
  • 順番どおり。1番目が元気なら全部そこへ
  • Random
  • 重みに応じてばらばらに(両方を使う)
  • Geo
  • 利用者の地域ごとに、決めたプールへ
  • Dynamic
  • 測った往復時間が短いプールへ
  • Proximity
  • 地理的に近いプールへ(位置を登録)
  • Least Outstanding
  • 未処理のリクエストが少ないプールへ
  • 青・紫の方式は追加の契約や上位プランが要ることがある(公式で確認)
  • 順番どおり・ばらばら・近い順・速い順。サイトに合わせて選ぶ。

セッションアフィニティ:同じ人は同じサーバーへ

振り分けには、1つ困ることがあります。ログインしている人のリクエストが、毎回別のサーバーに送られると、サーバーの中に覚えていたログインの状態(セッション)が見つからず、ログアウトされたようになることがあるのです。

これを避けるのがセッションアフィニティです。有効にすると、最初の応答で Cloudflare が __cflb という Cookie を付け、その人の次からのリクエストを同じエンドポイントへ送ります。

方式中身
Cloudflare の Cookie__cflb Cookie でエンドポイントを覚える
Cookie + IP アドレスCookie が無いときは、送り元の番号で決める
HTTP ヘッダー指定したヘッダーの値で決める

覚えたエンドポイントが不調になれば、別のエンドポイントへ送られます。その瞬間には、やはりセッションは失われます。

だから、アフィニティは応急処置と考えるのがよいでしょう。本当は、セッションをサーバーの中ではなく、データベースや KV(20号)など共有の置き場に置き、どのサーバーに来ても同じように答えられる作りにするのが理想です。そうすれば、サーバーを足すのも外すのも自由になります。

なお、アフィニティは、次のページで見る「橙のロードバランサー」でしか使えません。Cookie を付けるには、エッジが通信を中継している必要があるからです。

  • Cloudflare のすべて 10 ― ロードバランシング
  • 8 / 15
  • セッションアフィニティ:同じ人は同じサーバーへ
  • Cloudflare のエッジ(世界中の拠点)
  • プール A(東京)
  • __cflb
  • ロードバランサー:どこへ送るか決める
  • サーバーA1
  • サーバーA2
  • ヘルスチェック:定期的に様子を見る
  • 健康
  • 健康
  • 利用者
  • ブラウザ・アプリ
  • プール B(大阪)
  • サーバーB1
  • サーバーB2
  • 健康
  • 健康
  • 最初の応答で Cloudflare が __cflb という Cookie を付け、次から同じサーバーへ送る
  • 本当は、セッションを DB や KV に置いて「どのサーバーでもよい」作りにするのが理想
  • Cookie で「前はこのサーバー」を覚えておく。ログイン中に飛ばされない。

橙のロードバランサーと、灰色のロードバランサー

ロードバランサーにも、01号で見た雲の色があります。どちらにするかで、動きが大きく変わります。

比べる点橙(プロキシ・L7)灰色(DNS のみ)
仕組みエッジが通信を中継し、リクエストごとに振り分けるDNS の答えとして、健康なエンドポイントの番号を返す
切り替えの速さ即座DNS の TTL の間は、古い答えが残る
使える通信HTTP(S)何でも(メール・ゲーム・独自の通信)
オリジンの番号隠れる見える
アフィニティ・一部の方式使える使えないものがある
キャッシュ・WAF効く効かない

Web サイトや API なら、橙を選びます。切り替えが速く、キャッシュや WAF といったほかの機能も一緒に効きます。

灰色は、HTTP 以外の通信を複数のサーバーに振り分けたいときに使います。例えば、メールサーバーやゲームのサーバーです。ただし、DNS の仕組み上、リゾルバーが覚えている間は古い答えが使われるので、切り替えには時間がかかります。TTL を短くしておくことが大事です。

HTTP 以外の通信をエッジで中継したい場合は、12号の Spectrum と組み合わせる方法もあります。

  • Cloudflare のすべて 10 ― ロードバランシング
  • 9 / 15
  • 橙のロードバランサーと、灰色のロードバランサー
  • 橙(プロキシ・L7)
  • 灰色(DNS のみ)
  • エッジが中継して振り分ける
  • 健康なサーバーの番号を答える
  • 切り替えが即座
  • HTTP 以外にも使える
  • アフィニティ・細かい方式
  • TTL の間は古い答えが残る
  • HTTP(S) だけ
  • オリジンの番号が見える
  • 橙はエッジで振り分ける。灰色は DNS の答えだけを変える。

導入:モニター → プール → ロードバランサー

Load Balancing は有料の追加機能なので、まず管理画面で有効にします(料金は後のページ)。そのあと、次の順で作ります。場所は、アカウントまたはゾーンの Traffic → Load Balancing です。

順番作るもの決めること
1モニターパス・期待する答え・間隔・ヘッダー
2プールエンドポイントの番号や名前・重み・モニター・確かめる地域・通知
3ロードバランサーホスト名(例 app.example.com)・橙か灰色・プールの順番・予備のプール
4ステアリングOff・Random など
5通知不調になったときのメールや Webhook

ロードバランサーを作ると、そのホスト名自体が DNS の行の代わりになります。同じ名前の DNS の行が既にあると、どちらが効いているのか分かりにくくなるので、移行するときは古い行を整理してください。

作ったら、切り替えを一度試しておくことをおすすめします。片方のプールのサーバーをわざと止め、ちゃんと次のプールに流れるか、通知が届くかを確かめます。障害は、試していない仕組みから順に失敗します。

  • Cloudflare のすべて 10 ― ロードバランシング
  • 10 / 15
  • 導入:モニター → プール → ロードバランサー
  • モニターを作る
  • プールを作る
  • LB を作る
  • 方式を選ぶ
  • 通知を設定
  • LB には名前を付ける(例 app.example.com)。これが DNS の行の代わりになる
  • プールの順番=優先順位。予備のプールも決めておく
  • 不調になったらメールや Webhook で知らせる
  • 同じ名前の DNS の行が既にあると、どちらが効くか混乱する
  • 管理画面の Traffic → Load Balancing から。先に有効化(有料)が要る。

使い方:モニターの設定と、確かめ方

ロードバランシングがうまく働くかどうかは、ほとんどモニターの設定で決まります。例を見てみましょう。

type            https
path            /health
expected_codes  200
expected_body   ok
interval        60      # 秒
retries         2
header Host     app.example.com

Host ヘッダーは忘れがちです。エンドポイントを IP アドレスで登録していると、ヘルスチェックのリクエストに正しいホスト名が付かず、サーバーが「知らないサイト宛て」として別のページやエラーを返すことがあります。

アプリの側には、ヘルスチェック用のパスを用意します。

ts
app.get("/health", async (c) => {
  await db.query("select 1"); // DB につながるかまで確かめる
  return c.text("ok");
});

トップページ(/)をヘルスチェックに使うのは避けてください。重い処理が走る、ログインに転送される、あるいは Cloudflare のキャッシュが返ってサーバーの実態を映さない、といった理由で誤判定の元になります。

エンドポイントの健康の状態と履歴は、管理画面の Load Balancing の分析で見られます。どのプールにどれだけ振り分けられたかも確かめられます。

  • Cloudflare のすべて 10 ― ロードバランシング
  • 11 / 15
  • 使い方:モニターの設定と、確かめ方
  • # モニター(例)
  • // /health の中身(例)
  • type: https
  • app.get("/health", async (c) => {
  • path: /health
  • await db.query("select 1")
  • expected_codes: 200
  • return c.text("ok")
  • interval: 60 (秒)
  • })
  • retries: 2
  • header Host: app.example.com
  • トップページを叩くと、重い・キャッシュが返る・ログインに飛ばされる、で誤判定しやすい
  • 「何が返れば健康か」を正しく決めるのが一番大事。

料金と制限

Load Balancing は、有料の追加機能です。無料プランを含む全プランで追加できますが、無料では使えません。

項目内容
基本料金月額。少数のエンドポイントと、限られた地域からのヘルスチェックを含む
増やすエンドポイントの数、ヘルスチェックの地域や間隔を増やすと料金が上がる
使えるリクエスト数一定量を超えると従量課金になる場合がある
上位の方式Geo・Dynamic・Proximity などは、追加の契約や上位のプランが必要なことがある
企業向け大規模なものは Enterprise の契約で

基本料金は小さい額から始められるので、「2台のサーバーでフェイルオーバーしたい」という用途なら、手の届きやすい価格です。一方、多くのエンドポイントや細かいヘルスチェックを使うと、料金は積み上がります。見積もりは公式の料金のページで確かめてください。

お金をかけない代わりの方法として、DNS に同じ名前の A 行を複数書く(ラウンドロビン)やり方もあります。ただし、これはヘルスチェックをしないので、落ちたサーバーの番号も答え続けます。「壊れたサーバーを外す」という一番大事な仕事ができません。

※2026年9月時点の情報です。料金・上限は変わるので、公式で確かめてください。

  • Cloudflare のすべて 10 ― ロードバランシング
  • 12 / 15
  • 料金と制限
  • 提供
  • 全プランで追加できる有料の機能
  • 基本料金
  • 月額。少数のエンドポイントとチェックを含む
  • 増やすと
  • エンドポイント・チェックの地域・間隔で増える
  • 上位の方式
  • Geo・Dynamic などは追加や上位プランのことも
  • 無料の代わり
  • DNS の複数の A 行(健康は見ない)
  • 2026年9月時点。料金・上限は変わるので公式で確かめること
  • Load Balancing は有料の追加機能。基本料金+エンドポイントなどの数で決まる。

よくある落とし穴

失敗なぜ起きるか対策
全部が「不調」になるオリジンのファイアウォールが、ヘルスチェックの通信を止めているCloudflare の番号の範囲を許す
DB が落ちても「健康」/health が Web サーバーの返事しか見ていない依存するものまで確かめる
切り替えが遅い灰色のロードバランサーで、TTL の間は古い答えが残る橙にする、TTL を短く
切り替えの瞬間にログアウトアフィニティに頼り、セッションがサーバーの中にあるセッションを共有の置き場へ
いざというとき動かない予備のプールや通知を試していない一度わざと止めて試す

1つ目はとてもよくある失敗です。ヘルスチェックは、Cloudflare の番号からあなたのサーバーに届きます。オリジンを守るためにファイアウォールで通信を絞っていると、ヘルスチェックまで止めてしまい、全部のサーバーが「不調」になって、予備のプールにしか流れなくなります。

逆に、ヘルスチェックのパスが甘すぎるのも問題です。本当は壊れているのに「健康」と答え続けると、ロードバランサーは壊れたサーバーに送り続けます。ヘルスチェックは「嘘をつかない」ことが何より大事です。

  • Cloudflare のすべて 10 ― ロードバランシング
  • 13 / 15
  • よくある落とし穴
  • オリジンのファイアウォールがヘルスチェックの通信を止め、全部「不調」
  • /health が DB を見ず、DB が落ちても「健康」のまま
  • 灰色の LB で、TTL の間は落ちたサーバーの番号が残る
  • アフィニティに頼り、サーバーが外れた瞬間にログアウトする
  • 予備のプールと通知を用意し、切り替えを一度試しておく
  • ヘルスチェックが嘘をつくと、元気なサーバーを外し、壊れたサーバーに送る。

他の号とのつながり

号つながり
01 DNSロードバランサーは「健康を見る、賢い DNS の行」とも言える
09 ルールOrigin Rules は「パスで行き先を固定」。LB は「健康で行き先を選ぶ」
11 Argo と Tiered Cacheプールまでの道を速くし、プールに届く数を減らす
15 TunnelTunnel をエンドポイントにして、受け口を開けずに冗長化できる
18 Workersコードで、もっと自由な振り分けを書ける
32 分析とログ健康の履歴や振り分けの結果を見る

「どこへ送るか」を決める仕組みは、Cloudflare に3段あると考えると整理できます。条件で決めるのがルール(09号)、健康と距離で決めるのがロードバランシング(この号)、コードで自由に決めるのが Workers(18号)です。まずは簡単なほうから試し、足りなければ次の段へ進みます。

  • Cloudflare のすべて 10 ― ロードバランシング
  • 14 / 15
  • 他の号とのつながり
  • 01 DNS
  • 09 Origin Rules
  • 11 Argo
  • LB は賢い DNS の行
  • パスで行き先を固定
  • プールまでの道も速く
  • 15 Tunnel
  • 18 Workers
  • 32 分析とログ
  • Tunnel もエンドポイントに
  • コードで振り分け
  • 健康の履歴を見る
  • 「どこへ送るか」を決める仕組みは、ルール・LB・Workers の3段。

まとめ:見張って、健康なところへ送る

この号で見たことをまとめます。

項目内容
なぜ要るか1台では、故障・メンテナンス・集中・地域の障害で止まる
仕組みエッジがロードバランサーになり、健康なエンドポイントにだけ送る
部品エンドポイント(1台)・プール(束)・モニター(見張りの決まり)
1台が不調そのエンドポイントを外す。直れば自動で戻る
プールが不調次のプールへ(フェイルオーバー)。最後は予備のプール
ステアリングOff・Random・Geo・Dynamic など
アフィニティ__cflb Cookie で同じサーバーへ。本来はセッションを共有の置き場に
橙と灰色Web は橙。HTTP 以外は灰色(切り替えは TTL しだい)
料金有料の追加機能。基本料金+数や地域で増える

次の11号では、エッジからオリジンまでの道そのものを速くする Argo と、オリジンに届く数を減らす Tiered Cache を見ていきます。

  • Cloudflare のすべて 10 ― ロードバランシング
  • 15 / 15
  • まとめ:見張って、健康なところへ送る
  • Cloudflare のエッジ(世界中の拠点)
  • プール A(東京)
  • リクエスト
  • ロードバランサー:どこへ送るか決める
  • サーバーA1
  • サーバーA2
  • ヘルスチェック:定期的に様子を見る
  • 不調
  • 健康
  • 利用者
  • ブラウザ・アプリ
  • プール B(大阪)
  • サーバーB1
  • サーバーB2
  • 健康
  • 健康
  • 1台が落ちれば外し、プールが落ちれば次のプールへ。直れば自動で戻る
  • 要は /health の作り。何が返れば「健康」かを正しく決める
  • エンドポイントをプールにまとめ、モニターで見張り、ステアリングで選ぶ。

0 件のコメント

読み込み中…

権利侵害・不適切な内容の連絡: [email protected]