Reserved·Savings Plan·Spot 선택 기준: 질문 4개로 정하고, D4s 10대로 검산하기

Azure 약정 할인 비교 - Reserved Instances·Savings Plan·Spot VM

Azure 비용을 줄이라는 지시를 받으면 대부분 약정 할인부터 검토합니다. 그런데 Reserved Instance, Savings Plan, Spot 세 가지가 나란히 놓여 있고 각각 “최대 72%”, “최대 65%”, “최대 90%”라고 적혀 있으면 판단이 어렵습니다. 할인율이 큰 쪽이 답이 아니기 때문입니다.

이 글은 세 옵션의 기능 설명이 아니라 내 워크로드에 무엇을 붙일지 결정하는 순서입니다. 질문 네 개에 답하면 답이 나오도록 구성했습니다. 결론부터 말하면 대부분의 조직은 셋 중 하나가 아니라 셋을 층으로 쌓는 구조가 정답입니다.

세 옵션이 실제로 파는 것

할인율보다 무엇을 약속하는가가 본질입니다.

Reserved InstanceSavings PlanSpot
약속하는 것특정 VM 계열·리전을 1/3년간 쓰겠다시간당 $N를 1/3년간 쓰겠다아무것도 약속 안 함
3년 할인폭약 60~72%약 28~65%최대 90%
유연성낮음 (계열 고정)높음 (계열·리전 넘나듦)해당 없음
적용 범위VM 중심VM·App Service·Container Instances·FunctionsVM·AKS 노드 풀
중도 해지교환·환불 가능 (연 $50K 한도)취소 불가자유
최대 리스크안 쓰는 계열에 묶임약정액을 다 못 채움30초 뒤 퇴거

여기서 가장 중요한 줄은 할인율이 아니라 중도 해지 행입니다. Savings Plan은 취소가 안 됩니다. 3년 약정을 걸었는데 1년 뒤 워크로드가 사라지면 남은 2년치를 그대로 냅니다. Reserved Instance는 교환·환불 여지라도 있습니다. “Savings Plan이 더 유연하다”는 말은 리소스 종류에 대한 유연성이지 계약 자체의 유연성이 아닙니다. 이걸 헷갈리면 큰 금액이 묶입니다.

결정 질문 1 — 이 워크로드는 중단돼도 되는가?

가장 먼저 물어야 할 질문입니다. 답이 “예”라면 그 즉시 Spot입니다. 다른 두 옵션을 검토할 이유가 없습니다. 최대 90% 할인은 약정 할인이 따라올 수 없는 수준이고, 약정도 필요 없습니다.

중단돼도 되는 워크로드의 조건은 명확합니다.

  • 재시작하면 처음부터 다시 해도 되는가 — 배치 집계, 렌더링, 미디어 인코딩, ML 학습(체크포인트 있는 경우)
  • 완료 시각이 못 박혀 있지 않은가 — “오늘 안에”는 되고 “9시 정각까지”는 안 됨
  • 상태를 노드에 들고 있지 않은가 — 세션·로컬 디스크 의존이 없어야 함
  • 실패해도 사용자가 모르는가 — 사용자 요청을 직접 받는 경로면 탈락

Spot의 퇴거 통지는 30초입니다. 30초 안에 정리하고 나갈 수 있는 구조인지가 실질적 기준입니다. AKS라면 Spot 전용 노드 풀을 따로 만들고 taint를 걸어, 중단 가능한 워크로드만 toleration으로 올리는 방식이 안전합니다. 일반 노드 풀과 섞으면 시스템 파드까지 퇴거에 휘말립니다.

덧붙여, Spot은 가격이 아니라 용량 때문에 실패하기도 합니다. 인기 있는 VM 계열은 특정 리전에서 아예 Spot 용량이 안 나오는 시간대가 있습니다. 계열을 여러 개 허용해두는 편이 성공률이 높습니다.

결정 질문 2 — 앞으로 12개월간 확실히 켜져 있을 최소치는 얼마인가

중단이 안 되는 워크로드라면 이제 약정으로 넘어갑니다. 여기서 흔한 실수는 현재 사용량 전체를 약정하는 것입니다. 약정해야 할 것은 평균이 아니라 바닥(baseline)입니다.

지난 3개월 시간별 사용량에서 최저점을 찾으세요. 그 아래는 무슨 일이 있어도 켜져 있는 양이고, 그만큼만 약정하면 낭비가 나지 않습니다. Cost Analysis에서 다음처럼 뽑습니다.

  1. 비용 관리 → 비용 분석 → 기간을 지난 3개월
  2. 필터: Service name = Virtual Machines
  3. 그룹화: Meter (VM 계열별로 분리해서 봐야 RI 계열 선택이 가능)
  4. 세분성: 일별 → 그래프의 최저 구간을 확인

더 정확히 보려면 Azure Advisor의 예약 권장 사항을 확인하는 편이 빠릅니다. 실제 사용 이력을 기반으로 계열·수량·예상 절감액까지 계산해줍니다.

# 예약 권장 사항 조회 (Advisor 기반)
az consumption reservation recommendation list \
  --query "[].{sku:skuName, region:location, term:term, \
              qty:recommendedQuantity, saving:netSavings}" \
  -o table

# 이미 산 예약이 실제로 얼마나 쓰이는지 (핵심 지표)
az consumption reservation summary list \
  --reservation-order-id <ORDER_ID> \
  --grain daily \
  --query "[].{date:usageDate, used:avgUtilizationPercentage}" \
  -o table

두 번째 명령이 중요합니다. 예약 활용률이 90% 아래로 떨어지면 그 예약은 손해를 보고 있을 가능성이 있습니다. 72% 할인을 받아도 절반만 쓰면 종량제보다 비쌉니다. 예약은 사고 끝이 아니라 매달 활용률을 봐야 하는 자산입니다.

결정 질문 3 — VM 계열이 앞으로 3년간 그대로일까

바닥 사용량이 정해졌으면, 이제 RI냐 Savings Plan이냐를 가릅니다. 판단 기준은 딱 하나, 계열을 바꿀 가능성입니다.

상황선택이유
레거시 시스템, 3년간 리팩터링 계획 없음RI 3년계열이 안 바뀌니 최대 할인을 그대로 받음
컨테이너 전환·아키텍처 개편 진행 중Savings PlanVM에서 Container Apps로 옮겨도 할인 유지
계열은 확실한데 수량이 오르내림RI(최저 수량) + Savings Plan바닥은 RI, 변동분은 Savings Plan
1년 뒤 계약·조직 변동 가능성RI 1년취소 불가인 Savings Plan은 피할 것
Windows Server·SQL 라이선스 보유RI + Hybrid Benefit중첩 적용으로 할인폭이 가장 큼

여기서 자주 놓치는 조합이 마지막 줄입니다. Azure Hybrid Benefit은 RI와 중첩됩니다. Windows Server 라이선스를 Software Assurance와 함께 갖고 있다면 RI 할인 위에 라이선스 비용까지 빠집니다. 이미 보유한 라이선스인데 적용 체크박스를 안 눌러서 그냥 두 번 내고 있는 경우를 꽤 봅니다. 구독의 VM 목록에서 라이선스 유형부터 한번 확인해보시길 권합니다.

결정 질문 4 — 약정 전에 크기부터 줄였는가

이 질문이 실은 가장 중요한데 대부분 건너뜁니다. 과대 프로비저닝된 VM에 3년 약정을 걸면, 낭비를 3년간 확정하는 것입니다.

순서는 반드시 이렇습니다.

  1. 안 쓰는 리소스 삭제 (연결 안 된 디스크, 미사용 공용 IP, 정지 상태로 방치된 VM)
  2. 과대 프로비저닝 VM 크기 축소 (Advisor 권장 사항 활용)
  3. 개발·테스트 VM 자동 종료 설정
  4. 그 다음에 남은 바닥 사용량에 약정

1~3번을 먼저 하면 약정해야 할 양 자체가 줄어듭니다. D8s를 D4s로 줄인 뒤 약정하면, 72% 할인을 D8s에 거는 것보다 훨씬 적게 냅니다. 할인율은 정가를 깎는 것이고, 크기 조정은 정가 자체를 낮추는 것이라 후자가 먼저입니다.

정지 상태 VM에 대해 하나 짚어두면, 포털에서 “중지됨”과 “중지됨(할당 취소)”은 완전히 다릅니다. 게스트 OS에서 종료만 한 VM은 Stopped 상태로 남아 컴퓨팅 요금이 계속 나갑니다. Stopped (deallocated)여야 과금이 멈춥니다. 껐다고 생각한 VM이 계속 청구되는 사고의 대부분이 여기서 납니다.

권장 구조: 셋을 층으로 쌓기

네 질문을 통과하면 대개 이런 그림이 나옵니다. 하나를 고르는 문제가 아니었습니다.

대상적용비중(예시)
3층배치·비동기 처리Spot10~20%
2층변동 부하, 전환 예정 워크로드Savings Plan 1년20~30%
1층24시간 켜져 있는 바닥RI 3년50~60%

비중은 조직마다 다르지만, 바닥에 RI를 깔고 변동분을 Savings Plan으로 덮은 뒤 남는 배치성 작업을 Spot으로 처리하는 형태가 일반적입니다. 종량제 대비 40~55% 정도의 절감이 현실적인 목표치입니다. “최대 72%”라는 숫자는 100% 활용을 전제한 상한이라, 실제 청구서에서 그대로 보기는 어렵습니다.

숫자로 확인: D4s_v5 10대를 어떻게 나눌 때 가장 싼가

말로만 하면 감이 안 오니 실제로 계산해보겠습니다. 가정은 이렇습니다.

  • Standard_D4s_v5 (4 vCPU / 16GB), Linux, 종량제 단가 시간당 약 $0.192
  • 상시 가동 6대 (웹·API 서버, 24시간)
  • 업무 시간에만 늘어나는 2대 (평일 12시간)
  • 야간 배치 전용 2대 (매일 4시간, 중단 허용)
  • 환율 1 USD = 1,400원, 월 730시간 기준

A안: 전부 종량제

  • 상시 6대: 6 × 730h × $0.192 = $841.0
  • 업무시간 2대: 2 × 260h × $0.192 = $99.8
  • 배치 2대: 2 × 120h × $0.192 = $46.1

합계 $986.9/월 → 약 1,382,000원

B안: 전부 3년 RI로 덮기 (흔한 실수)

10대 전부를 RI로 사면 할인율은 좋습니다. 하지만 RI는 VM이 꺼져 있어도 시간당 요금이 계속 소진됩니다. 업무시간 2대와 배치 2대는 대부분의 시간을 꺼져 있으므로, 그 시간의 예약분은 그냥 버려집니다.

  • 10대 × 730h × $0.192 × (1 − 0.62) = $532.7
  • 실제 활용률: (6×730 + 2×260 + 2×120) ÷ (10×730) = 70.3%

$532.7/월 → 약 746,000원. 종량제보다는 싸지만, 약 30%를 안 쓰고 버리는 중입니다. 활용률 70%는 예약 관리 관점에서 경고 수준입니다.

C안: 층으로 쌓기

대상적용계산월 비용
상시 6대RI 3년 (−62%)6 × 730 × 0.192 × 0.38$319.6
업무시간 2대Savings Plan 1년 (−35%)2 × 260 × 0.192 × 0.65$64.9
배치 2대Spot (−85%)2 × 120 × 0.192 × 0.15$6.9
합계$391.4

$391.4/월 → 약 548,000원. 종량제 1,382,000원 대비 60% 절감이고, 전부 RI로 덮은 B안(746,000원)보다도 월 198,000원, 연간 약 238만원을 더 아낍니다.

핵심은 B안이 C안보다 할인율이 높은 상품을 더 많이 샀는데도 더 비싸다는 점입니다. 안 쓰는 시간에 예약을 걸어두면 할인율이 아무리 좋아도 손해입니다. “무엇을 사느냐”보다 “무엇에 붙이느냐”가 금액을 결정합니다.

약정 전 최종 점검

  • 지난 3개월 최저 사용량을 기준으로 잡았는가? (평균 아님)
  • 크기 축소·미사용 리소스 정리를 먼저 했는가?
  • 3년 약정을 거는 워크로드가 3년 뒤에도 존재하는가?
  • Savings Plan이 취소 불가임을 인지하고 결정했는가?
  • 보유 중인 Windows·SQL 라이선스에 Hybrid Benefit을 적용했는가?
  • 구매 후 활용률을 매달 확인할 담당이 정해졌는가?

마지막 항목이 실무에서 가장 잘 빠집니다. 예약은 사두고 잊으면 반드시 낭비가 생깁니다. 월 1회 활용률만 확인해도 충분합니다.

자주 나오는 질문 세 가지

RI를 샀는데 VM 크기를 바꿔야 하면?

같은 계열 안에서는 인스턴스 크기 유연성이 적용됩니다. D4s_v5 예약 1개는 D2s_v5 두 대에도 자동으로 나눠 적용됩니다. 계열 자체를 바꿔야 한다면(D → E) 교환 절차를 밟아야 하는데, 남은 기간에 대해 동등하거나 더 큰 금액으로만 교환됩니다. 계열 변경 가능성이 조금이라도 있으면 처음부터 Savings Plan이 낫습니다.

1년과 3년, 어느 쪽이 유리한가?

단순 할인율만 보면 3년이지만, 판단 기준은 워크로드의 예상 수명입니다. 3년 약정의 손익분기는 대략 18~20개월 근처에 형성됩니다. 그 전에 워크로드가 사라지면 1년 약정을 갱신하는 편이 쌉니다. 레거시 시스템처럼 “바뀔 리 없는” 것은 3년, 신규 서비스는 1년으로 시작해 안정화 후 3년으로 넘어가는 방식을 권합니다.

개발·테스트 환경에도 약정이 필요한가?

대개 필요 없습니다. 개발 환경은 자동 종료로 가동 시간을 줄이는 것이 약정보다 효과가 큽니다. 평일 9시~19시만 켜면 가동률이 약 30%가 되는데, 이건 3년 RI 최대 할인(72%)보다 큰 절감입니다. 게다가 약정은 꺼져 있어도 소진되므로 자동 종료와 상성이 나쁩니다. 개발 환경은 끄고, 운영 환경은 약정하는 것이 원칙입니다.

비용 쪽을 이어서 보실 분들께는 비용이 갑자기 늘었을 때 원인 찾는 법, Blob Storage 수명 주기 정책으로 스토리지 비용 줄이기, VM 시리즈 선택 가이드를 함께 권합니다. 약정은 정가를 깎는 수단이고, 나머지 둘은 정가 자체를 낮추는 수단이라 병행해야 효과가 납니다.

※ 본문의 할인율은 Microsoft가 공개한 상한값 기준이며 VM 계열·리전·약정 기간에 따라 실제 적용률은 달라집니다. 구매 전 Azure 포털의 예약 구매 화면에서 실제 견적을 확인하시기 바랍니다.

댓글 남기기