피드로 돌아가기
Dev.toInfrastructure
원문 읽기
L4/L7 계층 분리 및 Nginx 알고리즘 기반 트래픽 최적화 전략
Learning Load Balancer Algorithms With Nginx
AI 요약
Context
단일 서버의 물리적 한계로 인한 서비스 가용성 저하 및 트래픽 확장성 부족 문제 발생. 단순 분산을 넘어 애플리케이션 특성에 맞는 정밀한 트래픽 제어 및 Backend 서버 자원 효율화 필요성 증대.
Technical Solution
- L4(Transport Layer)의 IP/Port 기반 라우팅을 통한 전송 속도 극대화 및 L7(Application Layer)의 HTTP 헤더/쿠키 분석을 통한 유연한 콘텐츠 라우팅 설계
- Stateless 방식의 Round Robin 및 IP Hash를 적용하여 LB의 오버헤드 최소화 및 단순 트래픽 분산 구현
- Stateful 방식의 Least Connections 및 Power of Two 알고리즘을 통한 Backend 서버 실시간 부하 상태 기반의 최적 경로 결정
- URL Hash 및 Sticky Cookie 설계를 통해 특정 요청의 Backend 고정으로 인한 Cache Locality 확보 및 세션 유지 성능 향상
- Passive Health Check의 한계를 극복하기 위해 Active Health Check를 도입하여 'Slow-but-alive' 상태의 서버를 사전에 격리하는 가용성 전략 채택
실천 포인트
1. 단순 분산이 목적이라면 Stateless(Round Robin)를, 서버 사양이 상이하다면 Weighted Round Robin 검토
2. Cache Hit Rate 향상이 필요하다면 URL Hash 기반의 라우팅 설계 적용
3. Client IP 중복 가능성이 높은 환경에서는 IP Hash 대신 Sticky Cookie를 통한 세션 고정 방식 채택
4. 실시간 응답 속도 최적화가 필수적이라면 Least Time 알고리즘 지원 여부 확인