Savings Plans 최적 커밋 금액 증명
AWS Savings Plans의 최적 시간당 커밋 금액을 수학적으로 도출한다. fractional knapsack과 convex optimization을 활용한 증명이다.
핵심 개념
기호 정의
| 기호 | 의미 |
|---|---|
| 인스턴스 i의 On-Demand 시간당 가격 | |
| 인스턴스 i의 Savings Plan 시간당 가격 | |
| 시간 t에 인스턴스 i의 사용량 (대수) | |
| SP 시간당 커밋 금액 (결정 변수) | |
| 할인율 | |
| 커밋 1달러당 절감 효율 |
할인율과 절감 효율의 정의:
정렬 순서의 정당성
명제: 내림차순 정렬은 내림차순 정렬과 동치이다.
증명:
는 에서 순증가 함수이므로:
의미: 가 높은 항목에 커밋 1달러를 투자하면 더 많이 절감한다. 내림차순 커버가 최적이며, 이는 fractional knapsack의 탐욕 해와 동일하다.
비교·분석
절감 함수
시간 에서 SP 적용 가능한 항목을 내림차순으로 정렬한다:
각 항목의 커버 비용 및 누적합:
구간 에서:
성질: 구간별 선형(piecewise linear), 오목(concave), 단조증가, 상한 존재.
비용 함수
여기서 , .
검산 (A: 10대 t4g.medium, B: 5대 c7g.large):
| 직접 계산 | ||||
|---|---|---|---|---|
| 0 | 0 | 0 | 0.824 | 0.824 ✓ |
| 0.27 | 0.146 | 0 | 0.678 | 0.678 ✓ |
| 0.56 | 0.264 | 0 | 0.560 | 0.560 ✓ |
| 0.80 | 0.264 | 0.24 | 0.800 | 0.800 ✓ |
주의: . 이 수식은 을 이중 계산한다. 의 정의에 이미 SP 비용이 내포되어 있다.
전체 비용과 최적
- : concave의 부정 → convex
- : convex
- 합: convex (convex 함수의 합은 convex)
는 convex piecewise linear 함수이며 전역 최솟값이 존재한다.
최적 조건
기울기가 0이 되는 점에서:
해석: 커밋을 1달러 올렸을 때 발생하는 낭비 시간 수(한계 비용)와 한계 절감 총합(한계 이익)이 같아지는 점이다.
는 piecewise linear이므로 최솟값은 반드시 breakpoint에서 발생한다:
실무 적용
알고리즘
- 모든 시간 의 breakpoint 를 수집
- 각 breakpoint 에서 계산
- 이 최소인 선택
복잡도: ( = breakpoints 수, = 인스턴스 타입 수)
실측 검증
프로덕션 계정 (314시간, 38개 인스턴스 타입):
검증:
- 일 때 ✓
- 근처에서 비용 최소 ✓
- 에서 비용 증가 (낭비 발생) ✓