View a markdown version of this page

MediaTailor에 대한 CDN 세션 관리 및 추적 문제 해결 - AWS Elemental MediaTailor

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

MediaTailor에 대한 CDN 세션 관리 및 추적 문제 해결

AWS Elemental MediaTailor 콘텐츠 전송 네트워크(CDN) 세션 관리는 적절한 광고 개인화 및 추적에 매우 중요합니다. 요청 간에 세션 관련 오류 또는 일관되지 않은 동작이 발생하는 경우:

  1. 세션 ID 일관성을 확인합니다.

    • 플레이어가 단일 재생 세션에 대한 모든 요청에서 동일한 세션 ID를 유지하는지 확인

    • CDN 로그를 확인하여 세션 IDs 올바르게 전달되고 있는지 확인합니다.

    • 쿼리 파라미터에서 세션 IDs 제대로 URL 인코딩되었는지 확인

    • CloudWatch Logs를 사용하여 요청 간 세션 ID 일관성을 확인합니다(아래 검증 단계 참조).

  2. 세션 초기화 검증:

    • 첫 번째 매니페스트 요청이 세션을 성공적으로 생성하는지 확인

    • 적절한 세션 파라미터 전달 확인(예: aws.sessionId)

    • 디버그 로그를 사용하여 세션 초기화 확인(아래 디버그 로그 설정 참조)

  3. 자세한 세션 문제 해결을 위해 디버그 로깅을 활성화합니다.

    • 서버 측 보고의 경우: 재생 요청에 ?aws.logMode=DEBUG 추가:

      GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.logMode=DEBUG
    • 클라이언트 측 보고의 경우: 세션 초기화 요청 본문"logMode": "DEBUG"에 포함

    • 중요: DEBUG 값은 대/소문자를 구분합니다.

    • 동시에 허용되는 최대 10개의 활성 디버그 세션

  4. CloudWatch Logs 쿼리를 사용하여 세션 동작을 검증합니다.

    • 디버그 세션이 활성 상태인지 확인합니다.

      fields @timestamp, @message | filter sessionId = "your-session-id-here" | filter eventType = "SESSION_INITIALIZED" # client-side reporting or mediaTailorPath like "/v1/master" # server-side reporting HLS or mediaTailorPath like "/v1/dash" # server-side reporting DASH
    • 세션의 모든 이벤트 보기:

      fields @timestamp, @message, eventType, mediaTailorPath | filter sessionId = "your-session-id-here" | sort @timestamp asc
    • 세션의 매니페스트 생성을 확인합니다.

      fields @timestamp, responseBody, @message | filter mediaTailorPath like "/v1/master/" and eventType = "GENERATED_MANIFEST" and sessionId = "your-session-id-here"
  5. CDN을 통한 세션 파라미터 전달 테스트:

    • MediaTailor에 직접 세션 파라미터를 사용하여 매니페스트 요청 테스트(CDN 우회)

    • CDN이 있는 세션 동작과 없는 세션 동작을 비교하여 전달 문제 식별

    • CDN 쿼리 파라미터 전달 구성에 세션 관련 파라미터가 포함되어 있는지 확인

    • CDN이 세션별 응답을 캐싱하지 않는지 확인

일반적인 세션 오류 메시지:

  • ConflictException (HTTP 409) - 동일한 세션에 대한 여러 동시 재생 목록 요청입니다. 해결 방법: 플레이어가 HLS 사양에 따라 한 번에 하나씩 재생 목록을 요청하는지 확인합니다.

  • NotFoundException (HTTP 404) - 세션을 사용할 수 없거나 구성이 존재하지 않습니다. 해결 방법: 구성 유효성을 확인하고 세션을 다시 초기화합니다.

  • BadRequestException (HTTP 400) - 잘못된 세션 ID 또는 잘못된 형식의 요청입니다. 해결 방법: 요청 형식 및 세션 ID 유효성 확인

추가 문제 해결 리소스:

성공 기준: 해결되면 세션이 올바르게 초기화되고, 요청 간에 일관된 세션 IDs 유지하며, 디버그 로그에 오류 없이 적절한 SESSION_INITIALIZED 이벤트와 매니페스트 생성이 표시되어야 합니다.