View a markdown version of this page

자습서: 용량 예약 리소스 그룹을 사용하여 여러 용량 예약 유형으로 인스턴스를 시작하도록 EC2 Fleet 구성 - - Amazon Elastic Compute Cloud

자습서: 용량 예약 리소스 그룹을 사용하여 여러 용량 예약 유형으로 인스턴스를 시작하도록 EC2 Fleet 구성

이 자습서에서는 단일 용량 예약 리소스 그룹을 사용하여 온디맨드 용량 예약(ODCR), ML용 용량 블록, 중단 가능한 용량 예약 등 여러 용량 예약 유형으로 인스턴스를 시작하는 EC2 Fleet을 구성하는 단계를 안내합니다.

다양한 용량 예약 유형이 포함된 용량 예약 리소스 그룹을 생성하고, 용량 예약 유형의 우선순위를 특정 순서로 지정하도록 EC2 Fleet을 구성하고, 예약 용량이 목표를 충족하기에 충분하지 않은 경우 선택적으로 온디맨드 용량으로 폴백하는 방법을 알아봅니다.

고려 사항

  • ReservedCapacityOptions를 사용하는 경우 instant 유형의 EC2 Fleet 요청만 지원됩니다.

  • ReservationTypes 목록에서 대상으로 지정할 용량 예약 유형을 명시적으로 지정해야 합니다. EC2 Fleet은 지정한 용량 예약 유형으로만 인스턴스를 시작합니다.

  • ReservedCapacityOptionsOnDemandOptions.CapacityReservationOptions는 상호 배타적입니다. 동일한 EC2 Fleet 요청에서 둘 다 사용할 수는 없습니다.

이 자습서에서는 계정에 이미 다음 용량 예약이 있다고 가정합니다.

  • us-east-1ap5.48xlarge에 대한 ODCR(cr-1234567890abcdef1)

  • us-east-1bp4d.48xlarge에 대한 ODCR(cr-abcdef1234567890a)

  • us-east-1ap5.48xlarge에 대한 용량 블록(cr-0123456789abcdef0)

  • 조직의 다른 계정에서 공유한 us-east-1ap5.48xlarge에 대한 중단 가능한 용량 예약(cr-9876543210fedcba9)

권한 확인

EC2 플릿을 생성하기 전에 필요한 권한을 가진 IAM 역할이 있는지 확인합니다. 자세한 내용은 EC2 Fleet 사전 조건 섹션을 참조하세요.

1단계: 용량 예약 리소스 그룹 생성

EC2 Fleet이 대상으로 하는 용량 예약을 보유할 용량 예약 리소스 그룹을 생성합니다. 모든 인스턴스 유형 및 용량 예약 유형의 용량 예약을 수락하도록 그룹을 구성합니다. 그러면 그룹이 용량 예약 유형을 혼합하여 보유할 수 있습니다. 단계별 지침은 용량 예약 그룹을 참조하세요.

참고

그룹을 생성할 때 AWS::EC2::CapacityReservationPool 구성에 instance-type 또는 reservation-type 파라미터를 지정하지 마세요. 이러한 파라미터를 생략하면 그룹이 모든 인스턴스 유형 및 용량 예약 유형의 용량 예약을 수락할 수 있습니다.

2단계: 그룹에 용량 예약 추가

용량 예약 리소스 그룹에 용량 예약을 추가합니다. ODCR, ML용 용량 블록, 중단 가능한 용량 예약, UltraServer 용량 블록을 임의로 조합하여 추가할 수 있습니다. 이 자습서에서는 자습서 시작 부분에 나열된 4개의 용량 예약을 추가합니다. 단계별 지침은 용량 예약 그룹을 참조하세요.

3단계: 시작 템플릿 생성

create-launch-template 명령을 사용하여 용량 예약 리소스 그룹을 대상으로 하는 시작 템플릿을 생성합니다. EC2 Fleet 구성에서 ReservedCapacityOptions를 사용하는 경우 시작 템플릿에서 MarketType을 설정할 필요가 없습니다. EC2 Fleet은 각 용량 예약 유형에 대해 이를 자동으로 설정합니다.

aws ec2 create-launch-template \ --launch-template-name my-cr-resource-group-template \ --launch-template-data \ '{"ImageId": "ami-0123456789example", "CapacityReservationSpecification": {"CapacityReservationTarget": {"CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-resource-group"} } }'

4단계: EC2 플릿 생성

용량 예약 리소스 그룹에서 여러 용량 예약 유형을 대상으로 하는 EC2 Fleet을 생성합니다. 키 구성은 ReservedCapacityOptions이며 다음을 지정합니다.

  • ReservationTypes - 대상으로 지정할 용량 예약 유형의 정렬된 목록입니다. EC2 Fleet은 이 순서로 유형을 지정합니다. 유효한 값은 on-demand-capacity-reservation, capacity-block, interruptible-capacity-reservation입니다.

  • AllocationStrategy - 각 용량 예약 유형 내에서 인스턴스 유형의 우선순위를 지정하는 방법입니다. 인스턴스 유형 재정의 순서를 따르려면 prioritized로 설정합니다.

  • ReservedCapacityFallbackOptions - 예약 용량이 충분하지 않은 경우 온디맨드 인스턴스를 시작하려면 MarketTypes["on-demand"]로 설정합니다. 폴백 옵션을 지정하지 않으면 지정된 용량 예약 유형이 소진된 후 EC2 Fleet이 다른 시장 유형으로 폴백되지 않습니다.

다음 콘텐츠가 포함된 config.json이라는 파일을 생성합니다. 다음 예제에서는 리소스 식별자를 사용자 고유의 리소스 식별자로 바꿉니다.

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-cr-resource-group-template", "Version": "1" }, "Overrides": [ { "InstanceType": "p5.48xlarge", "AvailabilityZone": "us-east-1a", "Priority": 1 }, { "InstanceType": "p4d.48xlarge", "AvailabilityZone": "us-east-1b", "Priority": 2 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 100, "DefaultTargetCapacityType": "reserved-capacity" }, "ReservedCapacityOptions": { "ReservationTypes": ["on-demand-capacity-reservation", "capacity-block", "interruptible-capacity-reservation"], "ReservedCapacityFallbackOptions": { "MarketTypes": ["on-demand"] }, "AllocationStrategy": "prioritized" }, "Type": "instant" }

create-fleet 명령을 사용하여 플릿을 시작합니다.

aws ec2 create-fleet --cli-input-json file://config.json

자세한 내용은 EC2 집합 생성 섹션을 참조하세요.

EC2 Fleet이 용량 예약을 처리하는 방식

EC2 Fleet은 이전 구성을 기반으로 다음 순서로 인스턴스를 시작하려고 시도합니다.

  1. ODCR - 먼저 p5.48xlarge 예약(우선순위가 가장 높은 인스턴스 유형)을 시도한 다음 p4d.48xlarge 예약을 시도합니다. 각 인스턴스 유형 내에서 여러 ODCR이 있는 경우 무작위로 선택됩니다.

  2. 용량 블록 - 모든 ODCR에 가용 용량이 남아 있지 않은 경우 EC2 Fleet은 용량 블록을 대상으로 지정합니다. 먼저 p5.48xlarge 예약을 시도한 다음 p4d.48xlarge를 시도합니다(각 인스턴스 유형 내에서 무작위로 선택).

  3. 중단 가능한 용량 예약 - 모든 용량 블록에 가용 용량이 남아 있지 않은 경우 EC2 Fleet은 중단 가능한 용량 예약을 대상으로 지정합니다. 먼저 p5.48xlarge 예약을 시도한 다음 p4d.48xlarge를 시도합니다(각 인스턴스 유형 내에서 무작위로 선택).

  4. 온디맨드 폴백 - 예약 용량이 인스턴스 100개 목표를 충족하기에 충분하지 않은 경우 나머지 용량은 온디맨드 인스턴스로 시작됩니다. EC2 Fleet은 OnDemandOptions에서 지정한 할당 전략에 따라 이러한 온디맨드 인스턴스를 시작합니다.

참고

EC2 Fleet은 먼저 용량 예약 유형을 결정한 다음 각 용량 예약 유형 내의 인스턴스 유형을 결정합니다. EC2 Fleet은 정렬된 목록의 다음 유형으로 넘어가기 전에 각 용량 예약 유형을 완전히 소진합니다.

(선택 사항) 5단계: 인스턴스 속성 확인

describe-instances 명령을 사용하여 각 인스턴스가 소비한 용량 예약 유형을 확인합니다. 플릿이 시작한 인스턴스에는 다음 속성이 표시됩니다.

속성 온디맨드 용량 예약 값 용량 블록 값 중단 가능한 용량 예약 값 온디맨드 값
instance-lifecycle null capacity-block interruptible-capacity-reservation null
capacity-reservation-id 소비된 용량 예약 ID 소비된 용량 예약 ID 소비된 용량 예약 ID 없음
capacity-reservation-specification 그룹 ARN 그룹 ARN 그룹 ARN 없음

다음 명령을 사용하여 용량 예약 리소스 그룹별로 인스턴스를 필터링할 수 있습니다.

aws ec2 describe-instances \ --filters "Name=capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn,Values=arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-resource-group"

정리

요금이 발생하지 않도록 하려면 더 이상 필요하지 않은 인스턴스를 종료합니다. 용량 블록 예약이 종료되면 용량 블록으로 시작된 인스턴스가 자동으로 종료됩니다. 용량 소유자가 용량을 회수하면 중단 가능한 용량 예약으로 시작된 인스턴스가 자동으로 종료됩니다.