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

概要 — まず全体をつかむ

中級ではL4/L7・ヘルスチェック・WAFを見ました。上級では、振り分けの内部と、経路の工夫へ。

詳細 — 1段階ずつ追う

L4とL7、それぞれの内部

  • L4 — IP/ポートで転送。NATモードや、戻りを直接返すDSR(Direct Server Return) で高速化
  • L7 — HTTPを終端して解釈。パス/ヘッダ/Cookieでルーティング、リトライ、レート制限、圧縮、mTLS
  • TLS終端 vs パススルー — 入口で解くか、内部まで暗号のまま運ぶか(セキュリティと可視性のトレードオフ)
やさしく言うと(中級

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

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

登場人物メモ:

  • ※1 ヘルスチェック — 各サーバへ定期的に「生きてる?」を確認し、死んだ台を外す
  • ※2 SSL終端 — 暗号化(TLS)の解除を入口でまとめて行い、内側は平文で楽をする

振り分けと死活の実際

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

スケールと可用性の工夫

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

⚠️ 落とし穴

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

理解度チェック

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

1. L4とL7ロードバランサの違いとして正しいのは?

2. ヘルスチェックが「生きている台を落ちていると誤判定して外したり戻したり」を繰り返す現象は?

3. サーバを分散対象から外すとき、進行中の接続を切らずに待ってから外す仕組みはどれ?

4. ヘルスチェックの「アクティブ」と「パッシブ」の違いとして正しいのはどれ?

5. DNSに頼らず、同じIPを各地で広告して最寄りの入口へ導く広域分散の手法はどれ?

6. 入口でTLSを解く「TLS終端」と、暗号のまま奥へ運ぶ「パススルー」の関係として正しいのはどれ?

7. 同じ利用者を同じ台へ寄せつつ偏りを抑える、リクエスト分散アルゴリズムを何という?

8. 再起動直後などに、待っていた全接続が同時に同じ台へ殺到する現象を何と呼ぶ?