AWS

AWS 예약 인스턴스(RI) 구매 방법

misankim 2023. 3. 15. 00:30

지난달 EC2 인스턴스, Elasticache(Redis) 노드의 예약 인스턴스를 구매해봤는데요. 예약 인스턴스를 처음 구매해보는 거라 어떻게 구매하면 되는지 파악하느라 어려움이 있었습니다. 저처럼 처음 예약 인스턴스를 구매하시는 분이 있으시다면 참고가 되었으면 해서 남겨놓습니다.

예약 인스턴스 관련 AWS 공식 문서
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-reserved-instances.html

1. 예약 인스턴스 구매

예약 인스턴스는 한 번 구매하고 나면 구매를 취소할 수 없음

만료일자에 구매 대기하도록 구매 대기열에 추가 가능(리전 예약 인스턴스만 가능)

-> 장바구니에서 구매 날짜 "지금"을 클릭하여 원하는 날짜로 수정

원하는 조건으로 검색 후 장바구니에 담고, 최종 확인 후 주문

-> 장바구니 화면에서 주문 버튼을 누르면 취소가 불가하기 때문에 신중히 확인할 것


2. 예약 인스턴스 구매 개수 제한

조직에서 보유할 수 있는 예약 인스턴스 수는 제한되어 있음 -> 문서에는 조직이라고 기재되어 있으나, 정확히 조직과 계정 중 어떤 것이 맞는지 확인이 필요한 부분

리전당 리전 범위 예약 인스턴스 20개(서포트센터를 통해 구매 수량 증가 요청 가능)

가용영역당 가용영역 범위 예약 인스턴스 20개

관련 문서
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-reserved-instances.html#ri-limits

기본 수량으로 20개인 모습

서포트 센터를 통해 수량 증가하여 40개

3. 예약 인스턴스 범위(리전 및 가용영역)

예약 인스턴스가 적용되는 범위와 용량 예약 가능 여부, 가용영역 유연성, 인스턴스 크기 유연성 적용 여부, 구매 대기열 추가 가능 여부의 차이가 있음

리전 예약 인턴스는 정규화 인자에 따른 인스턴스 크기 유연성을 제공하나, 크기 유연성이 적용되지 않는 플랫폼이 있으니 유의

관련 문서
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/reserved-instances-scope.html

(참고) 인스턴스 크기 유연성이란

(참고) 크기 유연성이 적용되지 않는 플랫폼

Windows Server
Windows Server with SQL Standard
Windows Server with SQL Server Enterprise
Windows Server with SQL Server Web
RHEL
SUSE Linux Enterprise Server

4. 예약 인스턴스 클래스(표준 및 컨버터블)

표준 클래스는 예약 인스턴스의 일부 속성 수정 가능하며, 교환은 불가능

컨버터블 클래스는 인스턴스 패밀리, 인스턴스 유형, 플랫폼, 범위 또는 테넌시를 비롯한 새 속성이 있는 다른 전환형 예약 인스턴스와 교환 가능하지만, 금액이 기존 예약 인스턴스 보다 같거나 높아야함

관련 문서
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/reserved-instances-types.html

표준 클래스 예약 인스턴스는 교환 기능을 사용 불가한 모습

5. 예약 인스턴스 적용

예약 인스턴스를 구입했으며 예약 인스턴스의 사양과 일치하는 인스턴스가 이미 실행 중인 경우 결제 혜택이 즉시 적용

인스턴스를 따로 재시작할 필요가 없음

조직 내 다른 계정에 특정 가용 영역에 대해 자격을 갖추었지만 사용하지 않은 예약 인스턴스(영역 예약 인스턴스)가 있다면 계정에 속한 리전 예약 인스턴스에 앞서 이 인스턴스가 계정에 적용

-> RI 및 Savings Plans 할인 공유가 켜져 있는 경우(결제 대시보드 -> 결제 기본 설정 -> RI 및 Savings Plans 할인 공유에서 확인)

관련 문서
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/apply_ri.html

6. 예약 인스턴스 요금 적용

예약 인스턴스를 사용하면 실제 사용에 상관없이 전체 기간에 대해 요금을 지불

관련 문서
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/concepts-reserved-instances-application.html

현재까지 실제 사용한 시간과 관계 없이 한달(720시간) 비용이 모두 청구서에 잡힌 모습

7. 예약 인스턴스 결제 옵션

전체 선결제 - 해당 기간의 요금을 구매 시 전액 선결제(할인율 가장 높음)

부분 선결제 - 해당 기간의 요금 중 일부(약 50%) 비용을 구매 시 선 결제, 나머지에 대해 매월 시간 당 요금 부과

선결제 없음 - 선결제 없이 매월 시간 당 요금 부과(인스턴스 사용 여부와 관계 없이 비용 부과, 할인율 가장 낮음)
관련 문서
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-reserved-instances.html#ri-payment-options

인스턴스 타입 별 비용 확인
https://aws.amazon.com/ko/ec2/pricing/reserved-instances/pricing/

8. 예약 인스턴스 수정

인스턴스 크기 수정이 가능하나, 기존 예약 인스턴스의 공간 크기(정규화 인자)가 동일해야함(기존보다 크거나, 작으면 안됨), 동일 인스턴스 패밀리에 대해 가능(t2 -> t3 불가)

예를 들어, 아래와 같이 기존 t3a.small 타입의 예약 인스턴스를 t3a.micro 타입의 인스턴스 2개로 수정은 가능하나, t3a.micro 타입의 인스턴스 1개로 수정은 불가능 -> 정규화 크기의 총 합이 다르기 때문에

관련 문서
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ri-modifying.html


Elasticache 예약 노드를 구매하는 방법도 EC2 인스턴스와 크게 다르진 않습니다. 예약 인스턴스 외에도 예약 인스턴스보다 좀 더 유연하게 타입 변경이 가능한 Saving Plan 도 있는데 아직 사용해본 적이 없어 좀 더 알아봐야 될 것 같습니다.