실행 중인 클러스터의 크기를 수동으로 조정 - Amazon EMR

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

실행 중인 클러스터의 크기를 수동으로 조정

AWS Management Console AWS CLI, 또는 Amazon EMR API를 사용하여 실행 중인 클러스터의 코어 및 작업 인스턴스 그룹과 인스턴스 플릿에서 인스턴스를 추가하고 제거할 수 있습니다. 클러스터에서 인스턴스 그룹을 사용하는 경우, 인스턴스 개수를 명시적으로 변경해 줍니다. 인스턴스 플릿을 사용하는 클러스터라면 온디맨드 인스턴스 및 스팟 인스턴스의 대상 유닛을 변경할 수 있습니다. 그러면 인스턴스 플릿이 새 대상에 맞춰 인스턴스를 추가하거나 제거합니다. 자세한 정보는 인스턴스 플릿 옵션을 참조하세요. 애플리케이션은 새로 프로비저닝된 Amazon EC2 인스턴스가 사용 가능해지는 즉시 해당 인스턴스로 노드를 호스팅할 수 있습니다. 인스턴스가 제거되면 Amazon EMR은 작업이 중단되지 않고 데이터 손실이 방지되는 방식으로 작업을 종료합니다. 자세한 정보는 작업 완료 시 종료을 참조하세요.

콘솔을 사용하여 클러스터 크기 조정

Amazon EMR 콘솔을 사용하여 실행 중인 클러스터의 크기를 조정할 수 있습니다.

Console
새 콘솔을 사용하여 기존 클러스터의 인스턴스 개수를 변경하는 방법
  1. 에 로그인하고 AWS Management Console https://console.aws.amazon.com/emr 에서 Amazon EMR 콘솔을 엽니다.

  2. 왼쪽 탐색 창의 EMR on EC2에서 클러스터를 선택하고 업데이트할 클러스터를 선택합니다. 클러스터가 실행 중이어야 합니다. 프로비저닝 또는 종료된 클러스터의 크기는 조정할 수 없습니다.

  3. 클러스터 세부 정보 페이지의 인스턴스 탭에서 인스턴스 그룹 패널을 확인합니다.

  4. 기존 인스턴스 그룹의 크기를 조정하려면 크기를 조정하려는 코어 또는 태스크 인스턴스 그룹 옆의 라디오 버튼을 선택한 다음, 인스턴스 그룹 크기 조정을 선택합니다. 인스턴스 그룹의 새 인스턴스 수를 지정하고 크기 조정을 선택합니다.

    참고

    실행 중인 인스턴스 그룹의 크기를 줄이는 경우 Amazon EMR은 데이터 손실을 최소화하기 위해 그룹에서 제거할 인스턴스를 지능적으로 선택합니다. 크기 조정 작업을 보다 세밀하게 제어하기 위해 인스턴스 그룹의 ID를 선택하고 제거하려는 인스턴스를 선택한 다음, 종료 옵션을 사용할 수 있습니다. 지능형 스케일 다운 동작에 대한 자세한 내용은 클러스터 스케일 다운 섹션을 참조하세요.

  5. 크기 조정 작업을 취소하려면 크기 조정 중 상태인 인스턴스 그룹의 라디오 버튼을 선택한 다음, 목록의 작업에서 크기 조정 중지를 선택하면 됩니다.

  6. 워크로드 증가에 대응하여 클러스터에 하나 이상의 태스크 인스턴스 그룹을 추가하려면 목록의 작업에서 태스크 인스턴스 그룹 추가를 선택합니다. Amazon EC2 인스턴스 유형을 선택하고 태스크 그룹의 인스턴스 수를 입력한 다음, 태스크 인스턴스 그룹 추가를 선택하여 클러스터의 인스턴스 그룹 패널로 돌아갑니다.

노드 수를 변경하면 인스턴스 그룹의 상태가 업데이트됩니다. 요청한 변경이 완료되면 상태실행 중이 됩니다.

다음을 사용하여 클러스터 크기를 조정합니다. AWS CLI

를 사용하여 실행 중인 클러스터의 AWS CLI 크기를 조정할 수 있습니다. 작업 노드 수를 늘리거나 줄일 수 있고, 실행 중인 클러스터의 코어 노드 수를 늘릴 수 있습니다. AWS CLI 또는 API를 사용하여 코어 인스턴스 그룹의 인스턴스를 종료할 수도 있습니다. 이 작업은 각별히 주의하여 수행해야 합니다. 코어 인스턴스 그룹에서 인스턴스를 종료하면 데이터가 손실될 위험이 있으며, 인스턴스가 자동으로 대체되지 않기 때문입니다.

코어 및 태스크 그룹의 크기를 조정하는 것 외에도 AWS CLI를 사용하여 하나 이상의 태스크 인스턴스 그룹을 실행 중인 클러스터에 추가할 수도 있습니다.

를 사용하여 인스턴스 수를 변경하여 클러스터 크기를 조정하려면 AWS CLI

코어 그룹이나 작업 그룹에 인스턴스를 추가할 수 있으며 파라미터가 포함된 AWS CLI modify-instance-groups 하위 명령을 사용하여 작업 그룹에서 인스턴스를 제거할 수 있습니다. InstanceCount 코어 또는 작업 그룹에 인스턴스를 추가하려면 InstanceCount를 늘리십시오. 작업 그룹에서 인스턴스 수를 줄이려면 InstanceCount를 줄이십시오. 작업 그룹의 인스턴스 수를 0으로 변경하면 모든 인스턴스를 제거하지만 인스턴스 그룹은 제거하지 않습니다.

  • 작업 인스턴스 그룹의 인스턴스 수를 3에서 4로 늘리려면 다음 명령을 입력하고 ig-31JXXXXXXBTO를 인스턴스 그룹 ID로 바꿉니다.

    aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-31JXXXXXXBTO,InstanceCount=4

    InstanceGroupId를 검색하려면 describe-cluster 하위 명령을 사용하십시오. 출력은 각 인스턴스 그룹의 ID를 포함하는 Cluster라는 JSON 객체입니다. 이 명령을 사용하려면 클러스터 ID(aws emr list-clusters 명령 또는 콘솔을 사용하여 검색할 수 있음)가 필요합니다. 인스턴스 그룹 ID를 검색하려면 다음 명령을 입력하고 j-2AXXXXXXGAPLF를 클러스터 ID로 바꿉니다.

    aws emr describe-cluster --cluster-id j-2AXXXXXXGAPLF

    를 AWS CLI사용하면 --modify-instance-groups 하위 명령을 사용하여 코어 인스턴스 그룹의 인스턴스를 종료할 수도 있습니다.

    주의

    EC2InstanceIdsToTerminate는 주의해서 지정해야 합니다. 인스턴스는 실행 중인 애플리케이션의 상태에 관계없이 즉시 종료되며 인스턴스는 자동으로 대체되지 않습니다. 이는 클러스터의 축소 동작 구성에 관계없이 적용됩니다. 이 방법으로 인스턴스를 종료하면 데이터 손실과 예기치 않은 클러스터 동작이 발생할 위험이 있습니다.

    특정 인스턴스를 종료하려면 인스턴스 그룹 ID(aws emr describe-cluster --cluster-id 하위 명령에 의해 반환됨) 및 인스턴스 ID(aws emr list-instances --cluster-id 하위 명령에 의해 반환됨)가 있어야 하며, 다음 명령을 입력해야 합니다. 그리고 ig-6RXXXXXX07SA를 인스턴스 그룹 ID로 바꾸고 i-f9XXXXf2를 인스턴스 ID로 바꾸어야 합니다.

    aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-6RXXXXXX07SA,EC2InstanceIdsToTerminate=i-f9XXXXf2

    에서 Amazon EMR 명령을 사용하는 방법에 대한 자세한 내용은 을 AWS CLI참조하십시오. https://docs.aws.amazon.com/cli/latest/reference/emr

를 사용하여 작업 인스턴스 그룹을 추가하여 클러스터 크기를 조정하려면 AWS CLI

를 사용하면 AWS CLI하위 명령을 사용하여 1~48개의 작업 인스턴스 그룹을 클러스터에 추가할 수 있습니다. --add-instance-groups 태스크 인스턴스 그룹은 프라이머리 인스턴스 그룹 및 코어 인스턴스 그룹을 포함하는 클러스터에만 추가할 수 있습니다. 를 사용하면 하위 명령을 AWS CLI사용할 때마다 작업 인스턴스 그룹을 최대 5개까지 추가할 수 있습니다. --add-instance-groups

  1. 단일 작업 인스턴스 그룹을 클러스터에 추가하려면 다음 명령을 입력하고 j-JXBXXXXXX37R을 클러스터 ID로 바꿉니다.

    aws emr add-instance-groups --cluster-id j-JXBXXXXXX37R --instance-groups InstanceCount=6,InstanceGroupType=task,InstanceType=m5.xlarge
  2. 여러 작업 인스턴스 그룹을 클러스터에 추가하려면 다음 명령을 입력하고 j-JXBXXXXXX37R을 클러스터 ID로 바꿉니다. 단일 명령으로 최대 5개의 작업 인스턴스 그룹을 추가할 수 있습니다.

    aws emr add-instance-groups --cluster-id j-JXBXXXXXX37R --instance-groups InstanceCount=6,InstanceGroupType=task,InstanceType=m5.xlarge InstanceCount=10,InstanceGroupType=task,InstanceType=m5.xlarge

    에서 Amazon EMR 명령을 사용하는 방법에 대한 자세한 내용은 을 AWS CLI참조하십시오. https://docs.aws.amazon.com/cli/latest/reference/emr

크기 조정 중단

Amazon EMR 4.1.0 이상 버전을 사용하면 기존 크기 조정 작업 중에 크기 조정을 실행할 수 있습니다. 또한 이전에 제출한 크기 조정 요청을 중지하거나 이전 요청이 완료될 때까지 기다리지 않고 이전 요청을 재정의하는 새 요청을 제출할 수 있습니다. 콘솔의 기존 크기 조정을 중지하거나 ModifyInstanceGroups API 직접 호출을 사용하여 현재 개수를 클러스터의 대상 개수로 사용할 수도 있습니다.

다음 스크린샷은 크기 조정 중이지만 Stop(중지)을 선택하여 중지할 수 있는 작업 인스턴스 그룹을 보여줍니다.

를 사용하여 크기 조정을 중단하려면 AWS CLI

를 사용하여 하위 명령으로 크기 조정을 AWS CLI 중지할 수 있습니다. modify-instance-groups 인스턴스 그룹에 6개의 인스턴스가 있고 이 수를 10개로 늘리려 한다고 가정해 보십시오. 나중에 이 요청을 취소하기로 결정했습니다.

  • 최초 요청:

    aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-myInstanceGroupId,InstanceCount=10

    첫 번째 요청을 중지하는 두 번째 요청:

    aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-myInstanceGroupId,InstanceCount=6
참고

이 프로세스는 비동기식이므로 이후 요청이 처리되기 전에 인스턴스 수가 이전 API 요청과 관련하여 변경되는 것을 볼 수 있습니다. 축소되는 경우 노드에서 실행 중인 작업이 있으면 노드가 해당 작업을 완료할 때까지 인스턴스 그룹이 축소되지 않을 수도 있습니다.

일시 중단됨 상태

인스턴스 그룹은 새 클러스터 노드를 시작하는 동안 너무 많은 오류가 발생하면 일시 중단됨 상태가 됩니다. 예를 들어, 부트스트랩 작업을 수행하는 동안 새 노드에 장애가 발생하면 인스턴스 그룹은 새 노드를 계속 프로비저닝하지 않고 일시 중단됨 상태가 됩니다. 기본 문제를 해결한 후 클러스터 인스턴스 그룹에서 원하는 노드 수를 다시 설정하면 인스턴스 그룹이 노드 할당을 다시 시작합니다. 인스턴스 그룹을 수정하면 노드를 다시 프로비저닝하도록 Amazon EMR에 지시합니다. 실행 중인 노드는 다시 시작되거나 종료되지 않습니다.

에서 AWS CLIlist-instances 하위 명령은 하위 명령과 마찬가지로 모든 인스턴스와 해당 상태를 반환합니다. describe-cluster Amazon EMR이 인스턴스 그룹에 대한 오류를 감지하면 그룹의 상태를 SUSPENDED로 변경합니다.

를 사용하여 클러스터를 SUSPUSEND 상태로 재설정하려면 AWS CLI

describe-cluster 파라미터와 함께 --cluster-id 하위 명령을 입력하여 클러스터의 인스턴스 상태를 봅니다.

  • 클러스터의 모든 인스턴스 및 인스턴스 그룹에 대한 정보를 보려면 다음 명령을 입력하고 j-3KVXXXXXXY7UG를 클러스터 ID로 바꿉니다.

    aws emr describe-cluster --cluster-id j-3KVXXXXXXY7UG

    출력에는 인스턴스 그룹 및 인스턴스 상태에 대한 정보가 표시됩니다.

    { "Cluster": { "Status": { "Timeline": { "ReadyDateTime": 1413187781.245, "CreationDateTime": 1413187405.356 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "Ec2InstanceAttributes": { "Ec2AvailabilityZone": "us-west-2b" }, "Name": "Development Cluster", "Tags": [], "TerminationProtected": false, "RunningAmiVersion": "3.2.1", "NormalizedInstanceHours": 16, "InstanceGroups": [ { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1413187775.749, "CreationDateTime": 1413187405.357 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "MASTER", "InstanceGroupType": "MASTER", "InstanceType": "m5.xlarge", "Id": "ig-3ETXXXXXXFYV8", "Market": "ON_DEMAND", "RunningInstanceCount": 1 }, { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1413187781.301, "CreationDateTime": 1413187405.357 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "CORE", "InstanceGroupType": "CORE", "InstanceType": "m5.xlarge", "Id": "ig-3SUXXXXXXQ9ZM", "Market": "ON_DEMAND", "RunningInstanceCount": 1 } ... }

    특정 인스턴스 그룹에 대한 정보를 보려면 list-instances--cluster-id 파라미터와 함께 --instance-group-types 하위 명령을 입력합니다. 프라이머리, 코어 또는 태스크 그룹에 대한 정보를 볼 수 있습니다.

    aws emr list-instances --cluster-id j-3KVXXXXXXY7UG --instance-group-types "CORE"

    클러스터를 modify-instance-groups 상태로 재설정하려면 --instance-groups 파라미터와 함께 SUSPENDED 하위 명령을 사용합니다. describe-cluster 하위 명령에서 인스턴스 그룹 ID를 반환합니다.

    aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-3SUXXXXXXQ9ZM,InstanceCount=3

클러스터 크기를 줄일 때 고려 사항

실행 중인 클러스터의 크기를 줄이려면 다음 Amazon EMR 동작 및 모범 사례를 고려합니다.

  • 진행 중인 작업에 미치는 영향을 줄이기 위해 Amazon EMR은 제거할 인스턴스를 지능적으로 선택합니다. 클러스터 스케일 다운 동작에 대한 자세한 내용은 Amazon EMR 관리 안내서에서 작업 완료 시 종료 섹션을 참조하세요.

  • 클러스터 크기를 스케일 다운하면 Amazon EMR은 제거하는 인스턴스의 데이터를 남아 있는 인스턴스로 복사합니다. 그룹에 남아 있는 인스턴스에 이 데이터를 저장할 충분한 스토리지 용량이 있는지 확인합니다.

  • Amazon EMR은 그룹 내 인스턴스에서 HDFS의 서비스를 해제하려고 시도합니다. 클러스터 크기를 줄이기 전에 HDFS 쓰기 I/O를 최소화하는 것이 좋습니다.

  • 클러스터의 크기를 줄일 때 가장 세밀하게 제어하기 위해 콘솔에서 클러스터를 보고 인스턴스 탭으로 이동할 수 있습니다. 크기를 조정하려는 인스턴스 그룹의 ID를 선택합니다. 그런 다음 제거하려는 특정 인스턴스에 대해 종료 옵션을 사용합니다.