Question
MediaPackage VOD 설정 과정에서 서비스 상태 Fail에 대한 이벤트나 에러 로그를 확인하는 방법 문의
Answer
1. 서비스 상태 Fail에 대한 이벤트 또는 에러 로그 확인 방법
AWS MediaPackage는 CloudWatch Events를 사용하여 JSON 형태로 표시되는 이벤트를 수집하고, AWS 람다, Amazon SNS, Amazon SQS, Amazon Kinesis Data Streams의 스트림과 같은 하나 이상의 대상으로 라우팅하는 규칙을 설정할 수 있습니다.
MediaPackege에서 확인 가능한 이벤트 유형은 아래와 같으며, MediaPackage VOD 설정과 관련된 상태 이벤트에 대한 원인을 확인하기 위해서는 [ Input notification events ] - [ VOD ingest status change ] - [ IngestError ] 를 활용할 수 있습니다.
즉, MediaPackage 설정 과정에서 서비스 상태 Fail에 대한 이벤트나 에러 로그를 확인하기 위해서는 EventBridge를 활용하여 IngestError 이벤트를 감지하여 메시지를 반환 받을 수 있습니다.
2. MediaPackage 에서 확인 가능한 이벤트 유형
Input notification events
Maximum input streams exceeded
Input switch
VOD ingest status change (VOD 수집 상태 이벤트)
IngestStart
IngestError
IngestComplete event
VOD playback readiness
Key provider notification events
Harvest job notification events
{
"version": "0",
"id": "8f9b8e72-0b31-e883-f19c-aec84742f3ce",
"detail-type": "MediaPackage Input Notification",
"source": "aws.mediapackage",
"account": "123456789012",
"time": "2018-07-16T17:29:36Z",
"region": "us-east-1",
"resources": ["arn:aws:mediapackage:us-east-1:123456789012:origin_endpoints/82d6b9bc44cb4612c487963d6e8d0f1b"],
"detail": {
"event": "IngestError",
"message": "No media playlists founds"
}
}
3. EventBridge를 통해 'IngestError' 이벤트를 감지하여 메시지 받는 방법
1) SNS 생성
해당 이벤트가 발생했을 때 이메일로 받아보고 싶다면 SNS 주제와 구독을 이메일로 설정하여 이벤트브릿지 규칙 생성 시 대상으로 연결해 주어야 합니다.
2) EventBridge 규칙 생성
2.1 이벤트 패턴 : "detail.event": ["IngestError"] 추가
aws에서 기본으로 제공되는 이벤트 패턴 양식을 사용할 수도 있지만, 특정한 이벤트를 받아보고 싶다면
사용자 지정 패턴을 사용하여 반환받고자 하는 이벤트를 추가해 줄 수 있습니다.
VOD Status가 Fail이 되는 원인을 파악하기 위해 Input notification 중에서도 IngestError에 대한 부분만
받아볼 수 있도록 "detail.event": ["IngestError"] 를 추가할 수 있습니다.
2.2 샘플 이벤트 작성
아래와 같이 샘플 이벤트에 detail.event와 detail.message를 추가한 후 [ 테스트 패턴 ] 을 누르면
“샘플 이벤트가 이벤트 패턴과 일치합니다.” 메시지가 반환이 되는 것을 확인할 수 있습니다.
위와 같이 규칙을 생성하게 되면, MediaPackage에서 IngestError가 발생했을 때 대상으로 연결된 SNS 구독으로 에러 메시지가 전달됩니다.
이렇게 EventBridge Rule을 활용하면 MediaPackage 뿐만 아니라, AWS 다양한 리소스에서도 사용자 지정 이벤트 패턴을 통해 detail 이벤트를 추가하여 특정 이벤트 메시지를 받아볼 수 있습니다.
감사합니다.
=== 참고 문서 ===
[1] AWS Elemental MediaPackage란 무엇인가요?
https://docs.aws.amazon.com/ko_kr/mediapackage/latest/ug/what-is.html
[2] AWS Elemental MediaPackage_입력 (Input notification events)
https://docs.aws.amazon.com/ko_kr/mediapackage/latest/ug/cloudwatch-events-example.html