Load Balancing & Traffic Management
서버 클러스터 전체에 워크로드를 효율적으로 분산하고, 트래픽의 흐름을 지능적으로 제어하여 시스템의 성능과 가용성을 보장하는 물리 메커니즘을 다루는 학습 노드입니다.
sys.entry
M
Me
hyunyoun's Blog
posts6 min read
1. Overview
로드 밸런싱 및 트래픽 관리(Load Balancing & Traffic Management, LBT)는 한대로는 부족한 하드웨어의 역량을 모아 거대한 '하나의 가상 서버'처럼 작동하게 만드는 분산 시스템의 지휘소입니다.
학습자는 단순히 패킷을 넘겨주는 수준을 넘어, 서버의 상태를 실시간으로 감시(Health Check)하고 가장 여유로운 장비를 찾아내어 일을 시키는 부하 분산 알고리즘의 수리적 사상을 배웁니다. 특히, 네트워크 전송 단계(IP)에서 작동하는 L4 로드 밸런싱과, 비즈니스 메시지(HTTP)를 분석하여 경로를 트는 L7 로드 밸런싱의 물리적 차이를 익힙니다. 이를 통해 수백만 명의 사용자가 동시 접속해도 어느 서버 하나 '과열'되지 않고 일정한 속도를 유지하는 하이엔드 트래픽 정착 인프라 역량을 확보합니다.
2. Scope & Boundaries
In-Scope
- Load Balancing Algorithms: Round-robin, Least Connection, Weighted 등 수리 모델
- L4 vs L7 Switching: 패킷 전송 계층과 애플리케이션 계층에서의 물리적 처리 차이
- Health Check Mechanics: 서버의 생존 여부와 처리 가능 수치를 물리적으로 감지하는 기법
- Session Persistence: 분산 서버 환경에서 사용자 상태를 물리적으로 유지하는 기법(Sticky Session)
- Advanced Traffic Routing: Blue-green, Canary, A/B Test를 위한 점진적 트래픽 전이
Out-of-Scope
- 하드웨어 스위치(F5 등)의 세부 장비 조립 및 물리 케이블 포트 상세 (08-01-XX 영역으로 위임)
- 애플리케이션 내부의 코드 최적화 상세 (09-02-XX 영역에서 분담)
Boundaries
- LBT vs. Vertical Scaling: LBT는 '여러 대의 협업'에 집중하고, 수직 확장(07-03-01)은 '한 대의 고도화'에 집중하여 구분합니다.
3. Counterexample
- 단순히 "Nginx 설정하기"라 설명하는 것은 LBT 학습이 아닙니다. 왜 라운드 로빈 알고리즘이 서버마다 하드웨어 성능이 다른 '이기종 클러스터' 환경에서 물리적 불균형을 초래하는지 수리적으로 증명할 수 있어야 하며, L7 로드 밸런서가 메시지 내용을 열어보는 행위()가 전체 응답 지연()에 미치는 물리적 오버헤드를 산출할 수 없다면 LBT의 트래이드-오프를 이해하지 못한 것입니다.
4. Prerequisites
- Network Layers & Protocols (Basic): OSI 7 Layer 및 TCP/IP 이해가 필수입니다. (08-01-02 기반 역량)
- Vertical vs Horizontal Scaling (Recommended): 수평 확장의 목적 이해가 권장됩니다. (07-03-01 VHS)
5. Learning Map
- Traffic Gateway: 밀려오는 패킷 홍수를 가로막고 분배할 수 있는 물리적 관문을 세웁니다.
- Health Monitoring: 일을 시키기 전, 서버가 숨을 쉬고 있는지 물리적 안부를 묻습니다.
- Dispatch Logic: 상황에 따라 어떤 서버가 가장 효율적으로 처리할지 수리적 판단을 내립니다.
- Intelligent Routing: 단순히 보냄을 넘어, 사용자의 성격과 중요도에 따라 길을 안내하는 지능형 물리를 완성합니다.
6. Learning Topics
Basic
Core: 로드 밸런싱의 원리와 L4/L7 구분 (LB Foundations)
- Why to Learn: 트래픽의 종류와 요구사항에 따라 가장 적합한 계층의 분산 장치를 선택하기 위해서입니다.
- What to Learn:
- Virtual IP (VIP): 클라이언트가 바라보는 단일 물리 접점
- L4 Balancing: 포트와 IP 기반의 전송 계층 분산 (TCP/UDP)
- L7 Balancing: URL, 쿠키, 헤더 기반의 애플리케이션 계층 분산 (HTTP)
- How to Learn:
- L4 레벨에서 패킷의 도착지가 바뀌는 물리적 과정( 등)을 도식화 실습
- HTTPS 통신 시 L7 로드 밸런서가 '인증서 가로채기(SSL Offloading)'를 하는 물리 구조 분석
- Implement: 요청을 순차적으로 다음 서버 포트로 전달하는 간단한
RoundRobinProxy
Recommended
Core: 부하 분산 알고리즘과 수리 모델 (Dispatch Algorithms)
- Why to Learn: 서버들의 리소스를 낭비 없이 극한으로 활용하기 위함입니다.
- What to Learn:
- Least Connections: 현재 연결이 가장 적은 하드웨어로 보내는 동적 분산
- Source IP Hashing: 동일한 사용자를 동일한 서버로 보내는 물리적 고정(Affinity)
- Weighted Algorithms: 하드웨어 성능 차이를 수치로 보정하는 가중치 모델
- How to Learn:
- 서버 3대의 성능이 1:2<3일>3일> 때, 100개의 요청이 수평적으로 배분되는 수리 시뮬레이션 실습
- 세션 유지가 필요한 작업에서 해싱 알고리즘이 왜 물리적으로 필수적인지 증명
- Implement: 각 노드의 현재 CPU 사용률을 보고 다음 대상을 정하는
AdaptiveLoadBalancer
Practical
Core: 헬스 체크와 자동 격리 (Availability Mechanics)
- Why to Learn: 죽은 서버로 요청을 보내 사용자 경험을 물리적으로 망치는 일을 방지하기 위해서입니다.
- What to Learn:
- Active vs Passive Discovery: 직접 물어보기와 요청 결과를 보고 판단하기
- Circuit Breaking in LB: 특정 서버의 응답 지연 시 즉시 물리 대기열에서 퇴출
- Graceful Draining: 점검을 위해 서버를 뺄 때 남은 처리를 마칠 때까지 기다리는 물리 절차
- How to Learn:
- 실제 서버 한 대를 'Down' 시키고, 로드 밸런서가 이를 감지하여 트래픽을 돌리는 데 걸리는 물리 시간 측정 실습
- 헬스 체크 주기()와 실패 임계값()이 가용성에 미치는 상관관계 산출
- Implement: 주기적으로 하위 서버들의 응답 상태를 확인하고 리스트를 갱신하는
HealthMonitor
Advanced
Core: 전역 트래픽 관리와 지능형 라우팅 (Traffic Engineering)
- Why to Learn: 지구 반대편의 유저에게도 가장 가까운 서버를 제공하여 '물리적 거리'의 제약을 넘기 위함입니다.
- What to Learn:
- GSLB (Global Server Load Balancing): DNS 기반의 대륙 간 트래픽 분산 물리학
- Rate Limiting: 시스템 보호를 위해 요청 수를 하드웨어적으로 제한하는 수리 기제
- Service Mesh Traffic Control: 마이크로서비스 간의 초미세 트래픽 제어(Istio 등)
- How to Learn:
- 유저의 IP 주소를 분석하여 가장 가까운 데이터 센터로 연결해 주는 물리적 경로 설계 실습
- 갑작스러운 트래픽 폭주 상황에서 중요도가 낮은 트래픽을 차단()하는 물리 시나리오 분석
- Implement: 특정 조건(사용자 등급, 지역)에 따라 트래픽 경로를 다르게 설정하는
TrafficGovernor
7. Terminology
8. References
Primary
- [P1] CS2023 - NC/Networking and Communication (Network virtualization and load balancing) — Core requirements.
- [P5] SFIA v9 - IT Infrastructure (Infrastructure design) — Competency context.
Secondary
- [Designing Data-Intensive Applications (DDIA)] Martin Kleppmann — Load balancing in distributed systems.
- [High Performance Web Sites] Steve Souders — Client-side load balancing.
Industry
- [Nginx: Load Balancing Reference Guide] — Industry standard software.
- [AWS: Elastic Load Balancing (ELB) Architecture] — Cloud-native implementation.
9. Final Checklist
Primary
- 'L4 로드 밸런싱'과 'L7 로드 밸런싱'의 물리적 데이터 처리 범위 차이를 설명 가능한가? (P1)
- '최소 연결(Least Connection)' 방식이 '라운드 로빈'보다 왜 하드웨어 부하 분산 측면에서 수리적으로 정교한지 기술할 수 있는 가? (P1)
Secondary
- '세션 고정(Sticky Session)'이 시스템의 '수평 확장'을 방해하는 물리적 장애 시나리오를 소통 가능한가?
- **SSL 오프로딩(SSL Offloading)**이 개별 서버의 CPU 부하를 어떻게 물리적으로 경감시키는지 입증할 수 있는 가?
Industry
- 서비스 운영 중 '서비스 점검'을 위해 특정 노드를 로드 밸런서에서 성공적으로 격리(Drain)하는 물리적 절차를 제안할 수 있는 가? (SFIA)
- 전 세계 유저를 대상으로 하는 서비스에서 'DNS 기반 로드 밸런싱(GSLB)'이 응답 시간()을 단축시키는 수리적 이득을 분석할 수 있는 가?