Capacity Planning
장애가 나고 나서 서버를 늘리는 게 아니라,
미리 예측해서 준비하는 방법에 대한 내용이다.
한 줄 정의는 이렇다.
"미래의 트래픽을 예측해서 서버 용량을 미리 준비하는 것"
준비가 안 됐을 때와 됐을 때의 차이는 명확하다.
❌ 준비 안 했을 때
트래픽 폭증 → 서버 다운 → Error Budget 소진
✅ 준비 했을 때
성장률 예측 → 미리 확장 → 장애 없음
1. 현재 용량 파악
지금 시스템이 어느 정도를 버티는지 먼저 알아야 한다.
TPS, CPU, 메모리, 응답시간이 SLO를 넘기 시작하는 지점을 측정한다.
2. 트래픽 성장 예측
과거 데이터로 성장률을 계산한다.
3개월 전: 1,000 TPS → 현재: 1,300 TPS → 월 성장률 약 10%
6개월 후 예측: 약 2,300 TPS
3. 여유분 (Headroom) 확보
예측은 항상 틀릴 수 있다.
이벤트나 마케팅으로 갑자기 폭증할 수도 있다.
그래서 예측값의 30% 정도 여유를 두고 준비한다.
시스템 용량 상태를 판단하는 기준이다.
| 신호 | 설명 |
|---|---|
| Utilization | 현재 얼마나 쓰고 있는가 |
| Saturation | 처리 못하고 대기 중인 게 있는가 |
| Errors | 오류가 발생하고 있는가 |
Utilization이 높아도 Saturation이 없으면 아직 괜찮다.
Saturation이 생기기 시작하면 용량 한계에 가까워진 신호다.
Utilization 70% 도달 → 확장 계획 시작
Utilization 85% 도달 전 → 확장 완료
월 10% 성장률 기준으로 계산하면 이렇다.
현재 60% → 1개월 후 66% → 2개월 후 73% (70% 초과)
→ 지금부터 1개월 안에 계획 수립 필요
너무 일찍 확장하면 비용 낭비고,
너무 늦으면 장애로 이어진다.
숫자로 계산해서 타이밍을 잡는 게 핵심이다.
Capacity Planning은 결국 Error Budget과 연결된다.
용량 초과로 장애가 나면 Error Budget이 소진된다.
미리 준비해두면 예방 가능한 Budget 소진을 막을 수 있다.