Amazon Web Services 한국 블로그

Amazon EMR 클러스터 자동 확장 기능 추가

Amazon EMR 팀은 최근 신규 버전을 계속 출시하면서, 이번 분기에만 다양한 기능을 추가하였습니다.

오늘부터 Amazon EMR 클러스터에 대한 자동 확장 기능을 제공합니다. 이제 수평 확장 및 감소 기능을 사용하여 작업량 변경에 대한 클러스터의 코어 및 작업 노드 수를 조정하고 자원 사용을 최적화 할 수 있습니다.

수평 확장(Scale-out) 정책: 컴퓨팅 용량을 추가하여 더 큰 문제를 해결할 수 있습니다. Apache Spark 및 Apache Hive와 같은 응용 프로그램을 자동으로 증가하는 처리 능력을 활용할 수 있습니다.

수평 감소(Scale-in) 정책: 인스턴스 사용 시간이 끝나거나 전체 작업의 로드가 줄어들때 용량을 제거합니다. YARN 관리 콘테이너에서 노드가 하나 줄어 들면, YARN은 다른 노드에서 재실행됩니다. (자세한 사항은 Configure Cluster Scale-Down Behavior 문서를 참고하세요.)

자동 스케일링 사용하기
자동 스케일링을 사용하려면, 먼저 EC2 인스턴스를 시작하고 종료 할 수 있는 권한을 부여하는 IAM 역할이 클러스터와 연결되어 있어야합니다. 여러분이 EMR 콘솔에서 클러스터를 작성하는 경우, EMR_AutoScaling_DefaultRole를 만듭니다. 기본 값 있는 그대로 사용하거나 필요에 따라 사용자 정의로 지정할 수 있습니다. 프로그래밍 방식 또는 명령줄을 통해 클러스터를 만드는 경우, 아래와 같이 직접 만들 수 있습니다. 더 자세하 것은 create the default roles from the command line을 참고하세요.

Bash
$ aws emr create-default-roles

콘솔에서 클러스터를 만들 때 고급 옵션을 클릭하여 자동 확장 정책을 편집 할 수 있습니다.

연필 아이콘을 클릭하면 정책 정보 수정을 할 수 있습니다. 저의 예제는 아래와 같습니다.

본 정책이 YARNMemoryAvailablePercentage에 의해 실행하기 때문에 Spark, TEZ, Hadoop MapReduce 등의 프레임워크를 실행할 때, 메모리가 낮은 상태에서 활성화될 것입니다. 아래 옵션처럼 다양한 통계치를 선택할 수도 있습니다.

제가 만든 자동 스케일링 정책은 아래와 같습니다.

동일한 통계 셋을 선택할 수도 있고, 각 정책의 Cooldown period(재사용 대기 시간)을 설정할 수도 있습니다. 이 값은 확장 기능이 운영되는 사이의 최소 시간을 설정하고 변경 사항이 적용될 때 통계치를 안정적으로 유지합니다.

기본 정책(YARNMemoryAvailablePercentageContainerPendingRatio에 의해 실행)은 콘솔에서도 사용 가능합니다.

정식 출시
Amazon EMR의 자동 스케일링에 대한 자세한 정보는 Scaling Cluster Resources을 참고하시고, 본 기능은 오늘 부터 emr-5.1.0 버전에서 사용 가능합니다.

Jeff;

이 글은 New – Auto Scaling for EMR Clusters의 한국어 번역입니다.