Amazon Web Services 한국 블로그

Amazon EMR 인스턴스 집합(Instance Fleets) 기능 출시!

인스턴스 집합(instance fleets) 기능이 Amazon EMR 클러스터에서도 사용할 수 있습니다. 이는 인스턴스 프로비저닝과 관련된 다양한 옵션과 스마트한 기능을 제공합니다. 5개 인스턴트 타입에 대해 가중치 기반 컴퓨팅 용량 및 스팟 인스턴스 가격 입찰을 할 수 있습니다. EMR 클러스터를 만들 때, 이들 인스턴스 유형에 대해 온-디멘드 및 스팟 용량을 자동으로 제공합니다. 이를 통해 클러스터에 원하는 용량을 신속하게 확보 및 유지 관리하는 것이 보다 쉽게 가능해질 뿐 아니라 비용 또한 효율적입니다.

원하는 가용 영역(AZ)를 지정할 수 있으며, EMR은 리전 내 AZ 중 하나에서 클러스터를 실행할 수 있습니다. EMR은 인스턴스 집합에서 사용 가능한 타입으로 인스턴스를 교체하여 스팟 인스턴스가  중단되는 경우 클러스터를 재조정할 수 있습다. 이를 통해 클러스터 내 전체 컴퓨팅 용량을 쉽게 ​​유지할 수 있습니다. 인스턴스 집합은 인스턴스 그룹 대신 사용할 수 있습니다. 그룹과 마찬가지로 클러스터에는 마스터, 코어 및 태스크 집합이 있습니다.

AWS 관리 콘솔 업데이트를 살펴보고 어떻게 작동하는지 살펴 보겠습니다.

먼저 EMR console 로 이동하여 Create Cluster 버튼을 클릭합니다. 그러면 우리를 익숙한 EMR 프로비저닝 콘솔 왼쪽 상단의 고급 옵션으로 이동할 수 있습니다.

최신 EMR 버전을 선택한 후 (인스턴스 집합은 5.0.x를 제외한 EMR 버전 4.8.0 이상에서 사용 가능), 다음을 클릭하십시오. 여기에 하드웨어 옵션에서 새 Instance Fleet 옵션을 선택합니다.

Screenshot 2017-03-09 00.30.51

이제는 클러스터 요구 사항을 충족시킬 수 있는 몇 가지 인스턴스 타입을 추가해야 합니다.

CoreFleetScreenshot

EMR은 가능한 비용 효율적인 방식으로 요구 사항을 충족 할 수 있도록 각 인스턴스 집합 및 가용 영역에서 컴퓨팅 용량을 제공합니다. EMR 콘솔을 사용하여 vCPU를 각 인스턴스 타입에 대해 가중치 기반 용량에 쉽게 매핑 할 수 있으므로, vCPU 용량 단위를 쉽게 사용할 수 있습니다 (코어 집합에 총 16 개의 vCPU 필요). vCPU 단위가 가중치 인스턴스 타입에 대한  자체 기준과 일치하지 않으면, 임의의 단위를 포함하여 자체 가중치를 정의하도록 “대상 용량(Target Capacity)”선택을 변경할 수 있습니다 (이는 API/CLI가 용량 단위를 사용하는 방식입니다).

사용자가 정의한 시간 제한 내 원하는 스팟 용량을 얻을 수 없는 경우, 클러스터를 프로비저닝 할 때 나머지 클러스터 용량을  위해 On-Demand 인스턴스로 변경할 수 있습니다. 이들 기능은 AWS SDK 및 CLI에서도 사용할 수 있습니다.

먼저 my-fleet-config.json에 구성 json을 만듭니다.

Json
[
  {
    "Name": "MasterFleet",
    "InstanceFleetType": "MASTER",
    "TargetOnDemandCapacity": 1,
    "InstanceTypeConfigs": [{"InstanceType": "m3.xlarge"}]
  },
  {
    "Name": "CoreFleet",
    "InstanceFleetType": "CORE",
    "TargetSpotCapacity": 11,
    "TargetOnDemandCapacity": 11,
    "LaunchSpecifications": {
      "SpotSpecification": {
        "TimeoutDurationMinutes": 20,
        "TimeoutAction": "SWITCH_TO_ON_DEMAND"
      }
    },
    "InstanceTypeConfigs": [
      {
        "InstanceType": "r4.xlarge",
        "BidPriceAsPercentageOfOnDemandPrice": 50,
        "WeightedCapacity": 1
      },
      {
        "InstanceType": "r4.2xlarge",
        "BidPriceAsPercentageOfOnDemandPrice": 50,
        "WeightedCapacity": 2
      },
      {
        "InstanceType": "r4.4xlarge",
        "BidPriceAsPercentageOfOnDemandPrice": 50,
        "WeightedCapacity": 4
      }
    ]
  }
]

구성이 완료되었으므로 AWS CLI의 ’emr’하위 명령을 사용하여 해당 구성으로 새 클러스터를 만들 수 있습니다.

Bash
aws emr create-cluster --release-label emr-5.4.0 \
--applications Name=Spark,Name=Hive,Name=Zeppelin \
--service-role EMR_DefaultRole \
--ec2-attributes InstanceProfile="EMR_EC2_DefaultRole,SubnetIds=[subnet-1143da3c,subnet-2e27c012]" \
--instance-fleets file://my-fleet-config.json

오늘 부터 추가 비용 없이 신규 기능을 사용할 수 있으며, 자세한 사항은 EMR 인스턴스 집합 도움말를 참고하시기 바랍니다. 이 글 작성에 도움을 주신 EMR 서비스 팀에게 감사드립니다!

– Randall;

이 글은 New – Amazon EMR Instance Fleets의 한국어 번역입니다.