| 구분 | 수직 확장(Scale-up) | 수평 확장(Scale-out) |
|---|---|---|
| 방식 | 인스턴스 사양 향상 | 인스턴스 대수 증가 |
| 한계 | 물리적 상한 존재 | 이론상 무제한 |
| 가용성 | 단일 장애점 | 분산되어 내결함성 확보 |
| 요구사항 | 없음 | 무상태(Stateless) |
| 중단 | 재시작 필요 | 무중단 가능 |
수평 확장의 전제 조건이다. 서버가 요청 간 상태를 메모리에 들고 있으면, 다음 요청이 다른 서버로 가는 순간 상태가 사라진다.
AI 의료 이미지 분석 프로젝트에서 AI 서버를 FastAPI로 만들었고, 키오스크에서 AI분석이 가능하도록 하였다.
그런데 키오스크를 한 대가 아닌 여러 대를 동시에 놓고 사용할 수 있는 환경을 만들려고 보니, 동시에 가능하도록 하는 문제가 발생했다.
AI 추론은 CPU와 메모리를 계속 쓰면서 최소 수 초 단위로 병목이 발생할 수 있다.
그리고 Grad-CAM 히트맵은 이미지 분류 forward 이후 나온 가중치를 받아 backward 역전파 해서 히트맵을 얻을 수 있게 하였는데, 이 사이에서 동시 요청이 들어오면 결과가 섞이며 오염되는 문제가 발생할 수 있었다.
sequenceDiagram
participant A as 요청 1
participant M as 모델 · 공유 상태
participant B as 요청 2
A->>M: forward 실행
M-->>A: 활성화 값 저장
B->>M: forward 실행
M-->>B: 활성화 값 덮어씀
A->>M: backward 실행
Note over A: 요청 2의 히트맵이 나온다