기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon에서 인스턴스 플릿을 사용한 용량 예약 사용 EMR
용량 예약 옵션을 포함하는 온디맨드 인스턴스 플릿을 시작하려면 용량 예약 옵션을 사용하는 데 필요한 추가 서비스 역할 권한을 연결합니다. 용량 예약 옵션은 온디맨드 할당 전략과 함께 사용해야 하므로 할당 전략에 필요한 권한도 서비스 역할 및 관리형 정책에 포함해야 합니다. 자세한 내용은 할당 전략 권한 단원을 참조하십시오.
Amazon은 개방형 및 대상 용량 예약을 모두 EMR 지원합니다. 다음 주제에서는 RunJobFlow
작업 또는 create-cluster
명령과 함께 온디맨드 용량 예약을 사용하여 인스턴스 플릿을 시작할 수 있는 인스턴스 플릿 구성을 보여줍니다.
최대한 열린 용량 예약 사용
클러스터의 온디맨드 인스턴스가 계정에서 사용할 수 있는 열린 용량 예약 속성(인스턴스 유형, 플랫폼, 테넌시 및 가용 영역)과 일치하면 용량 예약이 자동으로 적용됩니다. 하지만 용량 예약 사용은 보장되지 않습니다. 클러스터 프로비저닝을 위해 Amazon은 시작 요청에 지정된 모든 인스턴스 풀을 EMR 평가하고 요청된 모든 코어 노드를 시작할 수 있는 충분한 용량이 있는 최저가 인스턴스 풀을 사용합니다. 인스턴스 풀과 일치하는 사용 가능한 열린 용량 예약이 자동으로 적용됩니다. 사용 가능한 열린 용량 예약이 인스턴스 풀과 일치하지 않는 경우 미사용 상태로 남습니다.
코어 노드가 프로비저닝되면 가용 영역이 선택되고 수정됩니다. Amazon은 모든 태스크 노드가 EMR 프로비저닝될 때까지 선택한 가용 영역에서 가장 저렴한 노드부터 시작하여 태스크 노드를 인스턴스 풀에 프로비저닝합니다. 인스턴스 풀과 일치하는 사용 가능한 열린 용량 예약이 자동으로 적용됩니다.
다음은 오픈 EMR 용량 예약을 최대한 활용하기 위한 Amazon 용량 할당 로직의 사용 사례입니다.
예제 1: 시작 요청의 최저 가격 인스턴스 풀에 사용 가능한 열린 용량 예약이 있는 경우
이 경우 Amazon은 온디맨드 인스턴스를 사용하여 최저가 인스턴스 풀에서 용량을 EMR 시작합니다. 해당 인스턴스 풀에서 사용 가능한 열린 용량 예약이 자동으로 사용됩니다.
온디맨드 전략 | lowest-price | ||
요청된 용량 | 100 | ||
인스턴스 유형 | c5.xlarge | m5.xlarge | r5.xlarge |
사용 가능한 열린 용량 예약 | 150 | 100 | 100 |
온디맨드 요금 | $ | $$ | $$$ |
프로비저닝된 인스턴스 | 100 | - | - |
---|---|---|---|
사용된 열린 용량 예약 | 100 | - | - |
사용 가능한 열린 용량 예약 | 50 | 100 | 100 |
인스턴스 플릿이 시작된 후, describe-capacity-reservations
를 실행하여 미사용 용량 예약이 얼마나 남았는지 확인할 수 있습니다.
예제 2: 시작 요청의 최저 가격 인스턴스 풀에 사용 가능한 열린 용량 예약이 없는 경우
이 경우 Amazon은 온디맨드 인스턴스를 사용하여 최저가 인스턴스 풀에서 용량을 EMR 시작합니다. 하지만 열린 용량 예약은 미사용 상태로 남아 있습니다.
온디맨드 전략 | lowest-price | ||
요청된 용량 | 100 | ||
인스턴스 유형 | c5.xlarge | m5.xlarge | r5.xlarge |
사용 가능한 열린 용량 예약 |
- | - | 100 |
온디맨드 요금 | $ | $$ | $$$ |
프로비저닝된 인스턴스 | 100 | - | - |
---|---|---|---|
사용된 열린 용량 예약 | - | - | - |
사용 가능한 열린 용량 예약 | - | - | 100 |
최대한 열린 용량 예약을 사용하도록 인스턴스 플릿 구성
RunJobFlow
작업을 사용하여 인스턴스 플릿 기반 클러스터를 생성하는 경우 온디맨드 할당 전략을 lowest-price
로 설정하고 용량 예약 옵션에서 CapacityReservationPreference
를 open
으로 설정합니다. 또는 이 필드를 비워 두면 Amazon은 온디맨드 인스턴스의 용량 예약 기본 설정을 로 EMR 기본 설정합니다open
.
"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "open" } } }
Amazon을 사용하여 오픈 용량 예약을 사용하여 인스턴스 EMR CLI 플릿 기반 클러스터를 생성할 수도 있습니다.
aws emr create-cluster \ --name 'open-ODCR-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=100,InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\ LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={CapacityReservationPreference=open}}'}
여기서
-
open-ODCR-cluster
는 열린 용량 예약을 사용하는 클러스터 이름으로 바뀝니다. -
subnet-22XXXX01
은 서브넷 ID로 바뀝니다.
먼저 열린 용량 예약을 사용합니다.
Amazon EMR 클러스터를 프로비저닝하는 동안 최저 요금 할당 전략을 재정의하고 사용 가능한 오픈 용량 예약을 먼저 사용하여 우선 순위를 지정할 수 있습니다. 이 경우 Amazon은 시작 요청에 지정된 용량 예약이 있는 모든 인스턴스 풀을 EMR 평가하고 요청된 모든 코어 노드를 시작할 수 있는 충분한 용량을 가진 최저 가격의 인스턴스 풀을 사용합니다. 용량 예약이 있는 인스턴스 풀 중 요청된 코어 노드에 충분한 용량이 없는 경우 AmazonEMR은 이전 주제에 설명된 최선의 노력 사례로 돌아갑니다. 즉, Amazon은 시작 요청에 지정된 모든 인스턴스 풀을 EMR 재평가하고 요청된 모든 코어 노드를 시작할 수 있는 충분한 용량을 가진 최저 가격의 인스턴스 풀을 사용합니다. 인스턴스 풀과 일치하는 사용 가능한 열린 용량 예약이 자동으로 적용됩니다. 사용 가능한 열린 용량 예약이 인스턴스 풀과 일치하지 않는 경우 미사용 상태로 남습니다.
코어 노드가 프로비저닝되면 가용 영역이 선택되고 수정됩니다. Amazon은 모든 태스크 노드가 EMR 프로비저닝될 때까지 선택한 가용 영역에서 가장 저렴한 노드부터 시작하여 용량 예약이 있는 인스턴스 풀에 태스크 노드를 프로비저닝합니다. AmazonEMR은 먼저 선택한 가용 영역의 각 인스턴스 풀에서 사용 가능한 오픈 용량 예약을 사용하고, 필요한 경우에만 최저가 전략을 사용하여 나머지 작업 노드를 프로비저닝합니다.
다음은 개방형 EMR 용량 예약을 먼저 사용하기 위한 Amazon 용량 할당 로직의 사용 사례입니다.
예제 1: 시작 요청에서 사용 가능한 열린 용량 예약이 있는 인스턴스 풀에 코어 노드를 위한 충분한 용량이 있는 경우
이 경우 Amazon은 인스턴스 풀 가격에 관계없이 사용 가능한 오픈 용량 예약이 있는 인스턴스 풀에서 용량을 EMR 시작합니다. 따라서 모든 코어 노드가 프로비저닝될 때까지 최대한 열린 용량 예약이 사용됩니다.
온디맨드 전략 | lowest-price | ||
요청된 용량 | 100 | ||
사용 전략 | use-capacity-reservations-first | ||
인스턴스 유형 | c5.xlarge | m5.xlarge | r5.xlarge |
사용 가능한 열린 용량 예약 | - | - | 150 |
온디맨드 요금 | $ | $$ | $$$ |
프로비저닝된 인스턴스 | - | - | 100 |
---|---|---|---|
사용된 열린 용량 예약 | - | - | 100 |
사용 가능한 열린 용량 예약 | - | - | 50 |
예제 2: 시작 요청에서 사용 가능한 열린 용량 예약이 있는 인스턴스 풀에 코어 노드를 위한 충분한 용량이 없는 경우
이 경우 AmazonEMR은 용량 예약을 사용하기 위한 최선의 노력과 함께 최저가 전략을 사용하여 코어 노드를 시작하는 것으로 돌아갑니다.
온디맨드 전략 | lowest-price | ||
요청된 용량 | 100 | ||
사용 전략 | use-capacity-reservations-first | ||
인스턴스 유형 | c5.xlarge | m5.xlarge | r5.xlarge |
사용 가능한 열린 용량 예약 | 10 | 50 | 50 |
온디맨드 요금 | $ | $$ | $$$ |
프로비저닝된 인스턴스 | 100 | - | - |
---|---|---|---|
사용된 열린 용량 예약 | 10 | - | - |
사용 가능한 열린 용량 예약 | - | 50 | 50 |
인스턴스 플릿이 시작된 후, describe-capacity-reservations
를 실행하여 미사용 용량 예약이 얼마나 남았는지 확인할 수 있습니다.
먼저 열린 용량 예약을 사용하도록 인스턴스 플릿 구성
RunJobFlow
작업을 사용하여 인스턴스 플릿 기반 클러스터를 생성하는 경우 온디맨드 할당 전략을 lowest-price
로 설정하고 CapacityReservationOptions
에서 UsageStrategy
를 use-capacity-reservations-first
로 설정합니다.
"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } } }
Amazon을 사용하여 용량 예약을 먼저 사용하여 인스턴스 플릿 기반 클러스터를 EMR CLI 생성할 수도 있습니다.
aws emr create-cluster \ --name 'use-CR-first-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=100,InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\ LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={UsageStrategy=use-capacity-reservations-first}}'}
여기서
-
use-CR-first-cluster
는 열린 용량 예약을 사용하는 클러스터 이름으로 바뀝니다. -
subnet-22XXXX01
은 서브넷 ID로 바뀝니다.
먼저 목표 용량 예약 사용
Amazon EMR 클러스터를 프로비저닝할 때 최저 요금 할당 전략을 재정의하고 사용 가능한 대상 용량 예약을 먼저 사용하여 우선 순위를 지정할 수 있습니다. 이 경우 Amazon은 시작 요청에 지정된 대상 용량 예약이 있는 모든 인스턴스 풀을 EMR 평가하고 요청된 모든 코어 노드를 시작할 수 있는 충분한 용량이 있는 최저 가격의 인스턴스 풀을 선택합니다. 대상 용량 예약이 있는 인스턴스 풀 중 코어 노드에 충분한 용량이 없는 경우 AmazonEMR은 앞서 설명한 최선의 노력 사례로 돌아갑니다. 즉, Amazon은 시작 요청에 지정된 모든 인스턴스 풀을 EMR 재평가하고 요청된 모든 코어 노드를 시작할 수 있는 충분한 용량을 가진 최저 가격의 인스턴스 풀을 선택합니다. 인스턴스 풀과 일치하는 사용 가능한 열린 용량 예약이 자동으로 적용됩니다. 하지만 목표 용량 예약은 미사용 상태로 남아 있습니다.
코어 노드가 프로비저닝되면 가용 영역이 선택되고 수정됩니다. Amazon은 모든 태스크 노드가 EMR 프로비저닝될 때까지 선택한 가용 영역에서 가장 저렴한 노드부터 시작하여 대상 용량 예약으로 태스크 노드를 인스턴스 풀에 프로비저닝합니다. Amazon은 먼저 선택한 가용 영역의 각 인스턴스 풀에서 사용 가능한 대상 용량 예약을 사용하려고 EMR 합니다. 그런 다음 필요한 경우에만 Amazon은 최저가 전략을 EMR 사용하여 나머지 작업 노드를 프로비저닝합니다.
다음은 대상 EMR 용량 예약을 먼저 사용하기 위한 Amazon 용량 할당 로직의 사용 사례입니다.
예제 1: 시작 요청에서 사용 가능한 목표 용량 예약이 있는 인스턴스 풀에 코어 노드를 위한 충분한 용량이 있는 경우
이 경우 Amazon은 인스턴스 풀 가격에 관계없이 대상 용량 예약을 사용할 수 있는 인스턴스 풀에서 용량을 EMR 시작합니다. 따라서 모든 코어 노드가 프로비저닝될 때까지 최대한 목표 용량 예약이 사용됩니다.
온디맨드 전략 | lowest-price | ||
사용 전략 | use-capacity-reservations-first | ||
요청된 용량 | 100 | ||
인스턴스 유형 | c5.xlarge | m5.xlarge | r5.xlarge |
사용 가능한 목표 용량 예약 | - | - | 150 |
온디맨드 요금 | $ | $$ | $$$ |
프로비저닝된 인스턴스 | - | - | 100 |
---|---|---|---|
사용된 목표 용량 예약 | - | - | 100 |
사용 가능한 목표 용량 예약 | - | - | 50 |
예제 2: 시작 요청에서 사용 가능한 목표 용량 예약이 있는 인스턴스 풀에 코어 노드를 위한 충분한 용량이 없는 경우
온디맨드 전략 | lowest-price | ||
요청된 용량 | 100 | ||
사용 전략 | use-capacity-reservations-first | ||
인스턴스 유형 | c5.xlarge | m5.xlarge | r5.xlarge |
사용 가능한 목표 용량 예약 | 10 | 50 | 50 |
온디맨드 요금 | $ | $$ | $$$ |
프로비저닝된 인스턴스 | 100 | - | - |
---|---|---|---|
사용된 목표 용량 예약 | 10 | - | - |
사용 가능한 목표 용량 예약 | - | 50 | 50 |
인스턴스 플릿이 시작된 후, describe-capacity-reservations
를 실행하여 미사용 용량 예약이 얼마나 남았는지 확인할 수 있습니다.
먼저 목표 용량 예약을 사용하도록 인스턴스 플릿 구성
RunJobFlow
작업을 사용하여 인스턴스 플릿 기반 클러스터를 생성하는 경우 온디맨드 할당 전략을 lowest-price
로 설정하고 CapacityReservationOptions
에서 UsageStrategy
를 use-capacity-reservations-first
로, CapacityReservationOptions
에서 CapacityReservationResourceGroupArn
을 <your resource group
ARN>
으로 설정합니다. 자세한 내용은 Amazon EC2 사용 설명서의 용량 예약 작업을 참조하세요.
"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first", "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup" } } }
여기서 arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup
는 리소스 그룹 로 대체됩니다ARN.
Amazon을 사용하여 대상 용량 예약을 사용하여 인스턴스 EMR CLI 플릿 기반 클러스터를 생성할 수도 있습니다.
aws emr create-cluster \ --name 'targeted-CR-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=100,\ InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\ LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={UsageStrategy=use-capacity-reservations-first,CapacityReservationResourceGroupArn=arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup}}'}
여기서
-
targeted-CR-cluster
는 목표 용량 예약을 사용하는 클러스터의 이름으로 바꿉니다. -
subnet-22XXXX01
은 서브넷 ID로 바뀝니다. -
arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup
는 리소스 그룹 로 대체됩니다ARN.
사용 가능한 열린 용량 예약의 사용 방지
Amazon EMR 클러스터를 시작할 때 오픈 용량 예약을 예기치 않게 사용하지 않으려면 온디맨드 할당 전략을 lowest-price
로 설정하고 에 CapacityReservationPreference
대한 온디맨드 할당 전략을 CapacityReservationOptions
로 설정합니다none
. 그렇지 않으면 Amazon은 온디맨드 인스턴스의 용량 예약 기본 설정을 로 EMR 설정하고 최대한의 노력으로 사용 가능한 오픈 용량 예약을 사용하여 open
시도합니다.
"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "none" } } }
Amazon을 사용하여 오픈 용량 예약을 사용하지 않고도 인스턴스 EMR CLI 플릿 기반 클러스터를 생성할 수도 있습니다.
aws emr create-cluster \ --name 'none-CR-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=100,InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\ LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={CapacityReservationPreference=none}}'}
여기서
-
none-CR-cluster
는 열린 용량 예약을 사용하지 않는 클러스터 이름으로 바뀝니다. -
subnet-22XXXX01
은 서브넷 ID로 바뀝니다.
용량 예약 사용 시나리오
다음 시나리오에서 용량 예약을 사용하면 이점을 얻을 수 있습니다.
시나리오 1: 용량 예약을 사용하여 장기 실행 클러스터 로테이션
장기 실행 클러스터를 로테이션할 때 프로비저닝하는 새 인스턴스의 인스턴스 유형 및 가용 영역에 대한 엄격한 요구 사항이 있을 수 있습니다. 용량 예약을 사용하면 용량 보장을 통해 중단 없이 클러스터 로테이션을 완료할 수 있습니다.
시나리오 2: 용량 예약을 사용하여 연속된 단기 클러스터 프로비저닝
용량 예약을 사용하여 개별 워크로드에 대해 연속 단기 클러스터 그룹을 프로비저닝함으로써 클러스터를 종료할 때 다음 클러스터가 용량 예약을 사용할 수 있습니다. 목표 용량 예약을 사용하여 의도한 클러스터만 용량 예약을 사용하도록 할 수 있습니다.