에 자동 조정 사용 AWS Glue - AWS Glue

에 자동 조정 사용 AWS Glue

Auto Scaling은 에서 사용할 수 있습니다.AWS Glue ETL, 대화형 세션 및 스트리밍 작업 AWS Glue 버전 3.0 이상.

Auto Scaling을 사용하면 다음과 같은 이점을 얻을 수 있습니다.

  • AWS Glue 는 작업 실행의 각 단계 또는 마이크로배치의 병렬 처리에 따라 클러스터에서 작업자를 자동으로 추가하고 제거합니다.

  • 이를 통해 실험하고 에 할당할 작업자 수를 결정할 필요가 줄어듭니다.AWS Glue ETL 작업.

  • 주어진 최대 작업자 수를 사용하면 AWS Glue 는 워크로드에 적합한 크기의 리소스를 선택합니다.

  • 의 작업 실행 세부 정보 페이지에서 CloudWatch 지표를 확인하여 작업 실행 중에 클러스터 크기가 어떻게 변경되는지 확인할 수 있습니다.AWS Glue 스튜디오.

에 대한 Auto Scaling AWS Glue ETL 및 스트리밍 작업을 통해 의 컴퓨팅 리소스의 온디맨드 스케일 아웃 및 스케일 인 가능 AWS Glue 작업. 온디맨드 확장은 처음에 작업 실행 시작 시 필요한 컴퓨팅 리소스만 할당하고 작업 중 수요에 따라 필요한 리소스를 프로비저닝하는 데 도움이 됩니다.

Auto Scaling은 의 동적 스케일 인도 지원합니다.AWS Glue 작업 과정에서 작업 리소스. 작업 실행 중 Spark 애플리케이션에서 더 많은 실행기를 요청하면 클러스터에 더 많은 작업자가 추가됩니다. 실행기가 활성 계산 태스크 없이 유휴 상태인 경우 실행자와 해당 작업자가 제거됩니다.

오토 스케일링이 Spark 애플리케이션의 비용 및 사용률에 도움이 되는 일반적인 시나리오는 다음과 같습니다.

  • Amazon S3에서 많은 수의 파일을 나열하거나 실행기가 비활성 상태일 때 로드를 수행하는 Spark 드라이버

  • 과도한 프로비저닝으로 인해 소수의 실행기로만 실행되는 Spark 단계

  • Spark 단계에서 데이터 스큐 또는 균일하지 않은 계산 수요

요구 사항

Auto Scaling은 에서만 사용할 수 있습니다.AWS Glue 버전 3.0 이상. Auto Scaling 사용하려면 마이그레이션 가이드에 따라 기존 작업을 로 마이그레이션할 수 있습니다.AWS Glue 버전 3.0 이상 또는 를 사용하여 새 작업 생성 AWS Glue 버전 3.0 이상.

Auto Scaling은 에 사용할 수 있습니다.AWS Glue G.1X, G.2X, G.4XG.8X, 또는 G.025X (스트리밍 작업에만 해당) 작업자 유형이 있는 작업. 표준DPUs은 지원되지 않습니다.

에서 Auto Scaling 활성화 AWS Glue Studio

작업 세부 정보 탭에서 AWS Glue Studio에서 유형을 Spark 또는 Spark Streaming 으로 선택하고 Glue 버전 Glue 3.0 이상을 선택합니다. 그러면 작업자 유형 아래에 확인란이 표시됩니다.

  • 작업자 수 자동 크기 조정(Automatically scale the number of workers) 옵션을 선택합니다.

  • 최대 작업자 수(Maximum number of workers)를 설정하여 작업 실행에 판매할 수 있는 최대 작업자 수를 정의합니다.

에서 Auto Scaling 활성화 및 구성 AWS Glue 스튜디오.

또는 를 AWS CLI 사용하여 Auto Scaling 활성화 SDK

작업 실행을 위해 AWS CLI에서 Auto Scaling을 활성화하려면 다음 구성start-job-run으로 를 실행합니다.

{ "JobName": "<your job name>", "Arguments": { "--enable-auto-scaling": "true" }, "WorkerType": "G.2X", // G.1X and G.2X are allowed for Auto Scaling Jobs "NumberOfWorkers": 20, // represents Maximum number of workers ...other job run configurations... }

ETL 작업 실행이 완료되면 를 호출get-job-run하여 DPU-초 이내에 작업 실행의 실제 리소스 사용량을 확인할 수도 있습니다. 참고: 새 필드는 Auto Scaling 으로 활성화된 AWS Glue 4.0 이상의 배치 작업에 DPUSeconds 대해서만 표시됩니다. 이 필드는 스트리밍 작업에는 지원되지 않습니다.

$ aws glue get-job-run --job-name your-job-name --run-id jr_xx --endpoint https://glue.us-east-1.amazonaws.com --region us-east-1 { "JobRun": { ... "GlueVersion": "3.0", "DPUSeconds": 386.0 } }

동일한 구성의 를 사용하여 Auto ScalingAWS Glue SDK으로 작업 실행을 구성할 수도 있습니다.

대화형 세션을 사용하여 Auto Scaling 활성화

대화형 세션으로 AWS Glue 작업을 구축할 때 Auto Scaling을 활성화하려면 대화형 세션 구성을 AWS Glue참조하세요.

팁 및 고려 사항

AWS Glue Auto Scaling 미세 조정을 위한 팁 및 고려 사항:

  • 최대 작업자 수의 초기 값에 대한 아이디어가 없는 경우 추정 AWS Glue DPU 에 설명된 대략적인 계산부터 시작할 수 있습니다. 볼륨이 매우 적은 데이터의 경우 최대 작업자 수로 너무 큰 값을 구성해서는 안 됩니다.

  • AWS Glue Auto Scaling은 작업에 구성된 최대 수DPU(최대 작업자 수 및 작업자 유형으로 계산됨)를 spark.default.parallelism 기반으로 spark.sql.shuffle.partitions 및 를 구성합니다. 이러한 구성에서 고정 값을 선호하는 경우 다음 작업 파라미터로 이러한 파라미터를 덮어쓸 수 있습니다.

    • : --conf

    • : spark.sql.shuffle.partitions=200 --conf spark.default.parallelism=200

  • 스트리밍 작업의 경우 기본적으로 AWS Glue 는 마이크로 배치 내에서 자동 조정을 수행하지 않으며 자동 조정을 시작하려면 여러 마이크로 배치가 필요합니다. 마이크로 배치 내에서 자동 오토 스케일링을 활성화하려면 --auto-scale-within-microbatch를 제공합니다. 자세한 내용은 작업 파라미터 참조를 참조하세요.

Amazon CloudWatch 지표를 사용한 Auto Scaling 모니터링

CloudWatch 실행기 지표는 AWS Glue Auto Scaling을 활성화한 경우 3.0 이상 작업. 지표를 사용하여 Auto Scaling으로 사용 가능한 Spark 애플리케이션의 실행기 수요와 최적 사용량을 모니터링할 수 있습니다. 자세한 내용은 Amazon CloudWatch 지표를 사용하여 AWS Glue 모니터링 단원을 참조하십시오.

AWS Glue 또한 관찰 가능성 지표를 활용하여 리소스 사용률에 대한 인사이트를 얻을 수 있습니다. 예를 들어 glue.driver.workerUtilization을 모니터링하여 오토 스케일링을 사용하거나 사용하지 않고 실제로 사용된 리소스의 양을 모니터링할 수 있습니다. 또 다른 예로 glue.driver.skewness.jobglue.driver.skewness.stage를 모니터링하여 데이터 스큐 상태를 확인할 수 있습니다. 이러한 인사이트는 오토 스케일링을 활성화하고 구성을 미세 조정하는 데 도움이 됩니다. 자세한 내용은 AWS Glue 관찰성 메트릭을 사용한 모니터링를 사용하여 모니터링을 참조하세요.

  • glue.driver.ExecutorAllocationManager.executors.numberAllExecutors

  • glue.driver.ExecutorAllocationManager.executors.numberMaxNeededExecutors

이러한 지표에 대한 자세한 내용은 DPU 용량 계획 모니터링 섹션을 참조하세요.

참고

CloudWatch 대화형 세션에는 실행기 지표를 사용할 수 없습니다.

Amazon CloudWatch 지표를 사용한 Auto Scaling 모니터링.

Amazon CloudWatch Logs를 사용한 Auto Scaling 모니터링

대화형 세션을 사용하는 경우 연속 Amazon CloudWatch Logs를 활성화하고 로그에서 “실행기”를 검색하거나 Spark UI를 사용하여 실행기 수를 모니터링할 수 있습니다. 이렇게 하려면 %%configure 매직을 사용하여 enable auto scaling을 통해 연속 로깅을 활성화합니다.

%%configure{ "--enable-continuous-cloudwatch-log": "true", "--enable-auto-scaling": "true" }

Amazon CloudWatch Logsevents에서 로그에서 'executor'를 검색합니다.

Amazon CloudWatch 지표를 사용한 Auto Scaling 모니터링.

Spark UI로 Auto Scaling 모니터링

Auto Scaling을 활성화하면 의 수요에 따라 동적 스케일 업 및 스케일 다운을 사용하여 추가 및 제거되는 실행기를 모니터링할 수도 있습니다.AWS Glue Glue Spark UI를 사용하는 작업. 자세한 내용은 AWS Glue 작업을 위한 Apache Spark 웹 UI 사용 설정 단원을 참조하십시오.

Jupyter Notebook의 대화형 세션을 사용하는 경우 다음 매직을 실행하여 Spark UI와 함께 오토 스케일링을 활성화할 수 있습니다.

%%configure{ "--enable-auto-scaling": "true", "--enable-continuous-cloudwatch-log": "true" }
Spark UI로 Auto Scaling 모니터링.

Auto Scaling 작업 실행 DPU 사용량 모니터링

AWS Glue Studio 작업 실행 보기를 사용하여 Auto Scaling 작업의 DPU 사용량을 확인할 수 있습니다.

  1. AWS Glue Studio 탐색 창에서 모니터링을 선택합니다. 모니터링 페이지가 표시됩니다.

  2. 아래로 스크롤하여 작업 실행 차트로 이동합니다.

  3. 관심 있는 작업 실행으로 이동하여 DPU 시간 열로 스크롤하여 특정 작업 실행의 사용량을 확인합니다.

제한 사항

AWS Glue 스트리밍 Auto Scaling은 현재 외부에서 DataFrame 생성된 정적이 있는 스트리밍 DataFrame 조인을 지원하지 않습니다ForEachBatch. 내부에 DataFrame 생성된 정적ForEachBatch은 예상대로 작동합니다.