로드밸런싱 (Load Balancing)
개요
클라이언트의 요청(트래픽)을 여러 대의 서버로 균등하게 분산시켜, 단일 서버에 부하가 집중되는 것을 막고 전체 시스템의 성능과 가용성을 높이는 기술입니다.
1. 주요 분산 알고리즘
- Round Robin (라운드 로빈): 순차적으로 각 서버에 트래픽을 하나씩 할당합니다.
- Least Connection (최소 연결): 현재 활성화된 연결(세션) 수가 가장 적은 서버로 트래픽을 보냅니다.
- Source IP Hashing (해시 기반): 클라이언트의 IP 주소를 해싱하여 항상 동일한 서버로 요청을 라우팅(Sticky Session)합니다.
2. 네트워크 계층 관점 (OSI 7 Layer)
- L4 로드밸런싱 (전송 계층):
- 패킷의 IP 주소와 TCP/UDP 포트 정보만을 보고 라우팅합니다.
- 데이터를 열어보지 않으므로 속도가 매우 빠르고 부하가 적습니다.
- L7 로드밸런싱 (응용 계층):
- HTTP URI, 헤더, 쿠키 등 애플리케이션 계층의 데이터를 분석하여 정밀하게 라우팅합니다.
- 예:
/api/*요청은 백엔드 서버로,/images/*요청은 정적 캐시 서버로 분리.
3. 구현 도구 및 서비스
| 구분 | 오픈소스 (직접 구축) | 상용 / 클라우드 서비스 |
|---|---|---|
| L4 로드밸런서 | HAProxy, LVS, IPVS | AWS NLB (Network Load Balancer), GCP TCP LB |
| L7 로드밸런서 | Nginx, Envoy, Traefik | AWS ALB (Application Load Balancer), GCP HTTP LB |
4. 실제 적용 예시
대규모 트래픽 분산 처리 구조
- 대규모 E-Commerce 사이트에 접속자가 폭주합니다.
- 최상단에 위치한 **AWS NLB (L4)**가 초당 수십만 건의 패킷을 받아 내부의 여러 Nginx 인스턴스로 빠르게 분산시킵니다.
- 트래픽을 전달받은 **Nginx (L7)**는 HTTP 헤더를 분석하여 마이크로서비스로 요청을 쪼갭니다 (예: 주문 서비스, 배송 서비스).
- 특정 마이크로서비스 인스턴스가 다운되더라도 헬스체크를 통해 감지하고 라우팅 대상에서 제외하여 01_무중단_배포 및 무중단 운영을 지원합니다.