load balancer는 들어오는 트래픽을 백엔드 서버 풀에 분산하여 어느 하나도 압도되지 않게 하고, 서버가 죽어도 시스템이 가용 상태를 유지하게 한다. 핵심 구분은 그것이 작동하는 계층이다:
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, header, cookie로 라우팅할 수 있다 — path 기반 라우팅( vs ), sticky session, TLS termination, 압축, request별 retry를 가능케 한다. 그 대가는 request당 더 많은 처리다.
