MediaTailor에 대한 프로덕션 지원 CloudFront 구성 - AWS Elemental MediaTailor

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

MediaTailor에 대한 프로덕션 지원 CloudFront 구성

이 CloudFront 배포 구성은 서버 측 광고 삽입을 통해 MediaTailor 콘텐츠를 대규모로 제공하는 데 필요한 모든 것을 제공합니다. 이 구성을 복사하고 특정 오리진 및 요구 사항으로 사용자 지정합니다.

이 구성이 수행하는 작업

이 구성은 최적의 캐싱 및 성능으로 모든 MediaTailor 요청 유형을 처리하는 프로덕션 지원 CloudFront 배포를 생성합니다. 여기에는 요청을 올바르게 라우팅하고 콘텐츠를 적절하게 캐싱하는 네 가지 캐시 동작이 있는 세 가지 오리진(콘텐츠, MediaTailor 세그먼트 및 MediaTailor 매니페스트)이 포함됩니다.

이 구성을 사용해야 하는 경우

이 설정은 서버 측 광고 삽입이 필요한 라이브 스트리밍, video-on-demand 및 하이브리드 워크플로에 적합합니다.

3원 아키텍처

MediaTailor는 3원 아키텍처 패턴을 사용하여 콘텐츠 전송 및 광고 삽입 성능을 최적화합니다. 각 오리진은 광고 삽입 워크플로에서 특정 목적을 수행합니다.

콘텐츠 오리진

MediaTailor에 피드하는 실제 콘텐츠 오리진입니다. 예를 들어 이는 AWS Elemental MediaPackage V2 또는 다른 콘텐츠 전송 서비스일 수 있습니다. 이 오리진은 광고 삽입 전에 원래 콘텐츠를 제공합니다. 일반적인 예는 다음과 같습니다.

  • MediaPackage V2 패키징 구성

  • 타사 콘텐츠 전송 네트워크

  • 온프레미스 스트리밍 서버

  • 정적 콘텐츠가 있는 Amazon S3 버킷

MediaTailor 세그먼트 오리진

이 오리진은 호스트 이름을 사용하고 MediaTailor가 호스트 이름을 인코딩한 후 실제 광고 세그먼트를 segments.mediatailor.region.amazonaws.com 제공합니다. 광고가 포함된 비디오 세그먼트입니다. 이 오리진은 다음을 처리합니다.

  • 콘텐츠와 동일한 형식의 트랜스코딩된 광고 세그먼트

  • /segment/* 경로 패턴에서 리디렉션된 요청

  • 서버 측 광고 삽입을 위해 처리된 광고 세그먼트

MediaTailor 매니페스트 오리진

이 오리진은 호스트 이름을 사용manifests.mediatailor.region.amazonaws.com하며 지정된 리전의 재생 구성을 위한 AWS 리전 호스트 이름으로 사용할 수 있습니다. MediaTailor는 요청의 경로를 기반으로 올바른 재생 구성을 선택합니다. 이 오리진은 다음을 제공합니다.

  • 최종 사용자별 광고 삽입이 포함된 개인화된 HLS 및 DASH 매니페스트

  • 캐시 가능한 콘텐츠에 대한 서버 가이드 광고 삽입(SGAI) 매니페스트

  • 서버 측 보고를 위한 광고 추적 및 비컨 처리

오리진 호스트 이름을 사용하면 지정된 리전에 있고 요청 경로에 재생 구성 이름을 포함하는 경우 동일한 CloudFront 배포에서 작동하는 여러 재생 구성을 가질 manifests.mediatailor.region.amazonaws.com수 있습니다. 예시:

  • https://your-distribution.cloudfront.net/v1/master/playback-config-1/manifest.m3u8

  • https://your-distribution.cloudfront.net/v1/master/playback-config-2/manifest.m3u8

특정 콘텐츠 오리진 요구 사항에 따라 오리진 요청 정책을 검토하고 조정합니다. 이 예제에서는 S3 오리진 정책을 사용하지만 사용자 지정 오리진에 대해 다른 정책이 필요할 수 있습니다. 오리진 요청 정책을 선택할 때 다음 요소를 고려하세요.

  • S3 오리진: Amazon S3 버킷Managed-CORS-S3Origin에 사용

  • 사용자 지정 오리진: 사용자 지정 HTTP 오리진Managed-AllViewerAndCloudFrontHeaders-2022-6Managed-AllViewer 또는 사용

  • MediaPackage 오리진: MediaPackage V2 엔드포인트Managed-CORS-S3Origin에 사용

Origins table showing ContentOrigin, MediaTailorSegments, and MediaTailorManifests with their respective details.

캐시 동작 우선 순위 및 구성

MediaTailor는 다양한 유형의 요청을 올바르게 처리하기 위해 특정 캐시 동작 구성이 필요합니다. CDNs은 캐시 동작을 순서대로 처리하고(가장 작음에서 가장 큼) 일치하는 첫 번째 경로 패턴에 동작을 사용하기 때문에 캐시 동작의 우선 순위가 중요합니다. 이 우선 순위를 이해하는 것은 문제 해결에 필수적입니다.

  • 우선 순위 0: 가장 구체적인 패턴(예: /tm/*)이 먼저 평가됩니다.

  • 우선 순위가 높은 숫자: 덜 구체적인 패턴은 순서대로 평가됩니다.

  • 기본 동작: 다른 패턴과 일치하지 않는 모든 요청을 캐싱합니다.

요청이 예상대로 동작하지 않는 경우 경로 패턴이 의도하지 않은 방식으로 겹치지 않는지 확인합니다.

Table showing behaviors with path patterns, origins, and policies for different URL paths.

우선순위 0: 광고 세그먼트 경로 동작

이 동작은 세그먼트 경로 동작에서 리디렉션된 요청을 처리하여 실제 광고 세그먼트를 처리합니다. CloudFront는 /tm/* 경로 패턴이 있는 모든 요청에 다음 동작을 적용합니다. 광고 세그먼트 전송은 중단 없는 재생에 중요하므로이 동작이 우선순위가 가장 높습니다.

  • 경로 패턴: /tm/*

    이 패턴과 일치하는 URLs예:

    • https://your-distribution.cloudfront.net/tm/ad-segment-001.ts

    • https://your-distribution.cloudfront.net/tm/transcoded-ad.m4s

  • 오리진: segments.mediatailor.region.amazonaws.com 도메인으로 생성한 오리진입니다.

    오리진에 대한 이전 섹션의 예제에서 MediaTailorSegments입니다.

  • 캐시 정책: Managed-CachingOptimized

    캐시 정책은 CORS Managed-CachingOptimized 캐시 중독 문제를 방지하기 위해 캐시 키에 오리진 헤더를 포함하도록 구성해야 합니다. 캐시 키에 Origin 헤더가 없으면 다음과 같은 시나리오가 발생할 수 있습니다.

    1. Origin 헤더가 없는 요청은 CloudFront에서 수신하고 캐싱합니다.

    2. Origin 헤더가 있는 후속 요청은 캐시된 응답(CORS 헤더가 없음)을 수신합니다.

    3. 브라우저가 CORS 헤더 누락으로 인해 응답을 거부하여 재생 실패

    CloudFront 관리형 캐시 정책에 포함된 항목에 대한 자세한 내용은 CloudFront 사용 설명서의 CachingOptimized를 참조하세요. 타사 CDN의 관리형 정책에서 이러한 동일한 설정을 사용할 수도 있습니다.

  • 오리진 요청 정책: Managed-CORS-S3Origin

    CloudFront 관리형 오리진 요청 정책에 포함된 항목에 대한 자세한 내용은 CloudFront 사용 설명서의 CORS-S3Origin을 참조하세요. 타사 CDN의 관리형 정책에서 이러한 동일한 설정을 사용할 수도 있습니다.

  • 응답 헤더 정책: Managed-CORS-with-preflight-and-SecurityHeadersPolicy

    CORS 캐시 중독을 방지하려면 Managed-CORS-with-preflight-and-SecurityHeadersPolicy 응답 헤더 정책을 사용하는 것이 중요합니다. 이 정책은 CloudFront가 응답에 Access-Control-Allow-Origin 헤더를 포함하도록 하며, 이는 웹 기반 플레이어가 서로 다른 오리진의 광고 세그먼트에 액세스하는 데 필요합니다.

    응답 헤더 정책에 포함된 항목에 대한 자세한 내용은 CloudFront 사용 설명서의 CORS-with-preflight-and-SecurityHeadersPolicy를 참조하세요.

이러한 설정을 다른 CDNs에 적용

CloudFront 이외의 CDN을 사용하는 경우 다음을 수행하는 동등한 설정을 찾습니다.

경로 패턴 일치

MediaTailor 광고 세그먼트를 처리하도록 /tm/* 경로 패턴에 대한 특정 동작 구성

캐시 키 구성

캐시 키에 Origin 헤더를 포함하여 응답이 서로 다른 오리진에 대해 별도로 캐시되도록 합니다.

헤더 전달

Origin 헤더 및 기타 CORS 관련 헤더를 오리진에 전달

응답 헤더 관리

응답에 Access-Control-Allow-Origin 헤더가 표시되도록 CDN 구성

특정 용어 및 구성 옵션은 CDN 공급자에 따라 다르지만 기본 원칙은 동일하게 유지됩니다.

우선순위 1: 서버 안내 광고 삽입 동작

이 동작은 고객이 캐시 가능한 매니페스트를 제공하는 안내 모드를 구성할 때 AWS Elemental MediaTailor 서버 가이드 광고 삽입 이해 (SGAI) 요청을 처리합니다. CloudFront는 /i-media/* 경로 패턴이 있는 모든 요청에 다음 동작을 적용합니다. 매니페스트는 최종 사용자별로 고유하지 않으므로 SGAI를 사용하면 캐싱 성능이 향상됩니다.

  • 경로 패턴: /i-media/* (SGAI용 iMedia 경로)

    이 패턴과 일치하는 URLs예:

    • https://your-distribution.cloudfront.net/i-media/your-config/manifest.m3u8

    • https://your-distribution.cloudfront.net/i-media/your-config/playlist.mpd

  • 오리진: manifests.mediatailor.region.amazonaws.com 도메인으로 생성한 오리진입니다.

    오리진에 대한 이전 섹션의 예제에서 MediaTailorManifests입니다.

  • 캐시 정책: Managed-CachingOptimized

    CloudFront 관리형 캐시 정책에 포함된 항목에 대한 자세한 내용은 CloudFront 사용 설명서의 CachingOptimized를 참조하세요. 타사 CDN의 관리형 정책에서 이러한 동일한 설정을 사용할 수도 있습니다.

  • 오리진 요청 정책: Managed-CORS-S3Origin

    CloudFront 관리형 오리진 요청 정책에 포함된 항목에 대한 자세한 내용은 CloudFront 사용 설명서의 CORS-S3Origin을 참조하세요. 타사 CDN의 관리형 정책에서 이러한 동일한 설정을 사용할 수도 있습니다.

  • 응답 헤더 정책: Managed-CORS-with-preflight-and-SecurityHeadersPolicy

    응답 헤더 정책에 포함된 항목에 대한 자세한 내용은 CloudFront 사용 설명서의 CORS-with-preflight-and-SecurityHeadersPolicy를 참조하세요.

우선순위 2: 개인화된 매니페스트 동작

이 동작은 개인화된 매니페스트 요청을 처리합니다. CloudFront는 /v1/* 경로 패턴이 있는 모든 요청에 다음 동작을 적용합니다. CloudFront는 다음 동작을 적용하고 개인화된 매니페스트는 최종 사용자별 광고 콘텐츠 URLs 포함하므로 캐싱하지 않습니다. 이러한 동작은 /v1/* 경로 패턴이 있는 모든 요청에 적용됩니다. 이는 각 최종 사용자가 맞춤형 광고 삽입이 포함된 고유한 매니페스트를 수신하는 핵심 MediaTailor 기능입니다.

  • 경로 패턴: /v1/* (표준 V1 MediaTailor 요청)

    이 패턴과 일치하는 URLs예:

    • https://your-distribution.cloudfront.net/v1/master/your-config/manifest.m3u8

    • https://your-distribution.cloudfront.net/v1/dash/your-config/manifest.mpd

  • 오리진: manifests.mediatailor.region.amazonaws.com 도메인으로 생성한 오리진입니다.

    오리진에 대한 이전 섹션의 예제에서 MediaTailorManifests입니다.

  • 캐시 정책: Managed-CachingDisabled

    캐시 정책에 포함된 항목에 대한 자세한 내용은 CloudFront 사용 설명서의 CachingDisabled를 참조하세요.

  • 오리진 요청 정책: Managed-AllViewerAndCloudFrontHeaders-2022-6

    오리진 요청 정책에 포함된 항목에 대한 자세한 내용은 CloudFront 사용 설명서의 AllViewerAndCloudFrontHeaders-2022-6을 참조하세요.

  • 응답 헤더 정책: Managed-CORS-with-preflight-and-SecurityHeadersPolicy

    응답 헤더 정책에 포함된 항목에 대한 자세한 내용은 CloudFront 사용 설명서의 CORS-with-preflight-and-SecurityHeadersPolicy를 참조하세요.

수락-인코딩 헤더

CDN이 최종 사용자로부터 Accept-Encoding 헤더를 보존하는 것이 좋습니다. 이 헤더는 맞춤형 매니페스트 압축에 대한 MediaTailor 지침을 제공합니다.

CloudFront에서 AllViewerAndCloudFrontHeaders 오리진 요청 정책에는 최종 사용자의 Accept-Encoding 헤더 전달이 포함됩니다. 다른 CDN을 사용하는 경우이 헤더를 보존해야 합니다.

다음은 MediaTailor가 Accept-Encoding 헤더를 처리하는 방법입니다.

  • 레거시 디바이스: gzip을 지원하지 않는 이전 스마트 TVs는 Accept-Encoding 헤더를 보내지 않으므로 MediaTailor는 압축되지 않은 매니페스트를 반환합니다.

  • 최신 디바이스: iPhones, Chrome 브라우저 및 기타 최신 클라이언트가 Accept-Encoding 헤더를 전송하여 MediaTailor가 전송 전에 매니페스트를 압축하도록 허용

우선순위 3: 서버 측 비컨 경로 동작

이 동작은 MediaTailor에 대한 요청을 처리하여에 대한 리디렉션을 생성합니다서버 측 추적. 이러한 요청은 비컨을 추적하는 데 필수적이므로 모든 요청은 MediaTailor에서 처리해야 합니다. CloudFront는 /segment/* 경로 패턴이 있는 모든 요청에 다음 동작을 적용합니다.

  • 경로 패턴: /segment/*

    이 패턴과 일치하는 URLs예:

    • https://your-distribution.cloudfront.net/segment/tracking-beacon-123

    • https://your-distribution.cloudfront.net/segment/ad-request-456.ts

  • 오리진: manifests.mediatailor.region.amazonaws.com 도메인으로 생성한 오리진입니다.

    오리진에 대한 이전 섹션의 예제에서 MediaTailorManifests입니다.

  • 캐시 정책: Managed-CachingDisabled

    캐시 정책에 포함된 항목에 대한 자세한 내용은 CloudFront 사용 설명서의 CachingDisabled를 참조하세요.

  • 오리진 요청 정책: Managed-AllViewerAndCloudFrontHeaders-2022-6

    오리진 요청 정책에 포함된 항목에 대한 자세한 내용은 CloudFront 사용 설명서의 AllViewerAndCloudFrontHeaders-2022-6을 참조하세요.

  • 응답 헤더 정책: Managed-CORS-with-preflight-and-SecurityHeadersPolicy

    응답 헤더 정책에 포함된 항목에 대한 자세한 내용은 CloudFront 사용 설명서의 CORS-with-preflight-and-SecurityHeadersPolicy를 참조하세요.

MediaTailor는 이러한 요청을 처리할 때 실제 세그먼트 위치를 가리키는 경로와 함께 302 리디렉션 응답을 반환합니다. 예를 들어에 대한 요청은 세그먼트 오리진/tm/encoded-ad-segment.ts에서 로 리디렉션/segment/ad123.ts될 수 있습니다.

우선순위 4: 콘텐츠 오리진 경로 동작

요청 경로가 다른 패턴과 일치하지 않는 경우 CloudFront는 기본 동작을 적용합니다. 이 동작은 MediaTailor에서 처리하지 않고 요청을 콘텐츠 오리진으로 직접 보냅니다. 이렇게 하면 필요한 경우 콘텐츠 오리진(예: MediaPackage V2)에 직접 액세스할 수 있습니다. CloudFront는 이전 경로 패턴을 포함하지 않는 모든 요청에 다음 동작을 적용합니다.

  • 경로 패턴: (*)

  • 오리진: 콘텐츠 오리진의 도메인으로 생성한 오리진입니다.

    오리진에 대한 이전 섹션의 예제에서 ContentOrigin입니다.

  • 캐시 정책: Managed-CachingOptimized

    CloudFront 관리형 캐시 정책에 포함된 항목에 대한 자세한 내용은 CloudFront 사용 설명서의 CachingOptimized를 참조하세요. 타사 CDN의 관리형 정책에서 이러한 동일한 설정을 사용할 수도 있습니다.

    참고

    지연 시간이 짧은 HLS 구현의 경우 표준 정책 대신 지연 시간이 짧은 HLS(LLH) 명령과 함께 사용자 지정 캐싱 CachingOptimized 정책을 사용하는 것이 좋습니다.

  • 오리진 요청 정책: 적절한 헤더와 쿼리 문자열 파라미터를 콘텐츠 오리진에 전달하도록 구성됩니다. 사용 가능한 관리형 오리진 요청 정책에 대한 자세한 내용은 CF 개발자 안내서의 관리형 오리진 요청 정책 사용을 참조하세요.

  • 응답 헤더 정책: Managed-CORS-with-preflight-and-SecurityHeadersPolicy

    기본 콘텐츠 오리진 동작은 일반적으로 광고 세그먼트 동작과 동일한 CORS 캐시 중독 위험에 직면하지 않지만 응답 Managed-CORS-with-preflight-and-SecurityHeadersPolicy 헤더 정책을 사용하고 캐시 키에 Origin 헤더를 포함하는 것이 좋습니다. 이렇게 하면 모든 콘텐츠 유형에서 일관된 CORS 처리를 보장하고 웹 기반 플레이어의 잠재적 재생 문제를 방지할 수 있습니다.

    콘텐츠 세그먼트의 경우 Managed-CachingOptimized 캐시 정책은 우수한 성능을 제공하는 반면 Managed-CORS-with-preflight-and-SecurityHeadersPolicy 응답 헤더 정책은 적절한 CORS 처리를 보장합니다. 이 조합을 사용하면 CORS 헤더가 필요한 웹 기반 플레이어와의 호환성을 유지하면서 효율적인 캐싱이 가능합니다.

    광고 세그먼트와 콘텐츠 세그먼트 모두에 일관된 CORS 처리를 적용하면 보다 안정적인 재생 환경이 생성되고 문제 해결이 간소화됩니다. 적절한 CORS 구성이 없으면 콘텐츠와 광고 간에 전환할 때 플레이어가 일관되지 않은 동작을 경험할 수 있습니다.

    응답 헤더 정책에 포함된 항목에 대한 자세한 내용은 CloudFront 사용 설명서의 CORS-with-preflight-and-SecurityHeadersPolicy를 참조하세요.