

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

# MediaTailor에 대한 CDN 세션 관리 및 추적 문제 해결
<a name="diagnose-session-issues"></a>

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

1. 세션 ID 일관성을 확인합니다.
   + 플레이어가 단일 재생 세션에 대한 모든 요청에서 동일한 세션 ID를 유지하는지 확인
   + CDN 로그를 확인하여 세션 IDs 올바르게 전달되고 있는지 확인합니다.
   + 쿼리 파라미터에서 세션 IDs 제대로 URL 인코딩되었는지 확인
   + CloudWatch Logs를 사용하여 요청 간 세션 ID 일관성을 확인합니다(아래 검증 단계 참조).

1. 세션 초기화 검증:
   + 첫 번째 매니페스트 요청이 세션을 성공적으로 생성하는지 확인
   + 적절한 세션 파라미터 전달 확인(예: `aws.sessionId`)
   + 디버그 로그를 사용하여 세션 초기화 확인(아래 디버그 로그 설정 참조)

1. 자세한 세션 문제 해결을 위해 디버그 로깅을 활성화합니다.
   + **서버 측 보고의 경우:** 재생 요청에 `?aws.logMode=DEBUG` 추가:

     ```
     GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.logMode=DEBUG
     ```
   + **클라이언트 측 보고의 경우:** 세션 초기화 요청 본문`"logMode": "DEBUG"`에 포함
   + **중요:** `DEBUG` 값은 대/소문자를 구분합니다.
   + 동시에 허용되는 최대 10개의 활성 디버그 세션

1. 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"
     ```

1. CDN을 통한 세션 파라미터 전달 테스트:
   + MediaTailor에 직접 세션 파라미터를 사용하여 매니페스트 요청 테스트(CDN 우회)
   + CDN이 있는 세션 동작과 없는 세션 동작을 비교하여 전달 문제 식별
   + CDN 쿼리 파라미터 전달 구성에 세션 관련 파라미터가 포함되어 있는지 확인
   + CDN이 세션별 응답을 캐싱하지 않는지 확인

**일반적인 세션 오류 메시지:**
+ `ConflictException` (HTTP 409) - 동일한 세션에 대한 여러 동시 재생 목록 요청입니다. **해결 방법:** 플레이어가 HLS 사양에 따라 한 번에 하나씩 재생 목록을 요청하는지 확인합니다.
+ `NotFoundException` (HTTP 404) - 세션을 사용할 수 없거나 구성이 존재하지 않습니다. **해결 방법:** 구성 유효성을 확인하고 세션을 다시 초기화합니다.
+ `BadRequestException` (HTTP 400) - 잘못된 세션 ID 또는 잘못된 형식의 요청입니다. **해결 방법:** 요청 형식 및 세션 ID 유효성 확인

**추가 문제 해결 리소스:**
+ 전체 디버그 로깅 설정 및 필드 참조는 섹션을 참조하세요. [AWS Elemental MediaTailor 디버그 로그 생성](debug-log-mode.md) 
+ CloudWatch Logs 쿼리 예제 및 로그 분석은 섹션을 참조하세요. [Amazon CloudWatch Logs에 직접 AWS Elemental MediaTailor 로그 작성](monitoring-cw-logs.md) 
+ CDN 쿼리 파라미터 전달 구성은 섹션을 참조하세요. [MediaTailor에 대한 CDN 라우팅 동작 설정](cdn-routing-behaviors.md) 
+ 포괄적인 오류 코드 참조는 섹션을 참조하세요. [MediaTailor에서 재생 문제 해결](playback-errors.md) 

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