入口(ロードバランサ/WAF)— 振り分ける係と、門番

概要 — まず全体をつかむ

初級では入口を「案内係+警備員」と捉えました。中級では、LBの層の違い・ヘルスチェック・WAFを正確に見ます。

詳細 — 1段階ずつ追う

これは何をする係?

入口は、複数の役割が重なった層です。

  • ロードバランサ — トラフィックを複数のサーバへ分散。L4(IP/ポートで機械的に)と L7(HTTPの中身を見て賢く)がある
  • リバースプロキシ — クライアントとサーバの間に立ち、SSL終端・振り分け・キャッシュを担う
  • WAF — HTTPの中身を検査し、既知の攻撃パターン(インジェクション等)を遮断する

登場人物メモ:

  • ※1 ヘルスチェック — 各サーバへ定期的に「生きてる?」を確認し、死んだ台を外す
  • ※2 SSL終端 — 暗号化(TLS)の解除を入口でまとめて行い、内側は平文で楽をする
この部分をもっと深く(上級
  • L4 — IP/ポートで転送。NATモードや、戻りを直接返すDSR(Direct Server Return) で高速化
  • L7 — HTTPを終端して解釈。パス/ヘッダ/Cookieでルーティング、リトライ、レート制限、圧縮、mTLS
  • TLS終端 vs パススルー — 入口で解くか、内部まで暗号のまま運ぶか(セキュリティと可視性のトレードオフ)
やさしく言うと(初級

人気店の入口を思い浮かべてください。案内係(※1 ロードバランサ) が「空いている席(サーバ)」へお客さんを通し、警備員(※2 WAF) があやしい人を止める。この2つがセットで働きます。

登場人物メモ:

  • ※1 ロードバランサ(LB) — 来たお願いを、空いている複数のサーバへ振り分ける受付
  • ※2 WAF — Webアプリの門番。攻撃っぽいリクエストを入口で弾く

仕事の流れ

  1. リクエスト到達。必要なら入口で SSL終端(TLSを解く)
  2. WAF がルール/シグネチャで不正リクエストを検査・遮断
  3. ロードバランサ が分散アルゴリズムで振り分け先を選ぶ(ラウンドロビン=順番に一台ずつ、最少接続=今つないでいる接続数が最も少ない台へ、など)
  4. ヘルスチェックで異常な台を除外し、生きている台にのみ渡す
アニメーション『振り分けアルゴリズムの3方式』を開く
振り分けアルゴリズムの3方式ラウンドロビン順番に一台ずつ要求 ①②③Web1Web2Web3順番に均等に回す最小接続空いている台へ新しい要求Web1接続5Web2接続2Web3接続8いま最も空いている台へハッシュ同じ人は同じ台利用者Ahash(利用者)で決定Web1Aの担当Web2Web3Bの担当同じ人は毎回同じ台=セッション維持
この部分をもっと深く(上級
  1. 分散アルゴリズム — ラウンドロビン/最少接続/重み付け/一貫ハッシュ(同じ利用者を同じ台へ寄せつつ偏りを抑える)
  2. ヘルスチェック — アクティブ(定期プローブ)とパッシブ(実トラフィックの失敗を観測)
  3. コネクションドレイン — 台を外すとき、進行中の接続を待ってから切る
  4. セッション親和性 — スティッキーは必要だが偏りの元。可能なら状態を外出しして不要にする
やさしく言うと(初級
アニメーション『ロードバランサの振り分け』を開く
利用者複数リクエストロードバランサ空いている台へ振り分けたくさんのお願いサーバ1稼働中サーバ2稼働中サーバ3ダウン送らない死活監視(ヘルスチェック)で、生きている台にだけ配る
  1. ブラウザからのお願いが、まず入口に届く
  2. WAF があやしいリクエストでないか確認する(だめなら弾く)
  3. ロードバランサ が、いま空いているサーバを選んで渡す
  4. もしサーバが1台落ちていたら、そのサーバには回さない(生きている台に振る)

賢い振り分けと運用

  • L4 vs L7 — L4は速く単純、L7は中身を見て柔軟(パスやホストで振り分け)。中身を見て中継するL7のLBは、実質リバースプロキシの一形態(SSL終端やキャッシュも同じ位置で担える)
  • スティッキーセッション — 同じ利用者を同じ台へ固定。状態を持つ設計では必要だが、偏りの原因にも
  • 段階リリース — 一部だけ新版に流す(カナリア)、切り替える(ブルーグリーン)
  • DDoS緩和 — 大量アクセス攻撃を入口で吸収・遮断する前線でもある
この部分をもっと深く(上級
  • Anycast — 同じIPを各地に広告し、最寄りの入口へ導く(DNSに頼らない広域分散)
  • 多段構成 — L4(広く速く)→ L7(賢く)の2段
  • オートスケール連携 — バックエンドの増減にヘルスチェックが追随
  • 前線の防御 — DDoS吸収、レート制限、WAFルール(アプリ層攻撃の遮断)
やさしく言うと(初級

もしサーバが1台きりだったら——混雑すると全員が遅くなり、その1台が落ちたら全滅します。

入口があると、サーバを何台も並べて分担できます。混んできたら台数を増やし、落ちた台は外す。「1台に頼らない」ための仕組みです。

⚠️ うまくいかないとき

  • ヘルスチェックの誤り — 生きている台を落ちていると誤判定して外す(設定が厳しすぎ)
  • セッションの偏り — スティッキーで特定の台に集中
  • WAFの誤検知/回避 — 正当な通信を弾く、または巧妙な攻撃をすり抜けられる
この部分をもっと深く(上級
  • サンダリングハード — 再起動直後などに全員が同じ台へ集中
  • フラッピング — ヘルスチェックが上下し、台が出たり入ったり
  • スティッキーの偏り — 特定の台に固定利用者が集中
  • TLS終端の負荷 — 暗号処理が入口に集中(ハード支援・スケールで対処)
やさしく言うと(初級
  • 503(混んでいます) — 全部のサーバが手一杯。台数を増やして対応
  • 正当なお願いまで弾く — WAFの設定が厳しすぎて誤って遮断(誤検知)
  • 偏り — 特定のサーバにばかり振られてしまう(振り分け方の調整が要る)

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. L7(アプリケーション層)のロードバランサだからできることは?

2. ロードバランサが、死んでいるサーバへリクエストを送らないために行うのは?

3. 入口でまとめて行う「SSL終端」とは何をすること?

4. 分散アルゴリズムの「最少接続」の説明として正しいのはどれ?

5. WAFが担う役目はどれ?

6. 「一部だけ新版に流して様子を見る」段階リリースの呼び方はどれ?

7. クライアントとサーバの間に立ち、SSL終端・振り分け・キャッシュを担う中継役を何と呼ぶ?

8. 新旧2系統を用意しておき、まるごと切り替える段階リリースの手法を何と呼ぶ?