load balancer は、受信トラフィックをバックエンドサーバーのプールに分散させ、どの 1 台も圧倒されず、サーバーが 1 台死んでもシステムが利用可能であり続けるようにします。核心的な区別は、それが動作する層です:
L4 (Transport) L7 (Application)
routes by IP + port only reads HTTP: path, headers, cookies, host
┌──────────────┐ ┌──────────────┐
│ balancer │──▶ server A │ balancer │ /api/* ──▶ API pool
│ (TCP/UDP) │──▶ server B │ (HTTP-aware) │ /img/* ──▶ static pool
└──────────────┘──▶ server C └──────────────┘ cookie=X ──▶ sticky backend
fast, opaque, protocol-agnostic smart routing, TLS termination, can inspect
は Transport 層で動作します:パケットの中を見ずに、IP とポートだけに基づいて TCP/UDP コネクションを転送します。速くて安く、あらゆるプロトコルで動きますが、内容ベースの判断はできません。 は Application 層で動作します:コネクションを終端し、HTTP を解析し、URL path・host・ヘッダ・cookie でルーティングできます — path ベースのルーティング( 対 )、sticky session、TLS termination、圧縮、リクエストごとの再試行を可能にします。代償はリクエストごとの処理が増えることです。
