기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
인스턴스 그룹 구성을 사용하는 경우 각 노드 유형(마스터, 코어 또는 작업)은 인스턴스에 대해 동일한 인스턴스 유형 및 구매 옵션으로 구성됩니다(온디맨드 또는 스팟). 인스턴스 그룹 생성 시 이러한 설정을 지정합니다. 나중에 변경할 수 없습니다. 하지만 동일한 유형 및 구매 옵션의 인스턴스를 코어 및 작업 인스턴스 그룹에 추가할 수 있습니다. 또한 인스턴스를 제거할 수도 있습니다.
클러스터의 온디맨드 인스턴스가 계정에서 사용할 수 있는 열린 용량 예약 속성(인스턴스 유형, 플랫폼, 테넌시 및 가용 영역)과 일치하면 용량 예약이 자동으로 적용됩니다. 프라이머리, 코어 및 태스크 노드에 대해 열린 용량 예약을 사용할 수 있습니다. 하지만 인스턴스 그룹을 사용하여 클러스터를 프로비저닝할 때 목표 용량 예약을 사용할 수 없으며, 속성이 일치하는 열린 용량 예약으로 시작하지 않도록 인스턴스를 막을 수도 없습니다. 목표 용량 예약을 사용하거나 인스턴스가 열린 용량 예약으로 시작되지 않도록 하려면 대신 인스턴스 플릿을 사용합니다. 자세한 내용은 Amazon EMR의 인스턴스 플릿에서 용량 예약 사용 단원을 참조하십시오.
클러스터를 생성한 후 다른 인스턴스 유형을 추가하려면 추가 작업 인스턴스 그룹을 추가하면 됩니다. 각 인스턴스 그룹에 대하여 다른 인스턴스 유형과 구매 옵션을 선택할 수 있습니다. 자세한 내용은 Amazon EMR 클러스터 조정을 사용하여 워크로드 변경에 맞게 조정 단원을 참조하십시오.
인스턴스를 시작할 때 온디맨드 인스턴스의 용량 예약 기본 설정은 기본적으로 open
으로 설정되며, 이를 통해 속성(인스턴스 유형, 플랫폼, 가용 영역)이 일치하는 모든 열린 용량 예약에서 실행됩니다. 온디맨드 용량 예약에 대한 자세한 내용은 Amazon EMR의 인스턴스 플릿에서 용량 예약 사용 섹션을 참조하세요.
이 단원에서는 균일한 인스턴스 그룹으로 클러스터를 만드는 방법에 대해 설명합니다. 인스턴스 수동 추가/제거 또는 자동 조정을 통한 기존 인스턴스 그룹 수정에 대한 자세한 내용은 Amazon EMR 클러스터 관리 단원을 참조하십시오.
콘솔을 사용하여 균일한 인스턴스 그룹 구성
새 콘솔을 사용하여 인스턴스 그룹을 포함하는 클러스터를 생성하는 방법
-
에 로그인 AWS Management Console하고 https://console.aws.amazon.com/emr
Amazon EMR 콘솔을 엽니다. -
왼쪽 탐색 창의 EMR on EC2에서 클러스터를 선택하고 클러스터 생성을 선택합니다.
-
클러스터 구성에서 인스턴스 그룹을 선택합니다.
-
노드 그룹 아래에는 각 노드 그룹 유형에 대한 섹션이 있습니다. 프라이머리 노드 그룹의 경우 프라이머리 노드 3개를 사용하려는 경우 여러 프라이머리 노드 사용 확인란을 선택합니다. 스팟 구매를 사용하려면 스팟 구매 옵션 사용 확인란을 선택합니다.
-
프라이머리 및 코어 노드 그룹의 경우 인스턴스 유형 추가를 선택하고 최대 5개의 인스턴스 유형을 선택합니다. 태스크 그룹의 경우 인스턴스 유형 추가를 선택하고 최대 15개의 인스턴스 유형을 선택합니다. Amazon EMR은 클러스터를 시작할 때 이러한 인스턴스 유형을 원하는 대로 조합하여 프로비저닝할 수 있습니다.
-
각 노드 그룹 유형에서 각 인스턴스 옆에 있는 작업 드롭다운 메뉴를 선택하여 다음 설정을 변경합니다.
- EBS 볼륨 추가
-
Amazon EMR에서 프로비저닝한 후 인스턴스 유형에 연결할 EBS 볼륨을 지정합니다.
- 최고 스팟 가격 편집
-
플릿에서 인스턴스 유형에 대해 최고 스팟 가격을 지정합니다. 이 가격을 온디맨드 가격의 백분율로 설정하거나 구체적 금액(USD)으로 설정할 수 있습니다. 가용 영역의 현재 스팟 가격이 최고 스팟 가격 미만인 경우 Amazon EMR은 스팟 인스턴스를 프로비저닝합니다. 사용자는 스팟 가격을 지불합니다. 꼭 최고 스팟 가격인 것은 아닙니다.
-
선택적으로 노드 구성을 확장하여 JSON 구성을 입력하거나 Amazon S3에서 JSON을 로드합니다.
-
클러스터에 적용할 다른 옵션을 선택합니다.
-
클러스터를 시작하려면 클러스터 생성을 선택합니다.
AWS CLI 를 사용하여 균일한 인스턴스 그룹으로 클러스터 생성
AWS CLI를 사용하여 클러스터의 인스턴스 그룹 구성을 지정하려면 --instance-groups
파라미터와 함께 create-cluster
명령을 사용합니다. 인스턴스 그룹에 BidPrice
인수를 지정하지 않은 경우 Amazon EMR은 온디맨드 인스턴스 옵션을 가정합니다. 온디맨드 인스턴스 및 다양한 클러스터 옵션을 사용하여 균일한 인스턴스 그룹을 시작하는 create-cluster
명령의 예제를 보려면 명령줄에 aws emr create-cluster help
를 입력하거나 AWS CLI 명령 참조에서 create-cluster를 참조하세요.
를 사용하여 스팟 인스턴스 AWS CLI 를 사용하는 클러스터에서 균일한 인스턴스 그룹을 생성할 수 있습니다. 제공된 스팟 가격은 가용 영역에 따라 달라집니다. CLI 또는 API를 사용하는 경우 --ec2-attributes
파라미터의 SubnetID
인수 또는 AvailabilityZone
인수(EC2-classic 네트워크를 사용하는 경우)를 사용하여 가용 영역을 지정할 수 있습니다. 선택한 가용 영역이나 서브넷이 클러스터에 적용되므로 모든 인스턴스 그룹에 사용됩니다. 가용 영역이나 서브넷을 명시적으로 지정하지 않는 경우 Amazon EMR이 클러스터를 시작할 때 최저 스팟 가격으로 가용 영역을 선택합니다.
다음 예제에서는 모두 스팟 인스턴스를 사용하는 프라이머리, 코어 및 두 태스크 인스턴스 그룹을 생성하는 create-cluster
명령을 보여줍니다. myKey
를 Amazon EC2 키 페어 이름으로 바꿉니다.
참고
가독성을 위해 Linux 줄 연속 문자(\)가 포함됩니다. Linux 명령에 사용하거나 제외할 수 있습니다. Windows에서는 제외시키거나 캐럿(^)으로 바꿉니다.
aws emr create-cluster --name "MySpotCluster
" \
--release-label emr-7.7.0
\
--use-default-roles \
--ec2-attributes KeyName=myKey
\
--instance-groups \
InstanceGroupType=MASTER
,InstanceType=m5.xlarge
,InstanceCount=1
,BidPrice=0.25
\
InstanceGroupType=CORE
,InstanceType=m5.xlarge
,InstanceCount=2
,BidPrice=0.03
\
InstanceGroupType=TASK
,InstanceType=m5.xlarge
,InstanceCount=4
,BidPrice=0.03
\
InstanceGroupType=TASK
,InstanceType=m5.xlarge
,InstanceCount=2
,BidPrice=0.04
CLI를 사용하여 인스턴스 그룹의 각 인스턴스 유형에 대해 고유한 사용자 지정 AMI를 지정하는 균일한 인스턴스 그룹 클러스터를 생성할 수 있습니다. 이렇게 하면 동일한 인스턴스 그룹에서 서로 다른 인스턴스 아키텍처를 사용할 수 있습니다. 각 인스턴스 유형은 아키텍처가 일치하는 사용자 지정 AMI를 사용해야 합니다. 예를 들어 x86_64 아키텍처 사용자 지정 AMI를 사용하여 m5.xlarge 인스턴스 유형을 구성하고, 대응하는 AWS AARCH64
(ARM) 아키텍처 사용자 지정 AMI를 사용하여 m6g.xlarge 인스턴스 유형을 구성할 수 있습니다.
다음 예제에서는 각각 고유한 사용자 지정 AMI를 사용하여 두 개의 인스턴스 유형으로 생성된 균일한 인스턴스 그룹 클러스터를 보여줍니다. 사용자 지정 AMI는 클러스터 수준이 아닌 인스턴스 유형 수준에서만 지정됩니다. 인스턴스 유형 AMI와 클러스터 수준의 AMI 간 충돌(이 충돌로 인해 클러스터가 시작되지 않음)을 방지하기 위해서입니다.
aws emr create-cluster --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-groups \ InstanceGroupType=MASTER,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456 \ InstanceGroupType=CORE,InstanceType=m6g.xlarge,InstanceCount=1,CustomAmiId=ami-234567
실행 중인 클러스터에 추가하는 인스턴스 그룹에 다중 사용자 지정 AMI를 추가할 수 있습니다. 다음 예제와 같이 add-instance-groups
명령과 함께 CustomAmiId
인수를 사용할 수 있습니다.
aws emr add-instance-groups --cluster-id j-123456 \ --instance-groups \ InstanceGroupType=Task,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456
Java SDK를 사용하여 인스턴스 그룹 생성
클러스터에 대해 인스턴스 그룹의 구성을 지정하는 InstanceGroupConfig
개체를 인스턴스화할 수 있습니다. 스팟 인스턴스를 사용하려면 withBidPrice
개체에 대해 withMarket
및 InstanceGroupConfig
속성을 설정합니다. 다음 코드는 스팟 인스턴스를 실행하는 프라이머리, 코어 및 태스크 인스턴스 그룹을 정의하는 방법을 보여줍니다.
InstanceGroupConfig instanceGroupConfigMaster = new InstanceGroupConfig()
.withInstanceCount(1)
.withInstanceRole("MASTER")
.withInstanceType("m4.large")
.withMarket("SPOT")
.withBidPrice("0.25");
InstanceGroupConfig instanceGroupConfigCore = new InstanceGroupConfig()
.withInstanceCount(4)
.withInstanceRole("CORE")
.withInstanceType("m4.large")
.withMarket("SPOT")
.withBidPrice("0.03");
InstanceGroupConfig instanceGroupConfigTask = new InstanceGroupConfig()
.withInstanceCount(2)
.withInstanceRole("TASK")
.withInstanceType("m4.large")
.withMarket("SPOT")
.withBidPrice("0.10");