Reserved Instance(RI), Savings Plans 란?
개요
인스턴스나 각종 서비스들을 더 저렴하게 사용하기 위해서 SP나 RI와 같은 요금 정책을 이용하면 연 비용을 절감할 수 있다. 보통 비용 최적화 작업을 하게 되면 필수적으로 적용되는 것이 SP나 RI 이다. 정확히 알고 있지는 않아서 정리하고자 한다.
두 기능 모두 EC2나 RDS 인스턴스와 같은 서비스에 대해 온디맨드 방식(사용 시간 대비 비용 지불)으로 비용을 지불하는 게 아니라 1년 또는 3년 약정 등으로 약정 기간을 두고 미리 결제하여 온디맨드 방식보다 더 저렴히 서비스를 이용할 수 있는 방법이다.
Reserved Instance(RI)란?
Amazon EC2 RI(예약형 인스턴스)는 온디맨드 요금과 비교하여 상당한 할인 혜택(최대 72%)을 제공하며 특정 가용 영역에서 사용하는 경우에는 용량 예약을 제공
약정 기간
- 1년
- 3년
결제 옵션
- 선결제 없음 (No up-front)
- 매월 약정된 금액을 내고 시간 단위로 사용
- 부분 선결제 (Partial up-front)
- 일부를 선결제하고 시간 당 선결제 없음보다 낮은 가격에 시간 당 사용료를 지불
- 전체 선결제 (Full up-front)
- 약정 기간 내 사용 금액을 모두 선지불하여 가장 낮은 가격으로 인스턴스 사용, 매월 1일에 청구됨
일반적으로 선결제를 하면 결제 금액이 높을수록 요금 절약 혜택이 커지나 회사 내부적 사정이나 재정적 이유로 할수 없을 수 있다. 그래서 부분 선결제나 선결제 없음 옵션으로 선택하기도 한다. 선결제는 어떤 옵션이던 무조건 카드로 가능하다고 한다.
제공 클래스
- 표준형 (Standard)
- 약정 기간 동안 인스턴스 타입 변경이 불가능
- 기간(평균 할인율) : 1년(40%), 3년(60%)
- 전환형 (Convertible)
- 약정 기간 동안 인스턴스 패밀리, 운영체제, 테넌시 및 결제 옵션 변경 가능
- 기간(평균 할인율) : 1년(31%), 3년(54%)
전환 가능 유무의 경우 특정 기간 동안 일정 비용을 지출하기로 약속하고 서버 유형 측면에서 유연성을 더 많이 확보한다고 이해하면 된다.
속성
- 인스턴스 유형
- 인스턴스 유형은 CPU, 메모리, 스토리지 및 네트워킹 용량을 다양하게 조합하여 이루어진다. m4.2xlarge를 예로 들 수 있다.
- 플랫폼
- Linux/UNIX, SUSE Linux, Red Hat Enterprise Linux, Microsoft Windows Server 및 Microsoft SQL Server 플랫폼 구동 Amazon EC2 인스턴스에서 사용할 목적으로 구매할 수 있다.
- 테넌시
- 인스턴스를 기본 테넌시로 사용하는 경우 기본 테넌시 예약 인스턴스를 구매 하면된다. 전용 인스턴스를 사용하는 경우 전용 테넌시 예약 인스턴스를 구매 해야한다.
- 테넌시에 대한 설명은 이 문서에서 확인 가능하다.
- 테넌시는 쉽게 말해 인스턴스가 실제로 구성되는 하드웨어 바운더리라고 생각하면 될듯!
- 가용 영역(선택 사항)
- 가용 영역을 선택하면, 선택한 가용 영역에서 인스턴스를 사용하는 경우 구매한 RI에서 할인과 용량 예약을 제공한다.
- 가용 영역이 지정되지 않은 경우 RI 할인은 리전 내에서 실행되는 모든 크기의 인스턴스(같은 패밀리 내)에 적용된다.
- 표준 RI 또는 컨버터블 RI가 특정 가용 영역에 한정되어 있는 경우, 해당 RI 구성에 정확하게 일치하는 인스턴스 용량이 예약된다.(이를 Zonal RI라고 함). Zonal RI를 사용하면 필요할 때 인스턴스를 시작할 수 있다는 확신을 가질 수 있다. (아래에서 설명)
- Zonal RI와 Regional RI는 "용량"을 예약한다는 점에서 큰 차이가 있다. 이게 무슨 말이냐면 Zonal RI로 지정하게 되면 특정 가용영역에 대한 용량이 고정적으로 할당 되는데 만약 Zone에 문제가 생겨 다른 Zone에서 가용성을 보장하는 과정에서 용량을 두고 많은 사용자들이 경쟁해야하기 때문이다. Zonal RI로 지정하게 되면 유연성이 떨어지나 용량을 보장할 수 있다는 장점이 있다.
- 리전
- 특정 리전을 대상으로 선택할 수 있고, RI를 적용하게 되면 특정 리전에 한해서만 적용이된다.
- 한번 RI를 적용하게되면 리전을 수정할 수 없다..
정규화 인자
RI의 경우 특정 인스턴스 유형에 따라 정규화 인자를 통해 RI를 적용하는 대상을 계산하게 된다.
예를들어 t2.medium은 정규화 인자를 2를 가지므로 t2.medium 인스턴스 4개 예약의 공간은 8 유닛이다.
또한, 인스턴스 공간 크기가 변동되지 않는 선에서 동일한 인스턴스 패밀리 내의 다른 인스턴스 크기로 다양하게 할당할 수 있다.
예를 들어 t2.large 인스턴스 1개(4 X 1 유닛)에 대한 예약을 t2.small 인스턴스 4개(1 X 4 유닛)로 나눌 수 있다.
대상
RI로 적용할 수 있는 대상은 아래와 같다.
- EC2
- RDS
- Elastic Cache
- Redshift
- Elasticsearch
- DynamoDB (DAX)
인스턴스 형태로 올라오는 모든 대상을 적용할수 있는듯 하다. Redshift, ElastiCache 같은 경우 일반적으로 EC2, RDS에서 사용하는 Instance type이 아닌 별도의 type이어서 잘 확인하고 적용해야한다. 그 외 대상은 적용되지 않는다.
그 외 알아야할 사항
- 실핼 중인 인스턴스에 대해 RI를 구매할 수 있다.
- AWS에서는 어떤 인스턴스에 할인된 요금을 부과할지 자동으로 최적화하여 사용자가 언제나 가장 적은 비용을 지불하도록 한다.
- RI는 스팟 인스턴스 또는 전용 호스트는 적용되지 않는다.
- RI는 Marketplace에서 구매 또는 판매가 가능하다.
- Marketplace는 AWS 고객 자신의 EC2 RI를 다른 비스니스 및 조직에 판매할 수 있는 유연성을 제공하는 온라인 마켓플레이스이다.
- Marketplace에 판매자로 등록, 예약 인스턴스에 대한 비용을 지불함, 30일 이상 예약 인스턴스를 보유 와 같은 조건을 모두 충족하면 마켓플레이스의 판매 목록에 추가할 수 있다.
- Resource Access Manager 서비스를 통해 다른 계정과 또는 AWS Organization 내에서 RI 를 공유할 수 있다
- RI 기간이 끝나게 되면 갱신되지 않으므로 중단 없이 인스턴스를 계속 사용 가능하지만 온디맨드 요금이 부과된다.
Saving Plans란?
Savings Plans는 1년 또는 3년 기간의 일정 사용량 약정(시간당 USD 요금으로 측정)을 조건으로 Amazon EC2, AWS Lambda 및 AWS Fargate 사용량에 대해 저렴한 요금을 제공하는 유연한 요금 모델
컴퓨팅 절감형 플랜은 인스턴스 패밀리, 크기, OS, 테넌시 또는 AWS 리전에 관계없이 Amazon EC2 인스턴스 사용량에 대해 더 저렴한 요금을 제공
약정 기간
- 1년
- 3년
결제 옵션
- 선결제 없음 (No up-front)
- 매월 약정된 금액을 내고 시간 단위로 사용
- 부분 선결제 (Partial up-front)
- 일부를 선결제하고 시간 당 선결제 없음보다 낮은 가격에 시간 당 사용료를 지불
- 전체 선결제 (Full up-front)
- 약정 기간 내 사용 금액을 모두 선지불하여 가장 낮은 가격으로 인스턴스 사용, 매월 1일에 청구됨
플랜 유형
- 컴퓨팅 절감형 플랜
- 온디맨드 대비 최대 66% 할인된 가격
- 인스턴스 패밀리, 인스턴스 크기, 리전, 운영체제, 테넌시 에 상관없이 EC2 인스턴스 사용량에 자동으로 적용된다.
- Fargate 및 Lambda도 포함된다.
- 언제든지 워크로드를 M5에서 C5로 또는 ap-northeast-2에서 us-east-1 으로 이동한다던지, EC2에서 ECS로 이전한다던지에 대해 변경사항에 있어 자유롭다.
- EC2 인스턴스 절감형 플랜
- 선택한 리전의 특정 인스턴스 패밀리 (예: 버지니아의 M5)에 대한 약정과 교환하여 최대 72%의 온디맨드 대비 요금 절감을 제공한다.
- 리전 내 지정된 패밀리 (예: m5.xlarge 또는 m5.small) 및 OS, 테넌시에 관계없이 사용량에 자동으로 적용된다.
- SageMaker 절감형 플랜
- 온디맨드 대비 64%의 요금 절감을 제공한다.
- 인스턴스 패밀리, 인스턴스 크기, 리전, 구성 요소에 관계 없이 SageMaker 인스턴스 사용량에 자동으로 적용된다.
- 위와 같이 동일 패밀리 군, 리전, 구성 요소에 관계 없이 변경 가능하다.
대상
SP로 적용할 수 있는 대상은 아래와 같다.
- 컴퓨팅 절감형 플랜
- EC2 인스턴스, Fargate, Lambda
- EC2 인스턴스 절감형 플랜
- EC2 인스턴스
- SageMaker 절감형 플랜
- SageMaker 인스턴스
그 외 알아야 할 사항
- SP는 약정한 금액까지만 할인이 적용되고 그 외 초과하는 사용량에 대해서는 온디맨드의 요금을 받는다. 예를 들어 10 USD 까지만 약정을 설정했다면 10 USD를 초과하는 사용량에 대해서는 온디맨드의 요금을 받는다는 이야기다.
- Savings Plans는 AWS Organization/통합 결제 패밀리 내의 모든 계정에서 구매 가능함 (통합 결제 패밀리는 Organization 내의 여러 계정의 청구 및 결제를 통합하는 기능)
- SP가 적용되는 우선 순위
- Reserved Instance 적용 후에 Savings plan이 적용 된다.
- Compute Savings Plan이 EC2 Instance Savings Plan 보다 먼저 적용된다.
- 통합 결제 패밀리가 활성화되어 있다면 Savings Plan 소유자 계정의 사용량에 먼저 적용된 다음 다른 계정의 사용량에 적용된다.
- Savings Plan 요금을 현재 온디맨드 요금과 비교하여 할인율이 가장 높은 대상부터 Savings Plan이 적용
- 동일한 할인 비율을 가진 여러 사용량이 있는 경우 Savings Plans는 가장 낮은 Saving Plans 비율을 가진 첫 번째 사용량에 적용
- RDS같은 경우 RI로만 요금 할인이 적용된다.
내 생각
전략적으로 두개를 합하여 요금 절감을 하는 게 중요해보인다. 두루뭉술하게 알고 있던 점들을 전부 정리하여 명확히 RI나 SP를 적용할 수 있을 것 같다. 워크로드의 예상치와 전략을 어떻게 세울지가 가장 중요할듯
[참조] :
https://www.costclipper.io/blog/rireserved-instance-vs-savings-plan
https://docs.aws.amazon.com/ko_kr/savingsplans/latest/userguide/what-is-savings-plans.html
https://aws.amazon.com/ko/ec2/faqs/
https://www.nops.io/blog/aws-savings-plan-vs-reserved-instances/
https://www.anodot.com/blog/ec2-reserved-instance/
https://dev.classmethod.jp/articles/commitment-amount-is-insufficient-when-purchasing-sp-kr/