NestJS ch9-3 / container scale

컨테이너 수평 확장은 이미지, Replica, Service, Health가 한 흐름입니다

Deployment로 같은 앱 Pod를 늘리고, Service와 로드 밸런서가 안정적인 접근점을 제공합니다. 오토스케일은 측정 가능한 지표가 있어야 동작합니다.

Image

Docker 이미지

멀티 스테이지 빌드로 dist와 의존성을 담아 같은 실행 단위를 만듭니다.

->
Deploy

Deployment replicas

replicas: 3처럼 같은 NestJS Pod를 여러 개 유지합니다.

->
Service

Service / LB

Pod IP 변화와 무관하게 하나의 접근점으로 트래픽을 분산합니다.

->
Health

Readiness

준비되지 않은 Pod는 엔드포인트에서 빼고 새 요청을 받지 않게 합니다.

운영 설정이 빠지면 생기는 문제

실패 원인과 보완
resourcesCPU와 메모리 request/limit이 없으면 스케줄링과 HPA 판단이 흐립니다.최소/최대 자원 명시
readiness앱은 떴지만 DB 연결이 안 된 Pod가 요청을 받을 수 있습니다.의존성 준비 상태 확인
poolreplica를 늘릴수록 DB connection 총량도 같이 늘어납니다.pool 크기와 DB 한계 재계산
metricCPU만으로는 queue lag나 외부 API 지연을 설명하지 못합니다.RPS, p95, lag 함께 사용