

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

# Amazon EMR의 인스턴스 그룹에서 사용자 지정 정책과 함께 자동 조정 사용
<a name="emr-automatic-scaling"></a>

Amazon EMR 릴리스 4.0 이상에서 사용자 지정 정책을 사용하는 자동 조정을 사용하면 *조정 정책*에서 지정한 CloudWatch 지표 및 기타 파라미터를 기반으로 코어 노드와 태스크 노드를 프로그래밍 방식으로 스케일 아웃 및 스케일 인할 수 있습니다. 사용자 지정 정책이 포함된 자동 조정은 인스턴스 그룹 구성에서 사용 가능하며, 인스턴스 플릿에는 사용할 수 없습니다. 인스턴스 그룹과 인스턴스 플릿에 대한 자세한 내용은 [인스턴스 플릿이나 균일한 인스턴스 그룹을 사용하여 Amazon EMR 클러스터 생성](emr-instance-group-configuration.md) 섹션을 참조하세요.

확장 정책은 인스턴스 그룹 구성의 일부입니다. 인스턴스 그룹의 초기 구성 중에 또는 해당 인스턴스 그룹이 활성화되어 있어도 기존 클러스터의 인스턴스 그룹을 수정하여 정책을 지정할 수 있습니다. 프라이머리 인스턴스 그룹을 제외하고 클러스터의 각 인스턴스 그룹에는 스케일 아웃 및 스케일 인 규칙으로 구성된 자체 조정 정책이 있을 수 있습니다. 확장 및 축소 규칙은 각 규칙마다 다른 파라미터를 사용하여 개별적으로 구성할 수 있습니다.

 AWS Management Console AWS CLI, 또는 Amazon EMR API를 사용하여 조정 정책을 구성할 수 있습니다. AWS CLI 또는 Amazon EMR API를 사용하는 경우 조정 정책을 JSON 형식으로 지정합니다. 또한 AWS CLI 또는 Amazon EMR API를 사용하는 경우 사용자 지정 CloudWatch 지표를 지정할 수 있습니다. AWS Management Console을 사용하여 선택하는 경우에는 사용자 지정 지표를 사용할 수 없습니다. 처음 콘솔을 사용하여 확장 정책을 만들면 많은 애플리케이션에 적합한 기본 정책이 미리 구성되어 있어서 시작하는 데 도움이 됩니다. 기본 규칙을 삭제 또는 수정할 수 있습니다.

자동 조정을 사용하여 EMR 클러스터 용량을 즉각 조정할 수는 있지만 기본 워크로드 요구 사항을 고려하고 노드 및 인스턴스 그룹 구성을 계획해야 합니다. 자세한 내용은 [클러스터 구성 지침](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-instances-guidelines.html)을 참조하세요.

**참고**  
대부분의 워크로드에서 리소스 활용을 최적화하려면 확장 및 축소 규칙을 모두 설정하는 것이 바람직합니다. 다른 규칙 없이 어느 한 규칙만 설정하면 조정 활동 후에 인스턴스 수를 수동으로 조정해야 합니다. 즉, 이 경우 수동 재설정을 사용하여 "단방향" 자동 확장 또는 축소 정책을 설정합니다.

## 자동 조정에 대한 IAM 역할 생성
<a name="emr-automatic-scaling-iam-role"></a>

Amazon EMR의 자동 조정에서는 조정 활동이 트리거될 때 인스턴스를 추가 및 종료할 수 있는 권한을 가진 IAM 역할이 필요합니다. 적절한 역할 정책 및 신뢰 정책으로 구성된 기본 역할인 `EMR_AutoScaling_DefaultRole`을 이 용도로 사용할 수 있습니다. 를 사용하여 조정 정책이 있는 클러스터를 처음 생성하면 AWS Management Console Amazon EMR은 기본 역할을 생성하고 권한에 대한 기본 관리형 정책를 연결합니다`AmazonElasticMapReduceforAutoScalingRole`.

를 사용하여 자동 조정 정책을 사용하여 클러스터를 생성할 때 먼저 기본 IAM 역할이 있는지 또는 적절한 권한을 제공하는 정책이 연결된 사용자 지정 IAM 역할이 있는지 확인해야 AWS CLI합니다. 기본 역할을 생성하기 위해 클러스터를 생성하기 전에 `create-default-roles` 명령을 실행할 수 있습니다. 그런 다음, 클러스터를 생성할 때 `--auto-scaling-role EMR_AutoScaling_DefaultRole` 옵션을 지정할 수 있습니다. 또는 사용자 지정 자동 조정 역할을 생성한 다음, 클러스터를 생성할 때 이를 지정할 수 있습니다(예를 들면 `--auto-scaling-role MyEMRAutoScalingRole`). Amazon EMR의 사용자 지정 자동 조정 역할을 생성하는 경우에는 관리형 정책을 토대로 사용자 지정 역할에 대한 권한 정책을 수립하는 것이 좋습니다. 자세한 내용은 [서비스 및 리소스에 대한 Amazon EMR 권한에 대한 IAM AWS 서비스 역할 구성](emr-iam-roles.md) 단원을 참조하십시오.

## 자동 조정 규칙 이해
<a name="emr-scaling-rules"></a>

확장 규칙에서 인스턴스 그룹에 대한 조정 활동을 트리거할 경우 규칙에 따라 Amazon EC2 인스턴스가 인스턴스 그룹에 추가됩니다. Amazon EC2 인스턴스가 `InService` 상태가 되자마자 Apache Spark, Apache Hive 및 Presto 같은 애플리케이션에서 새 노드를 사용할 수 있습니다. 인스턴스를 종료하고 노드를 제거하는 축소 규칙도 설정할 수 있습니다. 자동으로 조정되는 Amazon EC2 인스턴스의 수명 주기에 대한 자세한 내용은 *Amazon EC2 Auto Scaling 사용 설명서*에서 [Auto Scaling lifecycle](https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroupLifecycle.html)을 참조하세요.

클러스터가 Amazon EC2 인스턴스를 종료하는 방법을 구성할 수 있습니다. 결제를 위해 또는 작업 완료 시 Amazon EC2 인스턴스 시간 경계에서 종료하도록 선택할 수 있습니다. 이 설정은 자동 조정 및 수동 크기 조정 조작에 모두 적용됩니다. 이 구성에 대한 자세한 정보는 [Amazon EMR 클러스터에 대한 클러스터 스케일 다운 옵션](emr-scaledown-behavior.md) 섹션을 참조하세요.

정책의 각 규칙에 대한 다음 파라미터가 Auto Scaling 동작을 결정합니다.

**참고**  
여기에 나열된 파라미터는 Amazon EMR AWS Management Console 용를 기반으로 합니다. AWS CLI 또는 Amazon EMR API를 사용하는 경우 추가 고급 구성 옵션을 사용할 수 있습니다. 고급 옵션에 대한 자세한 내용은 *Amazon EMR API 참조*에서 [SimpleScalingPolicyConfiguration](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_PutAutoScalingPolicy.html)을 참조하세요.
+ Maximum instances 및 Minimum instances. **최대 인스턴스** 제약은 인스턴스 그룹에 있을 수 있는 Amazon EC2 인스턴스의 최대 수를 지정하며 모든 스케일 아웃 규칙에 적용됩니다. 마찬가지로, **최소 인스턴스** 제약은 인스턴스 그룹에 있을 수 있는 Amazon EC2 인스턴스의 최소 수를 지정하며 모든 스케일 인 규칙에 적용됩니다.
+ **규칙 이름**은 정책 내에서 고유해야 합니다.
+ **scaling adjustment(조정 조절)**는 규칙에서 트리거한 조정 활동 중에 추가(확장 규칙의 경우) 또는 종료(축소 규칙의 경우)할 EC2 인스턴스 수를 결정합니다.
+ **CloudWatch 지표**는 경보 조건을 감시합니다.
+ **comparison operator(비교 연산자)**는 CloudWatch 지표를 **임계값**과 비교하고 트리거 조건을 결정하는 데 사용됩니다.
+ **evaluation period(평가 기간)**는 5분씩 증가하고, 조정 활동이 트리거되기 전에 이 기간의 CloudWatch 지표가 트리거 조건에 있어야 합니다.
+ [**Cooldown period**]는 조정 활동을 트리거하는 규칙에 상관없이 규칙에서 시작한 조정 활동과 다음 조정 활동 시작 사이에 경과해야 할 기간(초 단위)을 결정합니다. 인스턴스 그룹이 조정 활동을 끝내고 조정 후 상태에 도달하면 후속 조정 활동을 트리거할 수 있는 CloudWatch 지표가 안정화될 수 있는 기회를 휴지 기간에서 제공합니다. 자세한 내용은 *Amazon EC2 Auto Scaling 사용 설명서*에서 [Auto Scaling cooldowns](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html)를 참조하세요.  
![\[AWS Management Console Amazon EMR에 대한 자동 조정 규칙 파라미터입니다.\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/images/auto-scaling-rule-params.png)

## 고려 사항 및 제한 사항
<a name="emr-automatic-scaling-considerations"></a>
+ Amazon CloudWatch 지표는 Amazon EMR 자동 조정을 작동하는 데 매우 중요한 역할을 합니다. Amazon CloudWatch 지표를 자세히 모니터링하여 데이터가 누락되지 않았는지 확인하는 것이 좋습니다. 누락된 지표를 감지하도록 Amazon CloudWatch 경보를 구성하는 방법에 대한 자세한 내용은 [Amazon CloudWatch 경보 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)을 참조하세요.
+ EBS 볼륨을 과도하게 사용하면 Managed Scaling 문제가 발생할 수 있습니다. EBS 볼륨 사용량을 자세히 모니터링하여 EBS 볼륨 사용률이 90% 미만인지 확인하는 것이 좋습니다. 추가 EBS 볼륨 지정에 대한 자세한 내용은 [인스턴스 스토리지](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-storage.html)를 참조하세요.
+ Amazon EMR 릴리스 5.18\$15.28에서 사용자 지정 정책을 사용한 자동 조정을 사용하면 Amazon CloudWatch 지표에서 간헐적으로 누락된 데이터로 인해 조정에 실패할 수 있습니다. 자동 조정을 개선하려면 최신 Amazon EMR 버전을 사용하는 것이 좋습니다. 5.18\$15.28 사이의 Amazon EMR 릴리스를 사용해야 하는 경우에도 [AWS Support](https://aws.amazon.com/premiumsupport/)에 문의하여 패치를 요청할 수 있습니다.

## AWS Management Console 를 사용하여 자동 조정 구성
<a name="emr-automatic-scale-console"></a>

클러스터를 생성할 때 고급 클러스터 구성 옵션을 사용하여 인스턴스 그룹에 대한 조정 정책을 구성합니다. 또한 기존 클러스터의 **Hardware(하드웨어)** 설정에서 인스턴스 그룹을 수정하여 서비스 중인 인스턴스 그룹에 대한 조정 정책을 생성하거나 수정할 수 있습니다.

1. 새 Amazon EMR 콘솔로 이동하고 측면 탐색에서 **이전 콘솔로 전환**을 선택합니다. 이전 콘솔로 전환할 때 예상되는 사항에 대한 자세한 내용은 [이전 콘솔 사용](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html#console-opt-in)을 참조하세요.

1. Amazon EMR 콘솔에서 클러스터를 생성하는 경우 **클러스터 생성**을 선택하고 **고급 옵션으로 이동**을 선택한 후 **1단계: 소프트웨어 및 단계**에 대한 옵션을 선택하고 **2단계: 하드웨어 구성**으로 이동합니다.

   ** 또는 **

   실행 중인 클러스터의 인스턴스 그룹을 수정할 경우 클러스터 목록에서 클러스터를 선택한 다음 **Hardware(하드웨어)** 섹션을 확장합니다.

1. **클러스터 크기 조정 및 프로비저닝 옵션** 섹션에서 **클러스터 크기 조정 활성화**를 선택합니다. 그런 다음 **Create a custom automatic scaling policy(사용자 지정 자동 조정 정책 생성)**를 선택합니다.

   **Custom automatic scaling policies(사용자 지정 자동 조정 정책)** 표에서, 구성할 인스턴스 그룹의 행에 나타나는 연필 아이콘을 클릭합니다. Auto Scaling 규칙 화면이 열립니다.

1. 확장 후 인스턴스 그룹에 포함할 **최대 인스턴스**를 입력하고, 축소 후 인스턴스 그룹에 포함할 **최소 인스턴스**를 입력합니다.

1. 규칙 파라미터를 편집하려면 연필을 클릭하고, 정책에서 규칙을 제거하려면 **X**를 클릭하며, 규칙을 추가하려면 **Add rule(규칙 추가)**을 클릭합니다.

1. 이 주제의 앞부분에서 설명한 대로 규칙 파라미터를 선택합니다. Amazon EMR에서 사용할 수 있는 CloudWatch 지표에 대한 설명은 *Amazon CloudWatch 사용 설명서*에서 [Amazon EMR 지표 및 차원](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/emr-metricscollected.html)을 참조하세요.

## AWS CLI 를 사용하여 자동 조정 구성
<a name="emr-automatic-scale-cli"></a>

클러스터를 생성할 때와 인스턴스 그룹을 생성할 때 Amazon EMR용 AWS CLI 명령을 사용하여 자동 조정을 구성할 수 있습니다. 관련 명령 내에서 JSON 구성 인라인을 지정하는 간편 구문을 사용하거나 구성 JSON을 포함하는 파일을 참조할 수 있습니다. 기존 인스턴스 그룹에 자동 조정 정책을 적용하고 이전에 적용한 자동 조정 정책을 제거할 수도 있습니다. 또한 실행 중인 클러스터에서 확장 정책 구성의 세부 정보를 검색할 수 있습니다.

**중요**  
자동 조정 정책을 가진 클러스터를 생성할 때는 `--auto-scaling-role MyAutoScalingRole` 명령을 사용하여 자동 조정을 위한 IAM 역할을 지정해야 합니다. 기본 역할은 `EMR_AutoScaling_DefaultRole`이고 `create-default-roles` 명령을 통해 생성이 가능합니다. 이 역할은 클러스터를 만들 때만 추가할 수 있으며 기존 클러스터에 추가할 수 없습니다.

자동 조정 정책을 구성할 때 사용할 수 있는 파라미터에 대한 자세한 설명은 *Amazon EMR API 참조*에서 [PutAutoScalingPolicy](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_PutAutoScalingPolicy.html)를 참조하세요.

### 인스턴스 그룹에 적용된 자동 조정 정책을 사용하여 클러스터 생성
<a name="emr-autoscale-cli-createcluster"></a>

`aws emr create-cluster` 명령의 `--instance-groups` 옵션 내에서 자동 조정 구성을 지정할 수 있습니다. 다음 예제에서는 코어 인스턴스 그룹에 대한 자동 조정 정책이 인라인으로 제공되는 create-cluster 명령을 보여줍니다. 명령은 Amazon EMR AWS Management Console 용를 사용하여 자동 조정 정책을 생성할 때 나타나는 기본 확장 정책과 동등한 조정 구성을 생성합니다. 간략하게 하기 위해 축소 정책은 표시되지 않습니다. 축소 규칙 없이 확장 규칙을 생성하는 것은 권장되지 않습니다.

```
aws emr create-cluster --release-label emr-5.2.0 --service-role EMR_DefaultRole --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole --auto-scaling-role EMR_AutoScaling_DefaultRole  --instance-groups Name=MyMasterIG,InstanceGroupType=MASTER,InstanceType=m5.xlarge,InstanceCount=1 'Name=MyCoreIG,InstanceGroupType=CORE,InstanceType=m5.xlarge,InstanceCount=2,AutoScalingPolicy={Constraints={MinCapacity=2,MaxCapacity=10},Rules=[{Name=Default-scale-out,Description=Replicates the default scale-out rule in the console.,Action={SimpleScalingPolicyConfiguration={AdjustmentType=CHANGE_IN_CAPACITY,ScalingAdjustment=1,CoolDown=300}},Trigger={CloudWatchAlarmDefinition={ComparisonOperator=LESS_THAN,EvaluationPeriods=1,MetricName=YARNMemoryAvailablePercentage,Namespace=AWS/ElasticMapReduce,Period=300,Statistic=AVERAGE,Threshold=15,Unit=PERCENT,Dimensions=[{Key=JobFlowId,Value="${emr.clusterId}"}]}}}]}'				
```

 다음 명령은 명령줄을 사용하여 인스턴스 그룹 구성 파일(`instancegroupconfig.json`)의 일부로 자동 조정 정책 정의를 제공하는 방법을 보여줍니다.

```
aws emr create-cluster --release-label emr-5.2.0 --service-role EMR_DefaultRole --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole --instance-groups file://your/path/to/instancegroupconfig.json --auto-scaling-role EMR_AutoScaling_DefaultRole								
```

구성 파일의 내용은 다음과 같습니다.

```
[
{
  "InstanceCount": 1,
  "Name": "MyMasterIG",
  "InstanceGroupType": "MASTER",
  "InstanceType": "m5.xlarge"
},
{
  "InstanceCount": 2,
  "Name": "MyCoreIG",
  "InstanceGroupType": "CORE",
  "InstanceType": "m5.xlarge",
  "AutoScalingPolicy":
    {
     "Constraints":
      {
       "MinCapacity": 2,
       "MaxCapacity": 10
      },
     "Rules":
     [
      {
       "Name": "Default-scale-out",
       "Description": "Replicates the default scale-out rule in the console for YARN memory.",
       "Action":{
        "SimpleScalingPolicyConfiguration":{
          "AdjustmentType": "CHANGE_IN_CAPACITY",
          "ScalingAdjustment": 1,
          "CoolDown": 300
        }
       },
       "Trigger":{
        "CloudWatchAlarmDefinition":{
          "ComparisonOperator": "LESS_THAN",
          "EvaluationPeriods": 1,
          "MetricName": "YARNMemoryAvailablePercentage",
          "Namespace": "AWS/ElasticMapReduce",
          "Period": 300,
          "Threshold": 15,
          "Statistic": "AVERAGE",
          "Unit": "PERCENT",
          "Dimensions":[
             {
               "Key" : "JobFlowId",
               "Value" : "${emr.clusterId}"
             }
          ]
        }
       }
      }
     ]
   }
}
]
```

### 자동 조정 정책이 있는 인스턴스 그룹을 클러스터에 추가
<a name="emr-autoscale-cli-createinstancegroup"></a>

`--instance-groups`를 사용할 때와 같은 방법으로 `add-instance-groups` 명령과 함께 `create-cluster` 옵션을 사용하여 조정 정책 구성을 지정할 수 있습니다. 다음 예제에서는 JSON 파일 `instancegroupconfig.json`에 대한 참조를 인스턴스 그룹 구성과 함께 사용합니다.

```
aws emr add-instance-groups --cluster-id j-1EKZ3TYEVF1S2 --instance-groups file://your/path/to/instancegroupconfig.json
```

### 기존 인스턴스 그룹에 자동 조정 정책 적용 또는 적용된 정책 수정
<a name="emr-autoscale-cli-modifyinstancegroup"></a>

`aws emr put-auto-scaling-policy` 명령을 사용하여 자동 조정 정책을 기존 인스턴스 그룹에 적용합니다. 인스턴스 그룹은 자동 조정 IAM 역할을 사용하는 클러스터의 일부여야 합니다. 다음 예제에서는 자동 조정 정책 구성을 지정하는 JSON 파일 `autoscaleconfig.json`에 대한 참조를 사용합니다.

```
aws emr put-auto-scaling-policy --cluster-id j-1EKZ3TYEVF1S2 --instance-group-id ig-3PLUZBA6WLS07 --auto-scaling-policy file://your/path/to/autoscaleconfig.json 
```

이전 예제에 표시된 것과 동일한 확장 규칙을 정의하는 `autoscaleconfig.json` 파일의 내용이 아래에 표시됩니다.

```
{
          "Constraints": {
                  "MaxCapacity": 10,
                  "MinCapacity": 2
          },
          "Rules": [{
                  "Action": {
                          "SimpleScalingPolicyConfiguration": {
                                  "AdjustmentType": "CHANGE_IN_CAPACITY",
                                  "CoolDown": 300,
                                  "ScalingAdjustment": 1
                          }
                  },
                  "Description": "Replicates the default scale-out rule in the console for YARN memory",
                  "Name": "Default-scale-out",
                  "Trigger": {
                          "CloudWatchAlarmDefinition": {
                                  "ComparisonOperator": "LESS_THAN",
                                  "Dimensions": [{
                                          "Key": "JobFlowId",
                                          "Value": "${emr.clusterID}"
                                  }],
                                  "EvaluationPeriods": 1,
                                  "MetricName": "YARNMemoryAvailablePercentage",
                                  "Namespace": "AWS/ElasticMapReduce",
                                  "Period": 300,
                                  "Statistic": "AVERAGE",
                                  "Threshold": 15,
                                  "Unit": "PERCENT"
                          }
                  }
          }]
  }
```

### 인스턴스 그룹에서 자동 조정 정책 제거
<a name="emr-autoscale-cli-removepolicy"></a>

```
aws emr remove-auto-scaling-policy --cluster-id j-1EKZ3TYEVF1S2 --instance-group-id ig-3PLUZBA6WLS07
```

### 자동 조정 정책 구성 검색
<a name="emr-autoscale-cli-getpolicy"></a>

`describe-cluster` 명령은 InstanceGroup 블록의 정책 구성을 검색합니다. 예를 들어, 다음 명령은 클러스터 ID `j-1CWOHP4PI30VJ`의 클러스터에 대한 구성을 검색합니다.

```
aws emr describe-cluster --cluster-id j-1CWOHP4PI30VJ
```

다음과 같은 예제 출력이 생성됩니다.

```
{
    "Cluster": {
        "Configurations": [],
        "Id": "j-1CWOHP4PI30VJ",
        "NormalizedInstanceHours": 48,
        "Name": "Auto Scaling Cluster",
        "ReleaseLabel": "emr-5.2.0",
        "ServiceRole": "EMR_DefaultRole",
        "AutoTerminate": false,
        "TerminationProtected": true,
        "MasterPublicDnsName": "ec2-54-167-31-38.compute-1.amazonaws.com",
        "LogUri": "s3n://aws-logs-232939870606-us-east-1/elasticmapreduce/",
        "Ec2InstanceAttributes": {
            "Ec2KeyName": "performance",
            "AdditionalMasterSecurityGroups": [],
            "AdditionalSlaveSecurityGroups": [],
            "EmrManagedSlaveSecurityGroup": "sg-09fc9362",
            "Ec2AvailabilityZone": "us-east-1d",
            "EmrManagedMasterSecurityGroup": "sg-0bfc9360",
            "IamInstanceProfile": "EMR_EC2_DefaultRole"
        },
        "Applications": [
            {
                "Name": "Hadoop",
                "Version": "2.7.3"
            }
        ],
        "InstanceGroups": [
            {
                "AutoScalingPolicy": {
                    "Status": {
                        "State": "ATTACHED",
                        "StateChangeReason": {
                            "Message": ""
                        }
                    },
                    "Constraints": {
                        "MaxCapacity": 10,
                        "MinCapacity": 2
                    },
                    "Rules": [
                        {
                            "Name": "Default-scale-out",
                            "Trigger": {
                                "CloudWatchAlarmDefinition": {
                                    "MetricName": "YARNMemoryAvailablePercentage",
                                    "Unit": "PERCENT",
                                    "Namespace": "AWS/ElasticMapReduce",
                                    "Threshold": 15,
                                    "Dimensions": [
                                        {
                                            "Key": "JobFlowId",
                                            "Value": "j-1CWOHP4PI30VJ"
                                        }
                                    ],
                                    "EvaluationPeriods": 1,
                                    "Period": 300,
                                    "ComparisonOperator": "LESS_THAN",
                                    "Statistic": "AVERAGE"
                                }
                            },
                            "Description": "",
                            "Action": {
                                "SimpleScalingPolicyConfiguration": {
                                    "CoolDown": 300,
                                    "AdjustmentType": "CHANGE_IN_CAPACITY",
                                    "ScalingAdjustment": 1
                                }
                            }
                        },
                        {
                            "Name": "Default-scale-in",
                            "Trigger": {
                                "CloudWatchAlarmDefinition": {
                                    "MetricName": "YARNMemoryAvailablePercentage",
                                    "Unit": "PERCENT",
                                    "Namespace": "AWS/ElasticMapReduce",
                                    "Threshold": 75,
                                    "Dimensions": [
                                        {
                                            "Key": "JobFlowId",
                                            "Value": "j-1CWOHP4PI30VJ"
                                        }
                                    ],
                                    "EvaluationPeriods": 1,
                                    "Period": 300,
                                    "ComparisonOperator": "GREATER_THAN",
                                    "Statistic": "AVERAGE"
                                }
                            },
                            "Description": "",
                            "Action": {
                                "SimpleScalingPolicyConfiguration": {
                                    "CoolDown": 300,
                                    "AdjustmentType": "CHANGE_IN_CAPACITY",
                                    "ScalingAdjustment": -1
                                }
                            }
                        }
                    ]
                },
                "Configurations": [],
                "InstanceType": "m5.xlarge",
                "Market": "ON_DEMAND",
                "Name": "Core - 2",
                "ShrinkPolicy": {},
                "Status": {
                    "Timeline": {
                        "CreationDateTime": 1479413437.342,
                        "ReadyDateTime": 1479413864.615
                    },
                    "State": "RUNNING",
                    "StateChangeReason": {
                        "Message": ""
                    }
                },
                "RunningInstanceCount": 2,
                "Id": "ig-3M16XBE8C3PH1",
                "InstanceGroupType": "CORE",
                "RequestedInstanceCount": 2,
                "EbsBlockDevices": []
            },
            {
                "Configurations": [],
                "Id": "ig-OP62I28NSE8M",
                "InstanceGroupType": "MASTER",
                "InstanceType": "m5.xlarge",
                "Market": "ON_DEMAND",
                "Name": "Master - 1",
                "ShrinkPolicy": {},
                "EbsBlockDevices": [],
                "RequestedInstanceCount": 1,
                "Status": {
                    "Timeline": {
                        "CreationDateTime": 1479413437.342,
                        "ReadyDateTime": 1479413752.088
                    },
                    "State": "RUNNING",
                    "StateChangeReason": {
                        "Message": ""
                    }
                },
                "RunningInstanceCount": 1
            }
        ],
        "AutoScalingRole": "EMR_AutoScaling_DefaultRole",
        "Tags": [],
        "BootstrapActions": [],
        "Status": {
            "Timeline": {
                "CreationDateTime": 1479413437.339,
                "ReadyDateTime": 1479413863.666
            },
            "State": "WAITING",
            "StateChangeReason": {
                "Message": "Cluster ready after last step completed."
            }
        }
    }
}
```