작업 모니터링 - Amazon EMR

작업 모니터링

Amazon CloudWatch Events를 사용하여 Amazon EMR on EKS 가상 클러스터에서 실행하는 작업을 추적할 수 있습니다. 이벤트를 사용하여 가상 클러스터에서 실행하는 작업의 활동 및 상태를 추적할 수 있습니다. 다음 주제에서는 리소스 상태를 유지 관리하기 위해 모니터링을 효과적으로 구성하는 방법을 보여줍니다.

Amazon CloudWatch Events를 사용하여 작업 모니터링

Amazon EMR on EKS에서는 작업 실행 상태가 변경될 때 이벤트를 생성합니다. 각 이벤트는 가상 클러스터 ID 및 영향을 받은 작업 실행 ID와 같은 이벤트에 대한 추가 세부 정보와 함께 이벤트가 생성된 날짜 및 시간과 같은 정보를 제공합니다.

이벤트를 사용하여 가상 클러스터에서 실행하는 작업의 활동 및 상태를 추적할 수 있습니다. 또한 Amazon CloudWatch Events를 사용하여 작업 실행 시 지정된 패턴과 일치하는 이벤트가 생성될 때 취할 조치를 정의할 수 있습니다. 이벤트는 작업 실행 수명 주기 동안 특정 발생을 모니터링하는 데 유용합니다. 예를 들어, 작업 실행 상태가 submitted에서 running으로 변경되는 시기를 모니터링할 수 있습니다. CloudWatch Events에 대한 자세한 내용은 Amazon Amazon EventBridge 사용 설명서를 참조하세요.

다음 테이블에는 Amazon EMR on EKS 이벤트와 함께 이벤트가 나타내는 상태 또는 상태 변경, 이벤트의 심각도 및 이벤트 메시지가 나와 있습니다. 각 이벤트는 자동으로 이벤트 스트림으로 전송되는 JSON 객체로 표시됩니다. JSON 객체에는 이벤트에 대한 추가 세부 정보가 포함되어 있습니다. CloudWatch Events를 사용한 이벤트 처리를 위한 규칙은 JSON 객체의 패턴과 일치하므로 JSON 객체는 이 규칙을 설정할 때 특히 중요합니다. 자세한 내용은 Amazon EventBridge 사용 설명서Amazon EventBridge 이벤트 패턴 및 Amazon EMR on EKS 이벤트를 참조하세요.

작업 실행 상태 변경 이벤트
State 심각도 메시지
SUBMITTED INFO UTC TimeJobRunID 작업 실행(JobRunName)이 가상 클러스터 VirtualClusterId에 제출되었습니다.
실행 중(RUNNING) INFO Time에 가상 클러스터 VirtualClusterId에서 JobRunId 작업 실행(JobRunName)의 실행이 시작되었습니다.
완료됨 INFO 가상 클러스터 VirtualClusterId에서 작업 실행 jobRunId(JobRunName)이(가) Time에 완료되었습니다. 이 작업 실행이 Time에 실행을 시작했고 완료되는 데 Num분이 걸렸습니다.
취소됨 WARN Time에 가상 클러스터 VirtualClusterId에서 JobRunId 작업 실행(JobRunName)에 대한 취소 요청이 성공했으며, 이제 작업 실행이 취소됩니다.
FAILED ERROR Time에 가상 클러스터 VirtualClusterId에서 jobRunId 작업 실행(JobRunName)이 완료되었습니다.

CloudWatch Events를 통해 Amazon EMR on EKS 자동화

Amazon CloudWatch Events를 사용하여 AWS 서비스를 자동화함으로써 애플리케이션 가용성 문제나 리소스 변경 같은 시스템 이벤트에 자동으로 대응할 수 있습니다. AWS 서비스의 이벤트는 거의 실시간으로 CloudWatch Events로 전송됩니다. 원하는 이벤트만 표시하도록 간단한 규칙을 작성한 후 규칙과 일치하는 이벤트 발생 시 실행할 자동화 태스크를 지정할 수 있습니다. 자동으로 트리거할 수 있는 태스크는 다음과 같습니다.

  • AWS Lambda 함수 호출

  • Amazon EC2 Run Command 호출

  • Amazon Kinesis Data Streams로 이벤트 릴레이

  • AWS Step Functions 상태 머신 활성화

  • Amazon Simple Notification Service(SNS) 주제 또는 Amazon Simple Queue Service(SQS) 대기열 알림

다음은 Amazon EMR on EKS에서 CloudWatch Events를 사용하는 몇 가지 예입니다.

  • 작업 실행에 성공하면 Lambda 함수 활성화

  • 작업 실행에 실패하면 Amazon SNS 주제 알림

Amazon EMR on EKS는 SUBMITTED, RUNNING, CANCELLED, FAILED, COMPLETED 상태 변경에 대해 'detail-type:' 'EMR Job Run State Change'에 대한 CloudWatch Events를 생성합니다.

예제: Lambda를 간접 호출하는 규칙 설정

다음 단계를 사용하여 'EMR 작업 실행 상태 변경' 이벤트가 있을 때 Lambda를 간접 호출하는 CloudWatch 이벤트 규칙을 설정합니다.

aws events put-rule \ --name cwe-test \ --event-pattern '{"detail-type": ["EMR Job Run State Change"]}'

소유하고 있는 Lambda 함수를 새 대상으로 추가하고 다음과 같이 Lambda 함수를 간접 호출할 수 있는 권한을 CloudWatch Events에 부여합니다. 123456789012를 계정 ID로 바꿉니다.

aws events put-targets \ --rule cwe-test \ --targets Id=1,Arn=arn:aws:lambda:us-east-1:123456789012:function:MyFunction
aws lambda add-permission \ --function-name MyFunction \ --statement-id MyId \ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com
참고

순서가 잘못되었거나 누락되는 등 알림 이벤트의 순서 또는 존재 여부에 따라 프로그램을 작성할 수 없을 수 있습니다. 이벤트는 최선의 작업을 기반으로 발생됩니다.

Amazon CloudWatch Events를 사용하여 재시도 정책을 포함하는 작업의 드라이버 포드 모니터링

CloudWatch 이벤트를 사용하면 재시도 정책을 포함하는 작업에서 생성된 드라이버 포드를 모니터링할 수 있습니다. 자세한 내용은 이 안내서의 재시도 정책으로 작업 모니터링 섹션을 참조하세요.