Search

[AWS] EC2-용량 예약 (Capacity Reservations)

PublishDate
2021/07/01
Category
AWS
AWS CLI
Tag & Keyword
용량 예약
Capacity Reservations

What is Capacity-Reservation

EC2 용량예약(Capacity Reservation - 이하 CR로 표현)을 간단히 표현하면 원하는 가용영역에 원하는 인스턴스를 원하는 양만큼 예약!
생각보다 T,R,M과 같은 대중적으로 사용되는 타입이 아닌경우 인스턴스타입이 커질수록 리소스 부족으로 인스턴스 시작을 못하는 경우가 많다. (심지어 만들어 놓은 온디맨드 인스턴스를 중지했다가 다시 시작할 때 못켜는 경우도 있다.)
RI(예약 인스턴스, 약정) 인스턴스는 자기 할당량이 항상 제공되지만, 온디맨드 인스턴스는 리소스가 부족한경우 생성을 못할 수 있다.
이럴 때를 대비해서 인스턴스를 꼭 켜야할 때 & 필요한 개수는 있는데 실행되고 꺼지고 반복될 때와 같은 상황에서 CR을 사용한다.

특징

용량을 예약하는 것이라서 CR을 생성한다고 인스턴스가 생성되진 않는다.
예약이라는 말이 들어가서 헷갈릴 수 있는데 시작시점은 무조껀 CR을 생성하는 시점이다. (종료시점은 지정가능)
CR생성하는 순간부터 예약한 용량만큼 과금된다. (5개 예약하고 1개만 써도 5개의 비용이 모두 청구된다.)
내가 원하는 만큼의 리소스가 해당 AZ에 없으면 CR생성에 실패할 수 있다.

AWS CLI로 capacity-reservation 생성

AWS CLI 명령어로 CR을 생성 및 조회해보자
아래 적혀있는 CR 생성 명령어는 Windows Powershell 기준 명령어이며 `(그레이브) 대신 \ (백슬래시)를 입력하면 리눅스에서도 사용가능하다.
CR 생성
#Capacity-Reservation 생성하기 aws ec2 create-capacity-reservation ` --availability-zone ap-northeast-2a ` --instance-type t3a.nano ` --instance-platform Windows ` --instance-count 1 ` --tag-specifications ResourceType=capacity-reservation,Tags=[{Key=cr-test,Value=success}] #--end-date-type limited ` #--end-date 2021-07-01T09:00:00Z
Shell
복사
Powershell 명령 입력 결과 화면
AWS Console에서 CR 생성결과 확인 화면
CR 조회
#Capacity-Reservation 리스트 확인하기 aws ec2 describe-capacity-reservations
Shell
복사

Idea

CR은 시작시간을 지정할 수 없지만, AWS CLI로 설정이 가능하니 Cron & Scheduler를 통해서 원하는 시간에 예약할 수 있을것이다.
해결해야할 부분은 CR에 실패했을 경우 어떻게 원하는 용량을 확보할 때 까지 CR을 실행시키고 이 부분을 자동화 할 수 있는지가 관건이다.