피드로 돌아가기
Turn on CMCD: make your CDN logs explain rebuffering
Dev.toDev.to
Infrastructure

CMCD 도입을 통한 CDN 로그 기반 QoE 가시성 확보 및 Rebuffering 원인 분석

Turn on CMCD: make your CDN logs explain rebuffering

Mason K2026년 6월 15일7intermediate

Context

기존 CDN 로그는 단순 요청 기록만 제공하여 클라이언트의 실제 버퍼링 상태나 QoE 지표를 파악하기 어려운 한계 존재. 플레이어 상태와 네트워크 로그 간의 상관관계 분석을 위해 세션별 컨텍스트 전송 체계 필요.

Technical Solution

  • CTA-5004 표준 기반의 CMCD 데이터를 세그먼트 요청 시마다 전송하여 플레이어 상태를 CDN 로그에 기록하는 구조 설계
  • Header Mode 채택 시 Clean URL 유지 및 Cache Key 보존이 가능하나, CORS 설정 및 CDN의 Custom Header 로깅 설정 필수
  • Query Mode 채택 시 모든 환경에서 동작하나, CDN의 Cache Key 제외 설정 누락 시 Cache Hit Ratio 급감 위험 존재
  • sid(Session ID)를 Join Key로 활용하여 개별 플레이어의 세그먼트 요청과 CDN의 TTFB, Cache Status를 결합한 세션 리포트 생성
  • Boolean 값(bs, su)의 Key-only 전송 방식과 Quoted String을 처리하는 커스텀 Node.js 파서 구현으로 데이터 정밀도 확보

- CDN 설정 전 DevTools Network 탭에서 sid의 세션 간 일관성 및 bs 플래그의 Rebuffering 시점 발생 여부 검증 - Header Mode 사용 시 Access-Control-Allow-Headers에 CMCD 관련 헤더 추가 여부 확인 - Query Mode 사용 시 CDN 캐시 설정에서 CMCD 쿼리 파라미터를 Cache Key 계산에서 제외 처리 - CMCD v1과 v2의 스키마 차이로 인한 파싱 오류 방지를 위해 클라이언트 버전 고정 및 Validator 도입 검토

원문 읽기