NestJS ch9-3 / scaling choice

수직 확장은 한 대를 키우고, 수평 확장은 대체 가능한 여러 대를 만듭니다

성능만 보면 수직 확장이 쉬워 보이지만, 장애 격리와 비용 효율까지 보면 수평 확장의 설계 조건이 핵심입니다.

Vertical
한 대를 더 크게

CPU와 메모리를 올려 처리량을 늘립니다. 구현은 단순하지만 물리 한계와 단일 장애 지점이 남습니다.

Horizontal
여러 대를 같은 역할로

인스턴스를 추가해 요청을 나눕니다. 고가용성은 좋아지지만 상태 공유와 분산 판단이 필요합니다.

NestJS에서 수평 확장이 자주 필요한 이유

Node.js 런타임 특성
CPU 코어단일 이벤트 루프만 믿으면 CPU 코어를 충분히 쓰기 어렵습니다.cluster, 컨테이너 replica로 분산
I/O 부하DB, cache, 외부 API 대기 시간이 늘면 한 프로세스 처리량이 흔들립니다.요청을 여러 인스턴스로 분산
장애 격리프로세스 하나가 죽거나 배포 중이어도 전체 서비스가 멈추지 않아야 합니다.헬스 체크와 롤링 교체 필요
결론수평 확장은 로드 밸런서 뒤에 같은 NestJS 앱을 여러 개 두는 구조이며, 성공 조건은 stateless와 헬스 체크입니다.