NestJS ch9-3 / scale readiness

인스턴스를 늘리기 전 네 개의 게이트를 통과해야 합니다

수평 확장은 병목을 없애기보다 다른 곳으로 옮길 수 있습니다. 상태, 헬스 체크, 연결 풀, 오토스케일 기준을 먼저 검증합니다.

1

Stateless 게이트

  • 사용자 세션을 인스턴스 메모리에 두지 않습니다.
  • 업로드 파일은 object storage처럼 공유 가능한 곳에 둡니다.
  • rate limit 카운터는 Redis 등 외부 저장소로 분리합니다.
2

Health 게이트

  • 프로세스 생존과 요청 준비 상태를 분리합니다.
  • DB, cache, queue 의존성 실패 시 새 요청을 차단합니다.
  • 너무 무거운 헬스 체크는 별도 주기로 제한합니다.
3

Pool 게이트

  • 인스턴스 수 x DB pool 크기가 DB 한계를 넘지 않는지 계산합니다.
  • 외부 API quota와 connection timeout을 같이 확인합니다.
  • 큐 소비자 수 증가가 중복 처리로 이어지지 않게 합니다.
4

Autoscale 게이트

  • CPU, RPS, latency, queue lag 중 실제 병목을 설명하는 지표를 고릅니다.
  • scale out과 scale in의 냉각 시간을 둡니다.
  • 배포 직후 지표 급등이 자동 확장을 오작동시키지 않게 합니다.
통과 기준인스턴스 하나를 내려도 요청, 세션, 작업 큐, DB 연결이 안전하면 수평 확장의 기본 조건을 갖춘 것입니다.