Load Balancing

정상 후보 풀에서 어떤 신호로 backend를 고를지 결정한다

알고리즘은 전체 서버 중 아무 곳이나 고르지 않는다. 먼저 health, readiness, drain 상태로 후보를 걸러낸 뒤, 순서·가중치·연결 수·해시 키 같은 입력 신호로 하나를 선택한다.

1 REQUEST 클라이언트 요청/연결

L4는 연결 수명, L7은 요청 단위와 애플리케이션 정보를 함께 본다.

2 BALANCER 로드 밸런서

설정된 정책에 따라 후보 서버 목록과 관측 지표를 읽는다.

3 FILTER health / readiness / drain

실패, 배포 중 drain, warm-up 상태를 먼저 제외하거나 낮은 가중치로 둔다.

4 CANDIDATE POOL
api-a weight 3 · active 42 · 28ms · healthy
api-b weight 1 · active 8 · 110ms · warm-up
api-c state drain · 새 요청 후보에서 제외
5 SELECT 알고리즘으로 선택

선택 기준이 낡았거나 관측이 늦으면 균형보다 장애 전파가 먼저 커질 수 있다.

알고리즘은 믿을 수 있는 선택 신호부터 고른다

selection signal

순서와 가중치만 신뢰

요청 비용이 거의 같으면 Round Robin 또는 Weighted RR이 단순하다.

현재 연결 수를 신뢰

긴 연결이 많으면 Least Connections가 RR보다 현실에 가깝다.

키 친화성이 중요

세션이나 캐시 locality가 필요하면 Hash/Sticky를 검토한다.

지연·오류 지표를 신뢰

관측 품질이 좋으면 P2C, LRT, outlier 정책으로 장애 전파를 줄인다.

계열
입력 신호
잘 맞는 상황
주의점
Round RobinWeighted RR 포함
순서, 수동 weight 요청 비용과 서버 성능을 직접 관측하지 않는다.
동일 스펙 stateless 요청 시간이 짧고 서버 차이가 작을 때 단순하다.
weight 부정확성 긴 요청, 장기 연결, 낡은 weight에는 둔감하다.
Least ConnectionsWeighted LC 포함
active conn/request 가중치와 함께 쓰면 서버 용량 차이를 일부 반영한다.
긴 요청, gRPC, WebSocket 연결 지속 시간이 고르지 않을 때 RR보다 낫다.
부하의 대리 지표 낮은 연결 수가 낮은 CPU나 짧은 큐를 보장하지 않는다.
Hash / StickyIP, cookie, generic hash
클라이언트 키 consistent hashing은 서버 증감 시 재배치를 줄인다.
세션 친화성, 캐시 locality 같은 키를 같은 서버로 보낼 가능성을 높인다.
NAT, 모바일 IP, 편향 세션은 가능한 외부 저장소로 빼는 편이 안전하다.
P2C / LRT / Outlier관측 기반 선택
무작위 후보 2개, latency, error CPU·오류율은 보통 외부 관측이나 mesh 정책과 결합된다.
대규모 pool, 장애 격리 좋은 지표가 있으면 과부하 서버로 쏠림을 줄인다.
지표 지연과 잡음 늦은 지표로 라우팅하면 오히려 진동이 생길 수 있다.
Round Robin / Weighted RR
입력순서와 수동 weight. 요청 비용은 직접 보지 않는다.
적합동일 스펙 stateless 서버와 짧은 요청.
주의긴 요청, 장기 연결, 낡은 weight에는 둔감하다.
Least Connections / Weighted LC
입력active connection/request 수와 서버 weight.
적합gRPC, WebSocket, 긴 요청처럼 지속 시간이 다른 트래픽.
주의연결 수는 CPU, queue, latency를 보장하지 않는 대리 지표다.
Hash / Sticky
입력IP, cookie, generic key, consistent hash ring.
적합세션 친화성이나 캐시 locality가 필요할 때.
주의NAT, 모바일 IP 변경, 서버 증감 시 편향과 재배치가 생긴다.
P2C / Least Response Time / Outlier
입력무작위 후보 2개, latency, error 같은 관측 지표.
적합대규모 pool과 장애 격리. 서비스 mesh 정책과 자주 결합된다.
주의지표가 늦거나 noisy하면 라우팅 진동이 생길 수 있다.