Predictive Scaling
이 기능은 선택 사항이며, Autopilot의 기본 동작이 아닙니다. Predictive Scaling은 켜지 않는 한 꺼져 있습니다(CRD Mode에서 forecastHorizon: 0). 기본 상태의 Autopilot은 빠르게 반응하는 방식입니다. 향후 수요를 예측하는 대신 워크로드의 실제 측정된 성능을 기준으로, 보통 10초 안팎에 스케일링을 결정합니다. Predictive Scaling은 아래 사용 시점에 해당하는 워크로드에만 켜세요.
캠페인 오픈이나 업무 시간 피크처럼 미리 아는 일정이 있는 경우에는 Autopilot Scheduler를 쓰는 편이 낫습니다. 일정 기반 가드레일이 예측보다 결과가 분명하고, 학습 이력도 필요 없습니다.
Predictive Scaling은 시계열 포캐스팅으로 향후 부하를 가늠해, 트래픽이 몰리기 전에 워크로드를 스케일링합니다. 이를 통해 트래픽이 급증할 때 발생하는 지연 시간 문제를 방지합니다.
동작 방식
Predictive Scaling을 사용하지 않는 경우 (Reactive):
- 트래픽이 급증합니다
- 메트릭이 임계값을 넘습니다
- Autopilot이 scale-up합니다
- 새 Pod가 기동합니다(30~60초)
- 결과: Pod 기동 중 짧은 성능 저하가 발생합니다
Predictive Scaling을 사용하는 경우 (Proactive):
- Autopilot이 부하 증가를 포캐스팅합니다
- 트래픽이 도착하기 전에 scale-up합니다
- 트래픽이 유입될 때 Pod가 이미 준비되어 있습니다
- 결과: 성능 저하가 없습니다
Predictive Scaling 활성화
Autopilot 설정 모달에서:
- Objective 섹션에서 "Predictive Scaling"을 찾습니다
- 스위치를 ON으로 전환합니다
- 설정을 저장합니다
요구 사항:
- 정확한 포캐스팅을 위해 7일 이상의 과거 메트릭이 필요합니다
- "Optimize for Performance"와 "Optimize for Cost" 전략 모두와 함께 사용할 수 있습니다
사용 시점
Predictive Scaling을 활성화해야 하는 경우:
패턴이 일정한 워크로드:
- 이커머스 사이트(일 단위 트래픽 사이클)
- 비즈니스 애플리케이션(평일 급증, 주말 감소)
- 콘텐츠 플랫폼(일정한 사용 패턴)
- 부하 패턴이 반복되는 API
다음이 필요한 경우:
- 트래픽 증가 시에도 지연 시간이 없어야 하는 경우
- 순간적인 트래픽 급증(flash spike)에 대한 대비
- 미리 용량을 확보하는 관리
사용하지 않아야 하는 경우:
트래픽이 불규칙한 워크로드:
- 트래픽 이력이 없는 신규 애플리케이션
- 스파이크를 전혀 가늠할 수 없는 서비스
- 트래픽이 적은 서비스(데이터 부족)
- 부하가 항상 일정해 포캐스팅할 대상이 없는 서비스
예시: 이커머스 사이트
트래픽 패턴: 매일 오전 9시에 100 → 1,000 요청/분으로 급증
Predictive Scaling OFF:
08:59 AM: 2 replicas, 100 req/min
09:00 AM: Traffic jumps to 1,000 req/min
09:01 AM: CPU spikes, scaling triggered
09:02 AM: New pods starting...
09:03 AM: 8 replicas ready, handling load결과: 3분간 응답이 느려집니다
Predictive Scaling ON:
08:55 AM: 2 replicas, forecast predicts spike
08:56 AM: Proactive scale-up begins
08:59 AM: 8 replicas ready
09:00 AM: Traffic jumps to 1,000 req/min결과: 성능 저하 없이 용량이 미리 준비됩니다
포캐스팅 대상
Autopilot은 설정된 Scaling Metrics를 기준으로 포캐스팅합니다:
- Network In: 수신 트래픽 양을 포캐스팅합니다
- Requests: 요청 비율(rate)을 포캐스팅합니다
포캐스팅은 보통 5~15분 앞을 내다보며, 그에 맞춰 스케일링합니다.
성능 기대치
| 지표 | 예상 동작 |
|---|---|
| Learning Period | 정확한 포캐스팅을 위해 7~14일이 필요합니다 |
| Forecast Accuracy | 학습 기간 이후 80~90%입니다 |
| Scale-Up Lead Time | 트래픽 급증 2~5분 전 |
| Latency Impact | 급증으로 인한 지연 시간을 제거합니다 |
모니터링
활성화 후 Autopilot Logs를 확인하세요:
- 확인 사항: 트래픽 증가 전에 스케일링이 미리 이루어졌는지 보여주는 로그
- ML Model Status: 학습 기간이 끝나면 "Active"로 표시되어야 합니다
- Forecasted Value: 로그에 포캐스팅된 부하 값이 포함됩니다
문제 해결
포캐스팅이 정확하지 않나요?
Autopilot이 엉뚱한 시점에 스케일링하거나 스파이크를 놓칩니다
원인:
- 과거 데이터 부족(7일 미만)
- 트래픽 패턴이 최근에 바뀜
- 트래픽이 매우 불규칙함
해결: 재학습까지 14일을 기다리거나, 트래픽이 너무 무작위적이라면 비활성화하세요
여전히 지연 시간 급증이 발생하나요?
Predictive Scaling을 활성화했는데도 지연이 발생합니다
원인:
- 포캐스팅 범위(horizon)가 너무 짧음
- 현재 레플리카가 이미 최대치임
- 트래픽 증가폭이 과거 패턴보다 큼
해결:
- Max Replicas를 늘리세요
- 트래픽이 과거 기준선을 크게 초과하는지 확인하세요
- Autopilot 로그에서 포캐스팅 값과 실제 부하를 비교하세요
빠른 결정 가이드
Predictive Scaling을 활성화해야 할까요?
✅ 예, 다음이라면 활성화하세요:
- 트래픽에 일간/주간 패턴이 있는 경우
- 7일 이상의 메트릭 이력이 있는 경우
- 트래픽 급증 시 지연 시간을 허용할 수 없는 경우
- 사용자가 아침/피크 시간 성능 저하에 불만을 제기하는 경우
❌ 아니오, 다음이라면 비활성화 상태를 유지하세요:
- 트래픽 이력이 없는 신규 애플리케이션인 경우
- 트래픽이 완전히 무작위적이고 가늠할 수 없는 경우
- 서비스 부하가 항상 일정한 경우
- Reactive 스케일링만으로 충분히 빠른 경우
다음 단계
- Cost vs Performance: 포캐스팅 기능과 함께 사용할 전략을 선택하세요
- Autopilot Scheduler: 예정된 이벤트에 대비한 스케줄 기반 스케일링을 추가하세요
- Core Configuration: 고급 포캐스팅 파라미터