제퍼넷 로고

AWS Glue 작업 리소스 사용량에 대한 알림 및 보고 자동화 | 아마존 웹 서비스

시간

데이터 변환은 크고 작은 모든 조직의 비즈니스에 필요한 데이터 통찰력을 제공하는 데 중추적인 역할을 합니다. 이러한 통찰력을 얻기 위해 고객은 종종 소스 시스템에서 ETL(추출, 변환 및 로드) 작업을 수행하고 풍부한 데이터 세트를 출력합니다. 오늘날 많은 조직에서 AWS Glue를 사용하여 서로 다른 소스에서 데이터를 가져와 추가 사용을 위해 데이터 레이크, 데이터베이스 또는 데이터 웨어하우스와 같은 리포지토리에 데이터를 저장하는 ETL 파이프라인을 구축하고 있습니다. 이러한 조직은 IT 환경 전반에서 비용을 절감하면서도 여전히 운영 성능과 효율성을 유지할 수 있는 방법을 찾고 있습니다.

데이터 및 분석 담당 부사장이 데이터 엔지니어 및 분석가 팀을 관리하는 AWS에서 실행되는 데이터 및 분석 환경과 워크로드를 담당하는 시나리오를 상상해 보십시오. 이 팀은 개발, 테스트 및 프로덕션 환경에서 AWS Glue for Spark 작업을 생성할 수 있습니다. 테스트 중에 작업 중 하나가 컴퓨팅 리소스를 자동으로 확장하도록 구성되지 않아 작업 시간이 초과되어 조직에 예상보다 많은 비용이 발생했습니다. 다음 단계에는 일반적으로 작업 분석 완료, 사용량 급증을 생성한 계정을 확인하기 위한 비용 보고서 확인, 작업에 발생한 상황을 확인하기 위한 로그 검토 등이 포함됩니다. ETL 작업이 수정된 후 모니터링을 구현하고 AWS Glue 환경에 대한 표준 알림 임계값을 설정할 수 있습니다.

이 게시물은 팀이 ETL 작업의 효율성을 측정하고 조직 요구 사항에 따라 구성 세부 정보를 조정할 수 있는 더 쉬운 경로를 제공하여 조직이 AWS Glue 환경을 사전에 모니터링하고 비용을 최적화하는 데 도움이 됩니다. 잘못 구성된 모든 Glue 작업에 대해 이메일을 통해 팀에 알리는 배포할 수 있는 솔루션이 포함되어 있습니다. 또한 리소스 사용량을 집계하고 작업당 예상 비용을 제공하는 주간 보고서가 생성되어 이메일을 통해 전송됩니다.

AWS Glue 비용 고려 사항

Apache Spark용 AWS Glue 작업은 여러 작업자 및 작업자 유형으로 프로비저닝됩니다. 이러한 작업은 데이터 처리 장치(DPU)에 매핑되는 G.1X, G.2X, G.4X, G.8X 또는 Z.2X(Ray) 작업자 유형일 수 있습니다. DPU에는 일정량의 CPU, 메모리 및 디스크 공간이 포함됩니다. 다음 표에는 자세한 내용이 포함되어 있습니다.

작업자 유형 DPU vCPU 메모리 (GB) 디스크(GB)
G.1X 1 4 16 64
G.2X 2 8 32 128
G.4X 4 16 64 256
G.8X 8 32 128 512
Z.2X 2 8 32 128

예를 들어 작업이 G.10X 작업자 유형으로 1명의 작업자로 프로비저닝된 경우 작업은 40개의 vCPU와 160GB의 RAM에 액세스하여 데이터를 처리하고 G.2X를 사용하여 두 배로 증가합니다. 작업자를 과도하게 프로비저닝하면 모든 작업자가 효율적으로 활용되지 않기 때문에 비용이 증가할 수 있습니다.

4 월 2022에서, AWS Glue용 Auto Scaling Apache Spark 및 스트리밍 작업용 AWS Glue를 포함하는 AWS Glue 버전 3.0 이상용으로 출시되었습니다. Glue for Apache Spark 작업에서 Auto Scaling을 활성화하면 지정한 작업자 최대값까지 필요한 만큼만 작업자를 할당할 수 있습니다. 이 기능은 비용을 절감하고 ETL 작업을 최적화하는 데 도움이 되므로 AWS Glue 3.0 및 4.0 작업에 대해 Auto Scaling을 활성화하는 것이 좋습니다.

아마존 클라우드 워치 지표는 또한 평균 CPU 또는 메모리 사용량과 같은 특정 지표에 대한 경보를 생성하여 AWS Glue 환경을 모니터링하는 좋은 방법입니다. AWS Glue에서 CloudWatch 지표를 사용하는 방법에 대한 자세한 내용은 다음을 참조하십시오. Amazon CloudWatch 지표를 사용하여 AWS Glue 모니터링.

다음 솔루션은 AWS Glue 작업자 및 작업 기간 임계값을 설정하고, 모니터링을 구성하고, AWS Glue 환경이 수행되는 방식에 대한 알림 이메일을 수신하는 간단한 방법을 제공합니다. Glue 작업이 완료되고 작업자 또는 작업 기간 임계값이 초과되었음을 감지하면 작업 실행이 완료, 실패 또는 시간 초과된 후에 알려줍니다.

솔루션 개요

다음 다이어그램은 솔루션 아키텍처를 보여줍니다.

다음을 통해 이 애플리케이션을 배포할 때 AWS 서버리스 애플리케이션 모델 (AWS SAM), Apache Spark용 AWS Glue를 모니터링하기 위해 설정할 AWS Glue 작업자 및 작업 기간 임계값을 묻고 Ray용 AWS Glue 해당 계정에서 실행 중인 작업. 솔루션은 호출 시 이러한 값을 결정 기준으로 사용합니다. 다음은 아키텍처의 각 단계에 대한 분석입니다.

  1. 성공, 실패, 중지 또는 시간 초과된 Apache Spark용 AWS Glue 작업은 다음으로 전송됩니다. 아마존 이벤트 브리지.
  2. EventBridge는 AWS Glue에서 이벤트를 선택하고 이벤트를 트리거합니다. AWS 람다 기능.
  3. Lambda 함수는 이벤트를 처리하고 특정 작업 실행에 대해 데이터 및 분석 팀에 알려야 하는지 여부를 결정합니다. 이 기능은 다음 작업을 수행합니다.
    1. 이 함수는 다음을 사용하여 이메일을 보냅니다. 아마존 단순 알림 서비스 (Amazon SNS) 필요한 경우.
      • AWS Glue 작업이 성공했거나 작업자 또는 작업 기간 임계값을 초과하지 않고 중지되었거나 모니터링되지 않도록 태그가 지정된 경우 알림 또는 알림이 전송되지 않습니다.
      • 작업이 성공했지만 작업자 또는 작업 기간 임계값이 허용보다 높거나 작업이 실패하거나 시간 초과된 경우 Amazon SNS는 AWS Glue 작업, 실행 ID 및 경고 이유에 대한 정보가 포함된 알림을 지정된 이메일로 보냅니다. , AWS Glue 콘솔의 특정 실행 ID에 대한 링크와 함께.
    2. 이 함수는 작업 실행 정보를 다음에 기록합니다. 아마존 DynamoDB 이메일로 전달되는 주간 집계 보고서의 경우. Dynamo 테이블은 7일 동안 TTL(Time to Live)이 활성화되어 스토리지를 최소로 유지합니다.
  4. 일주일에 한 번 DynamoDB 내의 데이터는 가장 오래 실행되는 작업, 재시도 횟수, 실패, 제한 시간, 비용 분석 등과 같은 의미 있는 정보와 함께 별도의 Lambda 함수로 집계됩니다.
  5. 아마존 심플 이메일 서비스 (Amazon SES)는 Amazon SNS를 사용하는 것보다 형식이 더 나을 수 있기 때문에 보고서를 전달하는 데 사용됩니다. 이메일은 집계된 작업 실행 데이터에 대한 테이블을 제공하는 HTML 출력을 통해 형식화됩니다.
  6. 데이터 및 분석 팀은 Amazon SNS를 통해 진행 중인 작업 실행에 대한 알림을 받고 Amazon SES를 통해 주간 집계 보고서를 받습니다.

AWS Glue Python 셸 및 스트리밍 ETL 작업은 이 솔루션의 범위에 없기 때문에 지원되지 않습니다.

사전 조건

다음 전제 조건이 있어야 합니다.

솔루션 배포

이 AWS SAM 애플리케이션은 다음 리소스를 프로비저닝합니다.

  • 두 가지 EventBridge 규칙
  • 두 개의 Lambda 함수
  • SNS 주제 및 구독
  • DynamoDB 테이블
  • SES 구독
  • 필수 IAM 역할 및 정책

AWS SAM 애플리케이션을 배포하려면 다음 단계를 완료하십시오.

클론 aws-samples GitHub 리포지토리:

git clone https://github.com/aws-samples/aws-glue-job-tracker.git

AWS SAM 애플리케이션을 배포합니다.

cd aws-glue-job-tracker
sam deploy --guided

샘 배포 구성

다음 매개 변수를 제공하십시오.

  • GlueJobWorker임계값 – 임계값 알림을 보내기 전에 AWS Glue 작업을 실행할 수 있는 최대 작업자 수를 입력합니다. 기본값은 10입니다. Glue 작업이 지정된 것보다 높은 작업자로 실행되는 경우 경고가 전송됩니다.
  • GlueJobDuration임계값 – 임계값 알림을 보내기 전에 AWS Glue 작업을 실행할 최대 기간을 분 단위로 입력합니다. 기본값은 480분(8시간)입니다. Glue 작업이 지정된 것보다 더 긴 작업 기간으로 실행되면 경고가 전송됩니다.
  • GlueJob 알림 – Amazon SNS 및 Amazon SES를 통해 알림을 받아야 하는 사람의 이메일 또는 배포 목록을 입력합니다. 배포가 완료된 후 SNS 주제로 이동하여 필요에 따라 이메일을 추가할 수 있습니다.

Amazon SNS 및 Amazon SES에서 이메일을 받으려면 구독을 확인해야 합니다. 스택이 배포된 후 템플릿에 지정된 이메일을 확인하고 각 메시지에서 링크를 선택하여 확인합니다. 애플리케이션이 성공적으로 프로비저닝되면 AWS Glue for Apache Spark 작업 환경을 모니터링하기 시작합니다. 다음에 작업이 실패하거나 시간 초과되거나 지정된 임계값을 초과하면 Amazon SNS를 통해 이메일을 받게 됩니다. 예를 들어 다음 스크린샷은 성공했지만 작업 기간 임계값을 위반한 작업에 대한 SNS 메시지를 보여줍니다.

더 높은 작업자 또는 작업 기간 임계값에서 실행해야 하는 작업이 있을 수 있으며 솔루션에서 이를 평가하지 않기를 원할 수 있습니다. remediate 및 false 키/값으로 해당 작업에 태그를 지정하기만 하면 됩니다. 단계 함수는 여전히 호출되지만 태그를 인식하면 PASS 상태를 사용합니다. 작업 태그 지정에 대한 자세한 내용은 다음을 참조하십시오. AWS Glue의 AWS 태그.

글루 작업 구성에 태그 추가

주간 보고 구성

앞서 언급했듯이 Apache Spark용 AWS Glue 작업이 성공, 실패, 시간 초과 또는 중지되면 EventBridge는 이 이벤트를 Lambda로 전달하여 각 작업 실행에 대한 특정 정보를 기록합니다. 일주일에 한 번 별도의 Lambda 함수가 DynamoDB를 쿼리하고 작업 실행을 집계하여 Apache Spark 환경용 AWS Glue에 대한 의미 있는 통찰력과 권장 사항을 제공합니다. 이 보고서는 다음 스크린샷과 같이 표 구조의 이메일을 통해 전송됩니다. 최상위 수준의 가시성을 위한 것이므로 시간이 지남에 따라 가장 긴 작업 실행, 많은 재시도, 실패 등이 있는 작업을 볼 수 있습니다. 또한 해당 주에 각 AWS Glue 작업의 예상 비용으로 전체 비용 계산을 제공합니다. 보장 비용으로 사용해서는 안 됩니다. 작업당 정확한 비용을 확인하고 싶으시면, AWS 비용 및 사용 보고서 사용하기에 가장 좋은 리소스입니다. 다음 스크린샷은 AWS Glue 보고서 기능의 테이블 하나(총 XNUMX개)를 보여줍니다.

주간 보고서

정리

솔루션을 더 이상 실행하지 않으려면 AWS SAM 애플리케이션 삭제 프로비저닝된 각 계정에 대해. AWS SAM 스택을 삭제하려면 프로젝트 디렉터리에서 다음 명령을 실행합니다.

sam delete

결론

이 게시물에서는 조직의 표준 및 정책을 준수하기 위해 AWS Glue 작업 구성을 모니터링하고 비용을 최적화하는 방법에 대해 논의했습니다. 이 방법은 조직 전체에서 AWS Glue 작업에 대한 비용 제어를 제공할 수 있습니다. AWS Glue for Apache Spark 작업의 비용을 제어하는 ​​데 도움이 되는 몇 가지 다른 방법에는 새로 릴리스된 AWS Glue가 포함됩니다. 유연한 작업오토 스케일링. 또한 계정에 배포하기 위한 솔루션으로 AWS SAM 애플리케이션을 제공했습니다. AWS Glue에 대해 계속 알아보려면 이 게시물에 제공된 리소스를 검토하는 것이 좋습니다. AWS Glue를 사용한 비용 모니터링 및 최적화에 대해 자세히 알아보려면 다음을 방문하십시오. 이 최근 블로그. 모든 비용 최적화 옵션에 대해 자세히 설명하고 모든 Glue 작업 실행에 대한 지표를 사용하여 CloudWatch 대시보드를 구축하는 템플릿을 포함합니다.


저자 소개

마이클 해밀턴 남동부의 기업 고객이 AWS에서 분석 워크로드를 현대화하고 단순화할 수 있도록 지원하는 데 주력하는 수석 분석 솔루션 아키텍트입니다. 그는 산악자전거를 즐기고 일하지 않을 때는 아내와 세 자녀와 함께 시간을 보냅니다.

앵거스 퍼거슨 전 세계 고객을 만나 기술 문제를 해결하도록 돕는 데 열정적인 AWS의 솔루션 아키텍트입니다. Angus는 금융 서비스 산업의 고객에 초점을 맞춘 데이터 및 분석을 전문으로 합니다.

spot_img

VC 카페

VC 카페

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?