NestJS ch9-3 / load balancer

분산 알고리즘은 요청 특성과 세션 상태에 맞춰 고릅니다

로드 밸런서는 트래픽을 나누는 장치이면서, 장애 인스턴스를 제외하고 연결 유지 요구를 조정하는 운영 지점입니다.

알고리즘 선택 지도

정책별 적합 조건
Round Robin요청 비용이 비슷하고 인스턴스 성능도 비슷할 때 가장 단순합니다.기본값으로 시작하기 좋음
Weighted인스턴스 성능이나 배포 단계가 달라 일부에 더 많은 요청을 보냅니다.canary, 고사양 노드에 적합
Least Conn요청 시간이 들쭉날쭉하고 긴 연결이 섞일 때 현재 연결 수를 봅니다.WebSocket, 긴 API에 유리
IP Hash같은 클라이언트를 같은 인스턴스로 보내 세션 지속성을 만듭니다.임시방편이며 상태 외부화 권장
Health

장애 제외

  • 응답 불가 인스턴스는 분산 대상에서 제거
  • readiness 실패는 새 요청 차단
  • liveness 실패는 재시작 판단
TLS

앞단 처리

  • SSL/TLS 오프로딩으로 앱 CPU 부담 완화
  • HTTP 라우팅은 ALB, TCP는 NLB 성격 확인
  • 헤더와 원 IP 전달 설정 점검
State

세션 전략

  • sticky session은 연결 고정이 필요할 때만 사용
  • 로그인 세션은 Redis 같은 외부 저장소 우선
  • 무상태 API가 장기적으로 운영이 쉽습니다