인스턴스 플릿 구성 - 아마존 EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

인스턴스 플릿 구성

참고

인스턴스 플릿 구성은 Amazon EMR 릴리스 4.8.0 이상에서만 사용할 수 있으며 5.0.0과 5.0.3은 제외됩니다.

Amazon EMR 클러스터의 인스턴스 플릿 구성을 사용하면 Amazon EC2 인스턴스에 대한 다양한 프로비저닝 옵션을 선택할 수 있으며 클러스터의 각 노드 유형에 대한 유연하고 탄력적인 리소스 전략을 개발하는 데 도움이 됩니다.

각 인스턴스 플릿 구성에서 각 플릿 내 온디맨드 인스턴스스팟 인스턴스목표 용량을 지정합니다. 클러스터가 시작되면 Amazon은 목표가 충족될 때까지 인스턴스를 EMR 프로비저닝합니다. 가격 인상이나 인스턴스 장애로 인해 Amazon이 실행 중인 클러스터의 스팟 인스턴스를 EC2 회수하는 경우 Amazon은 해당 인스턴스를 지정된 인스턴스 유형 중 하나로 EMR 교체하려고 합니다. 따라서 스팟 가격이 급증하는 동안 용량을 더 쉽게 다시 획득할 수 있습니다.

Amazon이 목표를 달성할 때 사용할 Amazon EC2 인스턴스 유형을 플릿당 최대 5개 지정하거나, 또는 EMR Amazon과 온디맨드 EMR API 및 스팟 EC2 인스턴스 할당 전략을 사용하여 클러스터를 생성할 때는 플릿당 최대 30개의 Amazon 인스턴스 유형을 지정할 수 있습니다. AWS CLI

다른 가용 영역에 다중 서브넷을 선택할 수도 있습니다. Amazon은 클러스터를 EMR 시작하면 해당 서브넷을 검색하여 지정한 인스턴스와 구매 옵션을 찾습니다. Amazon이 하나 이상의 가용 영역에서 AWS 대규모 이벤트를 EMR 감지하면 Amazon은 영향을 받는 가용 영역에서 다른 곳으로 트래픽을 EMR 자동으로 라우팅하고 사용자가 선택한 사항에 따라 대체 가용 영역에 생성한 새 클러스터를 시작하려고 합니다. 클러스터 가용 영역 선택은 클러스터 생성 시에만 수행할 수 있습니다. 가용 영역이 중단되는 경우 기존 클러스터 노드는 새 가용 영역에서 자동으로 다시 시작되지 않습니다.

고려 사항

EMRAmazon에서 인스턴스 플릿을 사용할 때는 다음 항목을 고려하십시오.

  • 노드 유형(프라이머리, 코어, 태스크)당 하나의 인스턴스 플릿만 보유할 수 있습니다. 각 플릿에 대해 최대 5개의 Amazon EC2 인스턴스 유형을 지정할 수 있습니다 AWS Management Console ( AWS CLI 또는 Amazon EMR API 및 an을 사용하여 클러스터를 생성할 경우 인스턴스 플릿당 최대 30개 유형인스턴스 플릿에 대한 할당 전략).

  • EMRAmazon은 지정된 Amazon EC2 인스턴스 유형 중 일부 또는 전체를 선택하여 스팟 및 온디맨드 구매 옵션을 모두 사용하여 프로비저닝합니다.

  • 코어 플릿 및 태스크 플릿에 대해 스팟 및 온디맨드 인스턴스의 대상 용량을 설정할 수 있습니다. 대상 수에 CPU 포함되는 각 Amazon EC2 인스턴스에 할당된 v 또는 일반 단위를 사용하십시오. Amazon은 각 목표 용량이 완전히 충족될 때까지 인스턴스를 EMR 프로비저닝합니다. 프라이머리 플릿의 대상은 항상 하나입니다.

  • 1개의 서브넷(가용 영역) 또는 범위를 선택할 수 있습니다. 범위를 선택하면 Amazon은 가장 적합한 가용 영역에 용량을 EMR 프로비저닝합니다.

  • 스팟 인스턴스에 대한 대상 용량을 지정하는 경우:

    • 각 인스턴스 유형에 대해 최고 스팟 가격을 지정합니다. Amazon은 스팟 가격이 최고 스팟 가격보다 낮은 경우 스팟 인스턴스를 EMR 프로비저닝합니다. 사용자는 스팟 가격을 지불합니다. 꼭 최고 스팟 가격인 것은 아닙니다.

    • 각 플릿마다 스팟 인스턴스를 프로비저닝할 제한 시간을 정의합니다. Amazon에서 스팟 용량을 EMR 프로비저닝할 수 없는 경우 클러스터를 종료하거나 대신 온디맨드 용량 프로비저닝으로 전환할 수 있습니다. 이는 클러스터 프로비저닝에만 적용되며 크기 조정에는 적용되지 않습니다. 클러스터 크기 조정 프로세스 중에 제한 시간이 종료되면 프로비저닝되지 않은 스팟 요청은 온디맨드 용량으로 전송되지 않고 무효화됩니다.

  • 각 플릿에서 스팟 인스턴스에 대해 가격-용량 최적화, 용량 최적화, 최저 가격과 같은 할당 전략 중 하나를 지정하거나 모든 풀에서 다양한 옵션을 지정할 수 있습니다.

  • 각 플릿에 대해 온디맨드 인스턴스에 최저 가격 할당 전략을 적용할 수 있지만 온디맨드 인스턴스의 할당 전략은 사용자 지정할 수 없습니다.

  • 온디맨드 allocation strategy - lowest-price를 사용하는 각 플릿의 경우 용량 예약 옵션을 적용하도록 선택할 수 있습니다.

  • 클러스터를 시작하기 전에 서브넷 크기를 확인합니다. 태스크 플릿으로 클러스터를 프로비저닝하고 해당 서브넷에서 사용할 수 있는 IP 주소가 충분하지 않은 경우 오류와 함께 클러스터가 종료되는 대신 플릿이 일시 중지 상태로 전환됩니다. 이 문제를 방지하려면 서브넷의 IP 주소 수를 늘리는 것이 좋습니다.

인스턴스 플릿 옵션

아래 지침에 따라 인스턴스 플릿 옵션을 이해합니다.

대상 용량 설정

코어 플릿 및 작업 플릿에 원하는 대상 용량을 지정합니다. 이렇게 하면 Amazon에서 EMR 프로비저닝하는 온디맨드 인스턴스와 스팟 인스턴스의 수가 결정됩니다. 인스턴스를 지정할 때 각 인스턴스가 대상에 합산되는 수를 결정합니다. 온디맨드 인스턴스가 프로비저닝될 때는 온디맨드 대상으로 합산됩니다. 스팟 인스턴스도 마찬가지입니다. 코어 및 태스크 플릿과 달리, 프라이머리 플릿은 항상 하나의 인스턴스입니다. 그러므로 마스터 플릿의 대상 용량은 항상 하나입니다.

콘솔을 사용할 때 기본적으로 Amazon EC2 인스턴스 유형이 목표 용량 수로 사용됩니다. vCPUs 이를 일반 단위로 변경한 다음 각 EC2 인스턴스 유형의 개수를 지정할 수 있습니다. 를 사용할 때는 각 인스턴스 유형에 제네릭 단위를 수동으로 할당합니다. AWS CLI

중요

를 사용하여 인스턴스 유형을 선택할 경우 각 인스턴스 유형에 CPU 표시되는 v 수는 해당 인스턴스 유형의 YARN vcore 수가 아니라 해당 인스턴스 유형의 vcore 수입니다. AWS Management Console EC2 vCPUs 각 인스턴스 유형의 수에 vCPUs 대한 자세한 내용은 Amazon EC2 인스턴스 유형을 참조하십시오.

각 플릿에 대해 최대 5개의 Amazon EC2 인스턴스 유형을 지정합니다. AWS CLI 또는 EMR API Amazon을 사용하여 클러스터를 인스턴스 플릿에 대한 할당 전략 생성하고 생성하는 경우 인스턴스 플릿당 최대 30개의 EC2 인스턴스 유형을 지정할 수 있습니다. Amazon은 목표 용량을 충족하기 위해 이러한 EC2 인스턴스 유형의 조합을 EMR 선택합니다. Amazon은 목표 용량을 완전히 EMR 채우려고 하기 때문에 초과가 발생할 수 있습니다. 예를 들어, 주문 처리되지 않은 단위가 2개이고 Amazon에서 단위 수가 다섯 개인 인스턴스만 EMR 프로비저닝할 수 있는 경우에도 인스턴스는 계속 프로비저닝됩니다. 즉, 목표 용량이 유닛 3개를 초과한 것입니다.

목표 용량을 줄여 실행 중인 클러스터의 크기를 조정하면 Amazon은 애플리케이션 작업을 EMR 완료하려고 시도하고 새 목표에 맞춰 인스턴스를 종료합니다. 자세한 내용은 작업 완료 시 종료 단원을 참조하십시오.

시작 옵션

인스턴스 그룹마다 플릿의 각 인스턴스 유형에 대해 최고 스팟 가격을 지정합니다. 이 가격을 온디맨드 가격의 백분율로 설정하거나 구체적 금액(USD)으로 설정할 수 있습니다. Amazon은 가용 영역의 현재 스팟 가격이 최고 스팟 가격보다 낮은 경우 스팟 인스턴스를 EMR 프로비저닝합니다. 사용자는 스팟 가격을 지불합니다. 꼭 최고 스팟 가격인 것은 아닙니다.

참고

지속 시간이 정의된 스팟 인스턴스(스팟 블록이라고도 함)는 2021년 7월 1일부터 더 이상 신규 고객에게 제공되지 않습니다. 이전에 이 기능을 사용한 고객의 경우 2022년 12월 31일까지 지속 시간이 정의된 스팟 인스턴스를 계속 지원합니다.

Amazon EMR 5.12.1 이상에서는 최적화된 용량 할당으로 스팟 및 온디맨드 인스턴스 플릿을 시작할 수 있습니다. 이 할당 전략 옵션은 이전 AWS Management Console 버전에서 설정하거나 를 사용하여 설정할 수 있습니다. API RunJobFlow 새 콘솔에서는 할당 전략을 사용자 지정할 수 없습니다. 할당 전략 옵션을 사용하려면 추가 서비스 역할 권한이 필요합니다. 클러스터의 기본 Amazon EMR 서비스 역할과 관리형 정책 (EMR_DefaultRoleAmazonEMRServicePolicy_v2) 을 사용하는 경우 할당 전략 옵션에 대한 권한이 이미 포함되어 있습니다. 기본 Amazon EMR 서비스 역할 및 관리형 정책을 사용하지 않는 경우 이 옵션을 사용하려면 해당 역할을 추가해야 합니다. Amazon의 서비스 역할 EMR (EMR역할)을 참조하세요.

스팟 인스턴스에 대한 자세한 내용은 Amazon EC2 사용 설명서의 스팟 인스턴스를 참조하십시오. 온디맨드 인스턴스에 대한 자세한 내용은 Amazon EC2 사용 설명서의 온디맨드 인스턴스를 참조하십시오.

최저 가격 할당 전략으로 온디맨드 인스턴스 플릿을 시작하려는 경우 용량 예약을 사용할 수 있습니다. Amazon을 사용하여 용량 예약 옵션을 설정할 수 EMR API RunJobFlow 있습니다. 용량 예약에는 추가 서비스 역할 권한이 필요하며, 이 옵션을 사용하려면 해당 권한을 추가해야 합니다. 할당 전략 권한을 참조하세요. 새 콘솔에서는 용량 예약을 사용자 지정할 수 없습니다.

여러 서브넷(가용 영역) 옵션

인스턴스 플릿을 사용하는 경우VPC, 각각 다른 가용 영역에 해당하는 Amazon EC2 서브넷을 여러 개 지정할 수 있습니다. EC2-Classic을 사용하는 경우 가용 영역을 명시적으로 지정합니다. Amazon은 플릿 사양에 따라 인스턴스를 시작하는 데 가장 적합한 가용 영역을 EMR 식별합니다. 인스턴스는 항상 단일 가용 영역에서만 프로비저닝됩니다. 프라이빗 서브넷 또는 퍼블릭 서브넷을 선택할 수 있지만 두 서브넷을 함께 사용할 수는 없으며 지정하는 서브넷이 동일한 서브넷 내에 있어야 합니다. VPC

프라이머리 노드 구성

프라이머리 인스턴스 플릿은 단일 인스턴스이므로 이 인스턴스 플릿의 구성은 코어 및 태스크 인스턴스 플릿과는 조금 다릅니다. 인스턴스 하나로만 구성되므로 프라이머리 인스턴스 플릿에 대해 온디맨드 또는 스팟만 선택할 수 있습니다. 콘솔을 사용하여 인스턴스 집합을 생성하는 경우 선택하는 구매 옵션의 대상 용량이 1로 설정됩니다. 를 사용하는 AWS CLI경우 항상 적절하게 둘 중 하나 TargetSpotCapacity 또는 TargetOnDemandCapacity 1로 설정하십시오. 프라이머리 인스턴스 플릿에 대해 여전히 최대 5개의 인스턴스 유형을 선택할 수 있습니다(또는 온디맨드 또는 스팟 인스턴스의 할당 전략 옵션을 사용할 경우 최대 30개). 그러나 Amazon이 다양한 유형의 여러 인스턴스를 EMR 프로비저닝할 수 있는 코어 및 작업 인스턴스 플릿과 달리 Amazon은 단일 인스턴스 유형을 EMR 선택하여 기본 인스턴스 플릿에 프로비저닝합니다.

인스턴스 플릿에 대한 할당 전략

Amazon EMR 버전 5.12.1 이상에서는 각 클러스터 노드에 대해 온디맨드 및 스팟 인스턴스와 함께 할당 전략 옵션을 사용할 수 있습니다. 할당 전략을 갖춘 Amazon AWS CLI EMRAPI, Amazon 또는 Amazon EMR 콘솔을 사용하여 클러스터를 생성할 때 플릿당 최대 30개의 Amazon EC2 인스턴스 유형을 지정할 수 있습니다. 기본 Amazon EMR 클러스터 인스턴스 플릿 구성을 사용하면 플릿당 최대 5개의 인스턴스 유형을 가질 수 있습니다. 더 빠르게 클러스터를 프로비저닝하고, 더 정확하게 스팟 인스턴스를 할당하며 스팟 인스턴스 중단을 줄이려면 할당 전략 옵션을 사용하는 것이 좋습니다.

온디맨드 인스턴스에서 할당 전략

할당 전략을 사용하는 경우 온디맨드 인스턴스는 최저 가격 전략을 사용합니다. 그러면 가장 저렴한 인스턴스가 먼저 시작됩니다. 온디맨드 인스턴스를 시작할 때 계정에서 열린 용량 예약 또는 목표 용량 예약을 사용할 수 있습니다. 프라이머리, 코어 및 태스크 노드에 대해 열린 용량 예약을 사용할 수 있습니다. 인스턴스 플릿의 할당 전략을 사용하는 온디맨드 인스턴스를 사용하면 용량이 충분하지 않을 수 있습니다. 인스턴스 유형을 더 많이 지정하여 다각화하고 용량 부족이 발생할 가능성을 줄이는 것이 좋습니다. 자세한 내용은 인스턴스 플릿에서 용량 예약 사용 단원을 참조하십시오.

스팟 인스턴스에서 할당 전략

스팟 인스턴스에서는 다음 할당 전략 중 하나를 선택할 수 있습니다.

price-capacity-optimized(권장)

가격-용량 최적화 할당 전략은 스팟 인스턴스 풀에서 시작되는 인스턴스 수 대비 가용 용량이 가장 크고 가격이 가장 낮은 스팟 인스턴스를 시작합니다. 따라서 가격-용량 최적화 전략은 일반적으로 스팟 용량을 확보할 가능성이 더 크고 중단률도 낮습니다.

capacity-optimized

용량 최적화 할당 전략은 가용성이 가장 높은 풀로 가까운 시일 내에 중단될 가능성이 가장 낮은 스팟 인스턴스를 시작합니다. 다시 시작하는 작업과 관련된 중단 비용이 더 높을 수 있는 워크로드에 적합합니다. 이는 Amazon EMR 릴리스 6.9.0 이하에 대한 기본 전략입니다.

diversified

Amazon은 다양한 할당 전략을 사용하여 모든 스팟 용량 풀에 스팟 인스턴스를 EC2 배포합니다.

lowest-price

최저 가격 할당 전략은 가용 용량이 있는 최저 가격 풀에서 스팟 인스턴스를 시작합니다. 가장 낮은 가격의 풀에 사용 가능한 용량이 없는 경우 스팟 인스턴스는 사용 가능한 용량이 있는 다음으로 가장 낮은 가격의 풀에서 제공됩니다. 요청된 용량을 충족하기 전에 풀 용량이 부족해지면 Amazon EC2 플릿은 다음으로 저렴한 풀을 가져와 요청을 계속 이행합니다. 목표 용량이 충족되었는지 확인하기 위해 여러 풀에서 스팟 인스턴스를 받을 수도 있습니다. 이 전략은 인스턴스 가격만 고려하고 용량 가용성은 고려하지 않기 때문에 중단률이 높아질 수 있습니다.

할당 전략 권한

할당 전략 옵션에는 기본 Amazon EMR 서비스 역할 및 Amazon EMR 관리형 정책 (EMR_DefaultRoleAmazonEMRServicePolicy_v2) 에 자동으로 포함되는 여러 IAM 권한이 필요합니다. 클러스터에 사용자 지정 서비스 역할 또는 관리형 정책을 사용하는 경우 클러스터를 생성하기 전에 이러한 권한을 추가해야 합니다. 자세한 내용은 할당 전략 권한 단원을 참조하십시오.

온디맨드 할당 전략 옵션을 사용하면 선택적 온디맨드 용량 예약 (ODCRs) 을 사용할 수 있습니다. 용량 예약 옵션을 통해 Amazon EMR 클러스터에 예약 용량을 먼저 사용하기 위한 기본 설정을 지정할 수 있습니다. 이를 통해 공개 또는 ODCRs 타깃팅으로 이미 예약한 용량을 중요한 워크로드에 사용하도록 할 수 있습니다. 중요하지 않은 워크로드의 경우 용량 예약 기본 설정을 통해 예약 용량을 사용할지 여부를 지정할 수 있습니다.

용량 예약은 속성(인스턴스 유형, 플랫폼, 가용 영역)이 일치하는 인스턴스에서만 사용할 수 있습니다. 기본적으로 Amazon은 인스턴스 속성과 일치하는 온디맨드 인스턴스를 EMR 프로비저닝할 때 자동으로 오픈 용량 예약을 사용합니다. 용량 예약의 속성과 일치하는 인스턴스를 실행하고 있지 않으면 속성과 일치하는 인스턴스를 시작할 때까지 미사용 상태로 유지됩니다. 클러스터를 시작할 때 용량 예약을 사용하지 않으려면 시작 옵션에서 용량 예약 기본 설정을 없음으로 설정해야 합니다.

하지만 특정 워크로드에 용량 예약을 대상으로 지정할 수도 있습니다. 이렇게 하면 예약 용량으로 실행할 수 있는 인스턴스를 명시적으로 제어할 수 있습니다. 온디맨드 용량 예약에 대한 자세한 내용은 인스턴스 플릿에서 용량 예약 사용 섹션을 참조하세요.

할당 IAM 전략에 필요한 권한

온디맨드 또는 스팟 인스턴스 플릿에 대한 할당 전략 옵션을 사용하는 클러스터를 생성하려면 Amazon의 서비스 역할 EMR (EMR역할)에 추가 권한이 필요합니다.

이러한 권한은 기본 Amazon EMR 서비스 역할 EMR_DefaultRole및 Amazon EMR 관리형 정책에 자동으로 포함됩니다 AmazonEMRServicePolicy_v2.

클러스터에 사용자 지정 서비스 역할 또는 관리형 정책을 사용하는 경우 다음 권한을 추가해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DeleteLaunchTemplate", "ec2:CreateLaunchTemplate", "ec2:DescribeLaunchTemplates", "ec2:CreateLaunchTemplateVersion", "ec2:CreateFleet" ], "Resource": "*" } }

열린 용량 예약 또는 목표 용량 예약을 사용하는 클러스터를 생성하려면 다음과 같은 서비스 역할 권한이 필요합니다. 할당 전략 옵션을 사용하는 데 필요한 권한과 함께 이러한 권한을 포함해야 합니다.

예 서비스 역할 용량 예약에 대한 정책 문서

열린 용량 예약을 사용하려면 다음과 같은 추가 권한을 포함해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeCapacityReservations", "ec2:DescribeLaunchTemplateVersions", "ec2:DeleteLaunchTemplateVersions" ], "Resource": "*" } ] }

목표 용량 예약을 사용하려면 다음과 같은 추가 권한을 포함해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeCapacityReservations", "ec2:DescribeLaunchTemplateVersions", "ec2:DeleteLaunchTemplateVersions", "resource-groups:ListGroupResources" ], "Resource": "*" } ] }

클러스터의 인스턴스 플릿 구성

참고

Amazon EMR 콘솔을 더 쉽게 사용할 수 있도록 다시 디자인했습니다. 이전 콘솔과 새 콘솔 간 차이점에 대해서는 아마존 EMR 콘솔 섹션을 참조하세요.

New console
새 콘솔을 사용하여 인스턴스 플릿을 포함하는 클러스터를 생성하는 방법
  1. 에 AWS Management Console로그인하고 https://console.aws.amazon.com/emr 에서 아마존 EMR 콘솔을 엽니다.

  2. 왼쪽 탐색 창의 EMREC2켜짐에서 클러스터를 선택하고 클러스터 생성을 선택합니다.

  3. 클러스터 구성에서 인스턴스 플릿을 선택합니다.

  4. 노드 그룹에 대해 인스턴스 유형 추가를 선택하고 프라이머리 및 코어 인스턴스 플릿의 경우 최대 5개의 인스턴스 유형을 선택하고 태스크 인스턴스 플릿의 경우 최대 15개의 인스턴스 유형을 선택합니다. Amazon은 클러스터를 시작할 때 이러한 인스턴스 유형을 원하는 대로 조합하여 프로비저닝할 EMR 수 있습니다.

  5. 각 노드 그룹 유형에서 각 인스턴스 옆에 있는 작업 드롭다운 메뉴를 선택하여 다음 설정을 변경합니다.

    EBS볼륨 추가

    Amazon에서 EMR 프로비저닝한 후 인스턴스 유형에 연결할 EBS 볼륨을 지정합니다.

    가중치 기반 용량 편집

    코어 노드 그룹의 경우 이 값을 애플리케이션에 맞는 유닛 수로 변경합니다. YARNvCores 각 플릿 인스턴스 유형의 수는 기본 가중치 용량 단위로 사용됩니다. 프라이미러 노드의 가중치 기반 용량은 편집할 수 없습니다.

    최고 스팟 가격 편집

    플릿에서 인스턴스 유형에 대해 최고 스팟 가격을 지정합니다. 이 가격을 온디맨드 가격의 백분율로 설정하거나 구체적 금액(USD)으로 설정할 수 있습니다. 가용 영역의 현재 스팟 가격이 최고 스팟 가격보다 낮은 경우 Amazon은 스팟 인스턴스를 EMR 프로비저닝합니다. 사용자는 스팟 가격을 지불합니다. 꼭 최고 스팟 가격인 것은 아닙니다.

  6. 선택적으로 노드에 보안 그룹을 추가하려면 네트워킹 섹션에서 EC2보안 그룹 (방화벽) 을 확장하고 각 노드 유형에 대한 보안 그룹을 선택합니다.

  7. 선택적으로 할당 전략 옵션을 사용하려는 경우 할당 전략 적용 옆의 확인란을 선택하고 스팟 인스턴스에 지정하려는 할당 전략을 선택합니다. Amazon EMR 서비스 역할에 필요한 권한이 없는 경우 이 옵션을 선택해서는 안 됩니다. 자세한 내용은 인스턴스 플릿에 대한 할당 전략 단원을 참조하십시오.

  8. 클러스터에 적용할 다른 옵션을 선택합니다.

  9. 클러스터를 시작하려면 클러스터 생성을 선택합니다.

Old console
이전 콘솔을 사용하여 인스턴스 플릿을 포함하는 클러스터를 생성하는 방법
  1. 새 Amazon EMR 콘솔로 이동한 다음 측면 탐색에서 이전 콘솔로 전환을 선택합니다. 이전 콘솔로 전환할 때 예상되는 사항에 대한 자세한 내용은 이전 콘솔 사용을 참조하세요.

  2. 클러스터 생성을 선택합니다.

  3. 콘솔 창 상단에서 고급 옵션으로 이동을 선택하고 소프트웨어 구성 옵션을 입력한 후 다음을 선택합니다.

  4. 클러스터 구성에서 인스턴스 플릿을 선택합니다. 인스턴스 플릿 옵션을 선택하면 클러스터 노드 및 인스턴스 테이블에 온디맨드 및 스팟 인스턴스의 목표 용량을 지정하는 옵션이 나타납니다.

  5. Network(네트워크)에 값을 입력합니다. VPC네트워크용으로 선택하는 경우 단일 EC2서브넷을 선택하거나 CTRL +를 클릭하여 여러 Amazon EC2 서브넷을 선택합니다. 선택한 서브넷은 모두 동일한 유형(퍼블릭 또는 프라이빗)이어야 합니다. 한 개만 선택하는 경우 클러스터가 해당 서브넷에서 시작됩니다. 그룹을 선택하면 클러스터 시작 시 그룹에서 가장 적합한 서브넷이 선택됩니다.

    참고

    계정 및 지역에 따라 네트워크용 Launch to EC2 -Classic을 선택할 수 있는 옵션이 제공될 수 있습니다. 이 옵션을 선택하는 경우 EC2서브넷 대신 가용 영역에서 하나 이상을 선택하십시오. EC2 자세한 내용은 Amazon EC2사용 설명서의 Amazon EC2 VPC 및 Amazon을 참조하십시오.

  6. 할당 전략 옵션을 사용하려는 경우 할당 전략 옵션에서 할당 옵션을 적용하도록 확인란을 선택합니다. 자세한 내용은 인스턴스 플릿에 대한 할당 전략 단원을 참조하십시오.

  7. 인스턴스 플릿의 기본 이름을 변경하려면 각 노드 유형에서 연필 아이콘을 선택하고 친숙한 이름을 입력합니다. 태스크 인스턴스 플릿을 제거하려면 태스크 행 오른쪽에 있는 X 아이콘을 선택합니다.

  8. 플릿에 인스턴스 유형 추가 및 제거를 선택하고 프라이머리 및 코어 인스턴스 플릿 목록에서 최대 5개의 인스턴스 유형을 선택합니다. 태스크 인스턴스 플릿의 경우 최대 15개의 인스턴스 유형을 추가합니다. Amazon은 클러스터를 시작할 때 이러한 인스턴스 유형을 원하는 대로 조합하여 프로비저닝하도록 선택할 EMR 수 있습니다.

  9. 각 코어 및 태스크 인스턴스 유형에 대해 해당 인스턴스의 가중치 기반 용량(각 인스턴스는 X 유닛으로 계산)을 정의하는 방법을 선택합니다. 각 플릿 인스턴스 유형의 YARN vCores 수는 기본 가중치 용량 단위로 사용되지만 애플리케이션에 적합한 단위로 값을 변경할 수 있습니다.

  10. 목표 용량에서 플릿당 원하는 온디맨드 및 스팟 인스턴스의 총 수를 정의합니다. EMR플릿의 인스턴스가 온디맨드 및 스팟 목표 용량에 대해 요청된 단위를 충족하는지 확인합니다. 플릿에 온디맨드 또는 스팟 유닛이 지정되지 않은 경우 해당 플릿에 용량이 프로비저닝되지 않습니다.

  11. 플릿이 스팟 목표 용량으로 구성된 경우 최대 스팟 가격을 온디맨드 요금의 %로 입력하거나 달러 ($) 금액을 입력할 수 있습니다. USD

  12. 프로비저닝될 때 해당 인스턴스 유형에 EBS 볼륨을 연결하려면 EBS 스토리지 옆의 연필 아이콘을 선택한 다음 구성 옵션을 입력합니다EBS.

  13. 스팟 유닛에 대한 즉각적인 카운트를 설정한 경우 다음 지침에 따라 고급 스팟 옵션을 설정합니다.

    • 프로비저닝 타임아웃 - 이 설정을 사용하여 지정한 플릿 인스턴스 유형 중에서 스팟 인스턴스를 프로비저닝할 수 없을 때 Amazon이 EMR 수행하는 작업을 제어할 수 있습니다. 분 단위로 제한 시간을 입력한 다음 Terminate the cluster(클러스터 종료) 또는 Switch to provisioning On-Demand Instances(프로비저닝 온디맨드 인스턴스로 전환)를 선택합니다. 온디맨드 인스턴스로 전환하기로 선택한 경우 온디맨드 인스턴스에 할당된 용량이 스팟 인스턴스의 목표 용량에 포함되며, Amazon은 스팟 인스턴스의 목표 용량이 충족될 때까지 온디맨드 인스턴스를 EMR 프로비저닝합니다.

  14. 다음을 선택하고 다른 클러스터 설정을 수정한 후 다음을 선택합니다.

  15. 새 할당 전략 옵션을 적용하기로 선택한 경우 보안 옵션 설정에서 할당 전략 옵션에 필요한 권한이 포함된 EMR역할EC2인스턴스 프로필을 선택합니다. 그렇지 않으면 클러스터 생성에 실패합니다.

  16. Create Cluster를 선택합니다.

AWS CLI

를 사용하여 인스턴스 플릿이 포함된 클러스터를 생성하고 시작하려면 다음 AWS CLI지침을 따르십시오.

  • 인스턴스 집합으로 클러스터를 구성하고 시작하려면 create-cluster 명령을 --instance-fleet 파라미터와 함께 사용합니다.

  • 클러스터에 내 인스턴스 플릿에 대한 구성 세부 정보를 가져오려면 list-instance-fleets 명령을 사용합니다.

  • 생성 중인 AMIs 클러스터에 사용자 지정 Amazon Linux를 여러 개 추가하려면 각 InstanceType 사양과 함께 CustomAmiId 옵션을 사용하십시오. 요구 사항에 AMIs 맞게 여러 인스턴스 유형과 여러 사용자 지정으로 인스턴스 플릿 노드를 구성할 수 있습니다. 예제: 인스턴스 플릿 구성을 포함하는 클러스터 생성을 참조하세요.

  • 인스턴스 집합에 대한 대상 용량을 변경하려면 modify-instance-fleet 명령을 사용합니다.

  • 작업 인스턴스 집합이 아직 없는 클러스터에 작업 인스턴스 집합을 추가하려면(아직 없는 경우) add-instance-fleet 명령을 사용합니다.

  • add-instance-fleet 명령과 함께 CustomAmiId 인수를 사용하여 작업 인스턴스 플릿에 여러 사용자 지정을 추가할 AMIs 수 있습니다. 예제: 인스턴스 플릿 구성을 포함하는 클러스터 생성을 참조하세요.

  • 인스턴스 플릿을 생성할 때 할당 전략 옵션을 사용하려면 다음 섹션의 예제 정책 문서를 포함하도록 서비스 역할을 업데이트합니다.

  • 온디맨드 할당 전략을 포함하는 인스턴스 플릿을 생성할 때 용량 예약 옵션을 사용하려면 다음 섹션의 예제 정책 문서를 포함하도록 서비스 역할을 업데이트합니다.

  • 인스턴스 플릿은 기본 EMR 서비스 역할 및 Amazon EMR 관리형 정책 (EMR_DefaultRoleAmazonEMRServicePolicy_v2) 에 자동으로 포함됩니다. 클러스터에 사용자 지정 서비스 역할 또는 사용자 지정 관리형 정책을 사용하는 경우 다음 섹션에서 할당 전략에 대한 새 권한을 추가해야 합니다.

예제: 인스턴스 플릿 구성을 포함하는 클러스터 생성

다음 예는 결합할 수 있는 다양한 옵션과 함께 사용되는 create-cluster 명령을 보여 줍니다.

참고

이전에 기본 Amazon EMR 서비스 역할 및 EC2 인스턴스 프로필을 생성하지 않은 경우, create-cluster 명령을 사용하기 aws emr create-default-roles 전에 먼저 기본 Amazon 서비스 역할 및 인스턴스 프로필을 생성하십시오.

예: 온디맨드 기본, 단일 인스턴스 유형의 온디맨드 코어, Default VPC
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}']
예: 스팟 프라이머리, 단일 인스턴스 유형의 스팟 코어, 기본값 VPC
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}'] \ InstanceFleetType=CORE,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']
예: 온디맨드 기본, 단일 인스턴스 유형의 혼합 코어, 단일 서브넷 EC2
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=2,TargetSpotCapacity=6,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=2}']
예: 온디맨드 기본, 여러 가중치 기반 인스턴스 유형이 있는 스팟 코어, 스팟 제한 시간, 서브넷 범위 EC2
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetSpotCapacity=11,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\ '{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'}
예: 여러 가중치 기반 인스턴스 유형을 사용하는 온디맨드 기본, 혼합 코어 및 작업, 코어 스팟 인스턴스의 제한 시간, 서브넷 범위 EC2
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=8,TargetSpotCapacity=6,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\ '{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'} \ InstanceFleetType=TASK,TargetOnDemandCapacity=3,TargetSpotCapacity=3,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}']
예: 스팟 프라이머리, 코어 또는 태스크 없음, Amazon EBS 구성, 기본값 VPC
aws emr create-cluster --release-label Amazon EMR 5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetSpotCapacity=1,\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=60,TimeoutAction=TERMINATE_CLUSTER}'},\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,\ EbsConfiguration={EbsOptimized=true,EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=gp2,\ SizeIn GB=100}},{VolumeSpecification={VolumeType=io1,SizeInGB=100,Iop s=100},VolumesPerInstance=4}]}}']
예: 여러 사용자 지정AMIs, 다중 인스턴스 유형, 온디맨드 기본, 온디맨드 코어
aws emr create-cluster --release-label Amazon EMR 5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}']
예: 여러 인스턴스 유형과 여러 사용자 지정을 사용하여 실행 중인 클러스터에 작업 노드 추가 AMIs
aws emr add-instance-fleet --cluster-id j-123456 --release-label Amazon EMR 5.3.1 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleet \ InstanceFleetType=Task,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456}',\ '{InstanceType=m6g.xlarge,CustomAmiId=ami-234567}']
예: JSON 구성 파일 사용

파일에서 인스턴스 플릿 파라미터를 구성한 다음 이 JSON JSON 파일을 인스턴스 플릿의 유일한 파라미터로 참조할 수 있습니다. 예를 들어, 다음 명령은 JSON 구성 파일을 참조합니다. my-fleet-config.json

aws emr create-cluster --release-label emr-5.30.0 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets file://my-fleet-config.json

The my-fleet-config.json 파일은 다음 예와 같이 기본, 코어 및 작업 인스턴스 플릿을 지정합니다. 코어 인스턴스 플릿은 최고 스팟 가격 (BidPrice) 을 온디맨드의 백분율로 사용하는 반면, 작업 및 기본 인스턴스 플릿은 최대 스팟 가격 (BidPriceAsPercentageofOnDemandPrice) 을 문자열로 사용합니다. USD

[ { "Name": "Masterfleet", "InstanceFleetType": "MASTER", "TargetSpotCapacity": 1, "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "SWITCH_TO_ON_DEMAND" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] }, { "Name": "Corefleet", "InstanceFleetType": "CORE", "TargetSpotCapacity": 1, "TargetOnDemandCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first", "CapacityReservationResourceGroupArn": "String" } }, "SpotSpecification": { "AllocationStrategy": "capacity-optimized", "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPriceAsPercentageOfOnDemandPrice": 100 } ] }, { "Name": "Taskfleet", "InstanceFleetType": "TASK", "TargetSpotCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "none" } }, "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] } ]

인스턴스 플릿의 대상 용량 수정

modify-instance-fleet 명령을 사용하여 인스턴스 집합에 대해 새 대상 용량을 지정합니다. 클러스터 ID와 인스턴스 집합 ID를 지정해야 합니다. list-instance-fleets명령을 사용하여 인스턴스 플릿을 검색합니다. IDs

aws emr modify-instance-fleet --cluster-id <cluster-id> \ --instance-fleet \ InstanceFleetId='<instance-fleet-id>',TargetOnDemandCapacity=1,TargetSpotCapacity=1

클러스터에 태스크 인스턴스 플릿 추가

클러스터에 프라이머리 및 코어 인스턴스 플릿만 있는 경우 add-instance-fleet 명령을 사용하여 태스크 인스턴스 플릿을 추가할 수 있습니다. 이 방법으로만 작업 인스턴스 집합을 추가할 수 있습니다.

aws emr add-instance-fleet --cluster-id <cluster-id> --instance-fleet \ InstanceFleetType=TASK,TargetSpotCapacity=1,\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=20,TimeoutAction=TERMINATE_CLUSTER}'},\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']

클러스터 내 인스턴스 플릿의 구성 세부 정보 가져오기

list-instance-fleets 명령을 사용하여 클러스터 내 인스턴스 집합의 구성 세부 정보를 가져옵니다. 이 명령은 클러스터 ID를 입력으로 사용합니다. 다음 예에제서는 프라이머리 태스크 인스턴스 그룹 및 코어 태스크 인스턴스 그룹을 포함하는 클러스터에 대한 이 명령과 관련 출력을 보여줍니다. 전체 응답 구문은 Amazon EMR API 참조를 참조하십시오 ListInstanceFleets.

list-instance-fleets --cluster-id <cluster-id>
{ "InstanceFleets": [ { "Status": { "Timeline": { "ReadyDateTime": 1488759094.637, "CreationDateTime": 1488758719.817 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 6, "Name": "CORE", "InstanceFleetType": "CORE", "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 60, "TimeoutAction": "TERMINATE_CLUSTER" } }, "ProvisionedOnDemandCapacity": 2, "InstanceTypeSpecifications": [ { "BidPrice": "0.5", "InstanceType": "m5.xlarge", "WeightedCapacity": 2 } ], "Id": "if-1ABC2DEFGHIJ3" }, { "Status": { "Timeline": { "ReadyDateTime": 1488759058.598, "CreationDateTime": 1488758719.811 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 0, "Name": "MASTER", "InstanceFleetType": "MASTER", "ProvisionedOnDemandCapacity": 1, "InstanceTypeSpecifications": [ { "BidPriceAsPercentageOfOnDemandPrice": 100.0, "InstanceType": "m5.xlarge", "WeightedCapacity": 1 } ], "Id": "if-2ABC4DEFGHIJ4" } ] }