NestJS ch9-3 / overview

트래픽을 여러 인스턴스로 나누려면 네 가지 축이 먼저 보입니다

요청 분산만 그리면 부족합니다. 인스턴스 풀, 헬스 체크, 상태 분리, 스케일 기준이 함께 맞아야 안정적으로 늘어납니다.

Client

요청 유입

트래픽은 한 지점으로 몰리고 로드 밸런서가 첫 판단자가 됩니다.

->
LB

분산 정책

round robin, least connection, IP hash 중 서비스 특성에 맞게 보냅니다.

->
Pool

Nest 인스턴스

여러 프로세스나 컨테이너가 같은 API를 제공하며 하나가 빠져도 계속 응답해야 합니다.

->
State

공유 상태

세션, 캐시, 업로드 파일, rate limit 상태는 외부 저장소로 분리합니다.

확장 판단 기준

늘리기 전에 확인
Health준비된 인스턴스만 받기readiness와 liveness를 나누어 장애 전파를 줄입니다.
Pool하위 자원 한계 보기DB connection과 외부 API quota가 먼저 막힐 수 있습니다.
Metric오토스케일 신호 고르기CPU만이 아니라 RPS, latency, queue lag를 함께 봅니다.
Failover한 대 제거 실험인스턴스 종료에도 세션과 작업이 안전한지 확인합니다.