로드밸런싱 (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, IPVSAWS NLB (Network Load Balancer), GCP TCP LB
L7 로드밸런서Nginx, Envoy, TraefikAWS ALB (Application Load Balancer), GCP HTTP LB

4. 실제 적용 예시

대규모 트래픽 분산 처리 구조

  1. 대규모 E-Commerce 사이트에 접속자가 폭주합니다.
  2. 최상단에 위치한 **AWS NLB (L4)**가 초당 수십만 건의 패킷을 받아 내부의 여러 Nginx 인스턴스로 빠르게 분산시킵니다.
  3. 트래픽을 전달받은 **Nginx (L7)**는 HTTP 헤더를 분석하여 마이크로서비스로 요청을 쪼갭니다 (예: 주문 서비스, 배송 서비스).
  4. 특정 마이크로서비스 인스턴스가 다운되더라도 헬스체크를 통해 감지하고 라우팅 대상에서 제외하여 01_무중단_배포 및 무중단 운영을 지원합니다.