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

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

1. Stateless

  • 세션은 인스턴스 메모리에 두지 않습니다.
  • 업로드 파일은 공유 가능한 저장소로 보냅니다.
  • rate limit 카운터는 Redis 등으로 분리합니다.

2. Health

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

3. Pool

  • 인스턴스 수 x DB pool 크기를 다시 계산합니다.
  • 외부 API quota와 timeout을 확인합니다.
  • 큐 소비자 중복 처리를 막습니다.

4. Autoscale

  • CPU, RPS, latency, queue lag 중 병목을 설명하는 지표를 고릅니다.
  • scale out/in 냉각 시간을 둡니다.
  • 배포 직후 지표 급등을 따로 봅니다.
통과 기준: 인스턴스 하나를 내려도 요청, 세션, 작업 큐, DB 연결이 안전해야 한다.