

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

# 클러스터 용량 규모 조정
<a name="scale-cluster-capacity"></a>

작업이 너무 오래 걸리지만 실행기가 충분한 리소스를 소비하고 Spark가 사용 가능한 코어에 비해 대량의 태스크를 생성하는 경우 클러스터 용량을 조정하는 방법을 고려합니다. 적절한지 평가하려면 다음 지표를 사용합니다.

## CloudWatch 지표
<a name="scaling-metrics"></a>
+ **CPU 로드** 및 **메모리 사용률**을 확인하여 실행기가 충분한 리소스를 사용하고 있는지 확인합니다.
+ 작업 실행 시간을 확인하여 처리 시간이 너무 길어 성능 목표를 달성할 수 없는지 평가합니다.

다음 예제에서는 4개의 실행기가 97%를 초과하는 CPU 로드에서 실행되고 있지만* *약 3시간 후에도 처리가 완료되지 않습니다.



![""](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/tuning-aws-glue-for-apache-spark/images/cpu-metrics.png)


**참고**  
CPU 부하가 낮으면 클러스터 용량을 조정해도 도움이 되지 않을 수 있습니다.

## Spark UI
<a name="scaling-spark"></a>

**작업** 탭 또는 **단계** 탭에서 각 작업 또는 단계의 태스크 수를 볼 수 있습니다. 다음 예제에서 Spark는 `58100` 태스크를 생성했습니다.



![하나의 단계와 58,100개의 태스크를 보여주는 모든 작업의 단계.](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/tuning-aws-glue-for-apache-spark/images/stages-for-all-jobs.png)


**실행기** 탭에서 총 실행기 및 태스크 수를 볼 수 있습니다. 다음 스크린샷에서 각 Spark 실행기에는 4개의 코어가 있으며 4개의 태스크를 동시에 수행할 수 있습니다.



![코어 열을 보여주는 실행기 테이블.](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/tuning-aws-glue-for-apache-spark/images/executors-tab-cores.png)


이 예제에서 Spark 태스크 수(`58100)`는 실행기가 동시에 처리할 수 있는 16개의 태스크(4개의 실행기 × 4개의 코어)보다 훨씬 큽니다.

이러한 증상이 관찰되면 클러스터 규모 조정을 고려합니다. 다음 옵션을 사용하여 클러스터 용량을 조정할 수 있습니다.
+ **Enable AWS Glue Auto Scaling** - [Auto Scaling](https://docs.aws.amazon.com/glue/latest/dg/auto-scaling.html)은 AWS Glue 버전 3.0 이상의 AWS Glue 추출, 변환 및 로드(ETL) 및 스트리밍 작업에 사용할 수 있습니다.는 각 단계의 파티션 수 또는 작업 실행 시 마이크로배치가 생성되는 속도에 따라 클러스터에서 작업자를 AWS Glue 자동으로 추가하고 제거합니다.

  오토 스케일링이 활성화되어 있더라도 작업자 수가 증가하지 않는 상황이 관찰되면 작업자를 수동으로 추가하는 방법을 고려합니다. 그러나 한 단계에 대해 수동으로 규모를 조정하면 이후 단계에서 많은 작업자가 유휴 상태가 되어 성능이 개선되지 않으면서 비용이 더 많이 들 수 있습니다.

  오토 스케일링을 활성화하면 CloudWatch 실행기 지표에서 실행기 수를 볼 수 있습니다. 다음 지표를 사용하여 Spark 애플리케이션의 실행기 수요를 모니터링합니다.
  + `glue.driver.ExecutorAllocationManager.executors.numberAllExecutors`
  + `glue.driver.ExecutorAllocationManager.executors.numberMaxNeededExecutors`

  지표에 대한 자세한 내용은 [ Amazon CloudWatch 지표 AWS Glue 를 사용한 모니터링을](https://docs.aws.amazon.com/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) 참조하세요.
+ **스케일 아웃: AWS Glue 작업자 수 증가** - AWS Glue 작업자 수를 수동으로 늘릴 수 있습니다. 유휴 작업자를 관찰할 때까지만 작업자를 추가합니다. 이때 작업자를 더 추가하면 결과가 개선되지 않고 비용이 증가합니다. 자세한 내용은 [태스크 병렬화](parallelize-tasks.md)를 참조하세요.
+ **스케일 업: 더 큰 작업자 유형 사용** - 코어, 메모리 및 스토리지가 더 많은 작업자를 사용하도록 AWS Glue 작업자의 인스턴스 유형을 수동으로 변경할 수 있습니다. 작업자 유형이 클수록 메모리 집약적인 데이터 변환, 왜곡된 집계, 페타바이트 규모의 데이터와 관련된 엔터티 감지 검사 등 집약적인 데이터 통합 작업을 수직적으로 스케일링하고 실행할 수 있습니다.

  작업 쿼리 계획이 상당히 크기 때문에 Spark 드라이버에 더 큰 용량이 필요한 경우에도 스케일 업이 도움이 됩니다. 작업자 유형 및 성능에 대한 자세한 내용은 AWS 빅 데이터 블로그 게시물 더 [큰 새 작업자 유형 G.4X 및 G.8X로 Apache Spark 작업에 AWS Glue 맞게 조정을 참조하세요](https://aws.amazon.com/blogs/big-data/scale-your-aws-glue-for-apache-spark-jobs-with-new-larger-worker-types-g-4x-and-g-8x/).

  또한 더 큰 작업자를 사용하면 필요한 총 작업자 수를 줄일 수 있으므로 조인과 같은 집약적인 작업에서 셔플을 줄여 성능이 개선됩니다.