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):

직접 계산
0000.8240.824 ✓
0.270.14600.6780.678 ✓
0.560.26400.5600.560 ✓
0.800.2640.240.8000.800 ✓

주의: . 이 수식은 을 이중 계산한다. 의 정의에 이미 SP 비용이 내포되어 있다.

전체 비용과 최적

  • : concave의 부정 → convex
  • : convex
  • 합: convex (convex 함수의 합은 convex)

convex piecewise linear 함수이며 전역 최솟값이 존재한다.

최적 조건

기울기가 0이 되는 점에서:

해석: 커밋을 1달러 올렸을 때 발생하는 낭비 시간 수(한계 비용)와 한계 절감 총합(한계 이익)이 같아지는 점이다.

는 piecewise linear이므로 최솟값은 반드시 breakpoint에서 발생한다:

실무 적용

알고리즘

  1. 모든 시간 의 breakpoint 를 수집
  2. 각 breakpoint 에서 계산
  3. 이 최소인 선택

복잡도: ( = breakpoints 수, = 인스턴스 타입 수)

실측 검증

프로덕션 계정 (314시간, 38개 인스턴스 타입):

검증:

  • 일 때
  • 근처에서 비용 최소 ✓
  • 에서 비용 증가 (낭비 발생) ✓

참고 자료