

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

# Amazon CloudFront AWS Elemental MediaTailor 와 통합
<a name="cloudfront-specific-recommendations"></a>

AWS Elemental MediaTailor 는 Amazon CloudFront와 통합되어 콘텐츠 전송 성능과 신뢰성을 개선합니다. CloudFront는 엣지 로케이션이라는 전 세계 데이터 센터 네트워크를 통해 콘텐츠를 배포하는 콘텐츠 전송 네트워크(CDN)입니다. 최종 사용자가 MediaTailor에서 콘텐츠를 요청하면 CloudFront는 가장 가까운 엣지 로케이션으로 요청을 라우팅합니다. 이 접근 방식은 지연 시간을 줄이고 최종 사용자의 성능을 개선합니다.

MediaTailor를 CloudFront와 통합하면 다음과 같은 몇 가지 주요 이점이 있습니다.
+ 개인화된 콘텐츠에 액세스하는 시청자의 지연 시간 단축
+ 대규모 대상 크기 처리를 위한 확장성 향상
+ 중복 전송 경로를 통한 안정성 향상
+ 효율적인 캐싱 전략을 통한 비용 최적화
+ Media Quality-Aware Resiliency(MQAR)를 사용한 다중 리전 장애 조치와 같은 고급 기능

CloudFront 기능에 대한 자세한 내용은 [CloudFront 개발자 안내서](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html)를 참조하세요. CloudFront 요금에 대한 자세한 내용은 [CloudFront 요금을](https://aws.amazon.com/cloudfront/pricing/) 참조하세요.

간결하게 하기 위해 "매니페스트"를 사용하여 다변량 재생 목록, 미디어 재생 목록 및 MPDs를 총체적으로 참조하는 경우가 있습니다.

**Topics**
+ [기본 CloudFront 설정](cloudfront-basic-setup.md)
+ [성능 최적화](cloudfront-performance-optimization.md)
+ [다중 리전 복원력](media-quality-resiliency.md)
+ [모니터링 및 문제 해결](monitoring-and-troubleshooting.md)

# MediaTailor와의 기본 CloudFront 통합 설정
<a name="cloudfront-basic-setup"></a>

AWS Elemental MediaTailor Amazon CloudFront와 통합하면 최종 사용자의 콘텐츠 전송 성능이 향상됩니다. 이 주제에서는 MediaTailor에 대한 기본 CloudFront 배포를 설정하는 방법을 안내합니다. 이 통합을 통해 최종 사용자는 CloudFront 네트워크를 통해 개인화된 콘텐츠에 액세스할 수 있습니다. 또한 다양한 콘텐츠 유형에 적합한 캐싱을 구성하는 방법도 알아봅니다.

권한 부여 및 라우팅을 위해 CloudFront를 통해 쿼리 파라미터를 전달하는 방법에 대한 자세한 내용은 섹션을 참조하세요[MediaTailor 매니페스트 쿼리 파라미터](manifest-query-parameters.md). 동적 변수를 사용한 고급 라우팅은 섹션을 참조하세요[여러 콘텐츠 소스에 대한 MediaTailor 도메인 변수](variables-domains.md).

## 사전 조건
<a name="cf-basic-prerequisites"></a>

MediaTailor로 CloudFront를 구성하기 전에 다음이 있는지 확인합니다.
+ CloudFront 배포를 생성하고 관리할 수 있는 권한이 있는 활성 AWS 계정
+ 구성된 MediaTailor 재생 구성( 참조[AWS Elemental MediaTailor 를 사용하여 광고 삽입](configurations.md))
+ 콘텐츠 오리진 서버를 올바르게 설정하고 액세스할 수 있습니다.
+ 비디오 스트리밍 개념에 대한 기본 이해(HLS/DASH)

## CloudFront 배포 구성
<a name="cf-basic-configuration"></a>

다음 단계에 따라 MediaTailor용 CloudFront 배포를 생성하고 구성합니다.

**MediaTailor용 CloudFront 배포를 생성하려면**

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/cloudfront/v3/home](https://console.aws.amazon.com/cloudfront/v3/home) CloudFront 콘솔을 엽니다.

1. **배포 생성**(Create Distribution)을 선택합니다.

1. **오리진 도메인**에 MediaTailor 엔드포인트 URL(예: `a1b2c3d4.mediatailor.us-west-2.amazonaws.com`)을 입력합니다.

1. **프로토콜**에서 **HTTPS만** 선택합니다.

1. **이름**에이 오리진을 식별하는 데 도움이 되는 이름(예: `mediatailor-origin`)을 입력합니다.

1. 기본 캐시 동작 설정을 구성합니다.

   1. **경로 패턴**에는 기본값()을 사용합니다`*`.

   1. **객체 자동 압축**에서 **예를** 선택합니다.

   1. **뷰어 프로토콜 정책**에서 **HTTP를 HTTPS로 리디렉션**을 선택합니다.

   1. **허용된 HTTP 메서드**에서 **GET, HEAD**를 선택합니다.

   1. **캐시 정책**에서 **CachingDisabled** 선택합니다.

   1. **오리진 요청 정책**에서 **AllViewer**를 선택하여 기본 동작에 대한 모든 헤더를 전달합니다.
**참고**  
기본 동작은 AllViewer를 사용하여 특정 경로 패턴과 일치하지 않는 모든 콘텐츠를 안전하게 처리합니다. 매니페스트 및 세그먼트에 대한 특정 캐시 동작은 적절한 정책을 사용하여 별도로 구성됩니다.

1. 배포 설정을 구성합니다.

   1. **가격 클래스**에서 대상 위치와 가장 일치하는 옵션을 선택합니다.

   1. **AWS WAF 웹 ACL**의 경우 기존 웹 ACL을 선택하거나 **보안 보호 활성화 안 함**으로 둡니다.

   1. **기본 루트 객체**의 경우 비워 둡니다.

   1. **표준 로깅**에서 **켜기**를 선택하여 로깅을 활성화합니다.

1. **배포 생성**(Create Distribution)을 선택합니다.

## 캐시 동작 구성
<a name="cf-cache-behaviors"></a>

배포를 생성한 후에는 다양한 유형의 콘텐츠를 적절하게 처리하도록 추가 캐시 동작을 구성해야 합니다. 이 섹션에서는 CloudFront의 기본 캐시 동작 설정을 다룹니다.

고급 TTL 설정, 캐시 키 구성 및 성능 튜닝을 포함한 포괄적인 캐싱 최적화는 CDN 최적화 가이드[CDN 및 MediaTailor 통합을 위한 캐싱 최적화](cdn-optimize-caching.md)의 섹션을 참조하세요.

### 매니페스트 캐시 동작 구성
<a name="cf-manifest-behavior"></a>

매니페스트에는 개인 맞춤형 콘텐츠가 포함되어 있으므로 캐시하지 마세요. 다음 단계에 따라 캐시 동작을 구성합니다.

**매니페스트 캐시 동작을 구성하려면**

1. CloudFront 콘솔에서 배포를 선택합니다.

1. **동작** 탭을 선택합니다.

1. **동작 만들기(Create behavior)**를 선택합니다.

1. **경로 패턴**에 `*.m3u8`를 입력하여 HLS 다변량 및 미디어 재생 목록과 일치시킵니다.

1. **오**리진에서 MediaTailor 오리진을 선택합니다.

1. **캐시 정책**에서 **CachingDisabled** 선택합니다.

1. **오리진 요청 정책**에서 **AllViewer**를 선택하여 동적 콘텐츠에 필요한 모든 헤더를 전달합니다.

1. **생성(Create)**을 선택합니다.

1. 경로 패턴을 사용하여 MPDs`*.mpd`와 일치하는 DASH 매니페스트에 대해이 단계를 반복합니다.

이 구성을 사용하면 각 최종 사용자가 특정 광고 콘텐츠가 포함된 개인화된 매니페스트를 수신할 수 있습니다. CDN은 이러한 매니페스트를 캐싱하지 않으므로 각 요청은 MediaTailor로 직접 전달됩니다.

### 세그먼트 캐시 동작 구성
<a name="cf-segment-behavior"></a>

성능을 최적화하고 적절한 CORS 처리를 보장하기 위해 광고 세그먼트 및 콘텐츠 세그먼트에 대해 별도의 캐시 동작을 구성합니다.

#### 광고 세그먼트 캐시 동작 구성
<a name="cf-ad-segment-behavior"></a>

`/tm/*` 경로 패턴을 통해 제공되는 광고 세그먼트는 CORS를 올바르게 처리하려면 특정 구성이 필요합니다. 다음 단계를 따릅니다.

**광고 세그먼트 캐시 동작을 구성하려면**

1. CloudFront 콘솔에서 배포를 선택합니다.

1. **동작** 탭을 선택합니다.

1. **동작 만들기(Create behavior)**를 선택합니다.

1. **경로 패턴**`/tm/*`에 MediaTailor에서 제공하는 광고 세그먼트와 일치하도록를 입력합니다.

1. **오**리진에서 MediaTailor 세그먼트 오리진(`segments.mediatailor.region.amazonaws.com`호스트 이름 사용)을 선택합니다.

1. **캐시 정책**에서 **CachingOptimized** 선택합니다.

1. **오리진 요청 정책**에서 **없음을** 선택합니다.

1. **응답 헤더 정책**에서 **CORS-with-preflight-and-SecurityHeadersPolicy**를 선택하여 응답에 적절한 CORS 헤더가 포함되도록 합니다.

1. **생성(Create)**을 선택합니다.

#### 콘텐츠 세그먼트 캐시 동작 구성
<a name="cf-content-segment-behavior"></a>

콘텐츠 세그먼트는 최적의 성능을 위해 표준 캐싱 정책을 사용할 수 있습니다. 다양한 세그먼트 형식에 대해 별도의 동작을 구성합니다.

**콘텐츠 세그먼트 캐시 동작을 구성하려면**

1. CloudFront 콘솔에서 배포를 선택합니다.

1. **동작** 탭을 선택합니다.

1. **동작 만들기(Create behavior)**를 선택합니다.

1. **경로 패턴**에 `*.ts`를 입력하여 HLS 콘텐츠 세그먼트와 일치시킵니다.

1. **오**리진에서 콘텐츠 오리진을 선택합니다.

1. **캐시 정책**에서 **CachingOptimized** 선택합니다.

1. **오리진 요청 정책**에서 **없음을** 선택합니다.

1. **응답 헤더 정책**에서 **CORS-with-preflight-and-SecurityHeadersPolicy**를 선택하여 모든 콘텐츠 유형에서 일관된 CORS 처리를 보장합니다.

1. **생성(Create)**을 선택합니다.

1. 적절한 경로 패턴을 사용하여 다른 콘텐츠 세그먼트 형식에 대해 다음 단계를 반복합니다.
   + `*.mp4` MP4 세그먼트용
   + `*.m4s` DASH 세그먼트용
   + `*.cmfv` CMAF 세그먼트`*.cmfa`의 경우 및

이 구성을 통해 광고 세그먼트와 콘텐츠 세그먼트가 적절한 CORS 처리로 적절하게 캐싱됩니다. 광고 세그먼트는 CORS 보호와 함께 MediaTailor 세그먼트 오리진을 사용하는 반면, 콘텐츠 세그먼트는 최적화된 캐싱 정책과 함께 콘텐츠 오리진을 사용합니다.

## MediaTailor 구성 업데이트
<a name="cf-mediatailor-config"></a>

CloudFront 배포를 설정한 후 CloudFront 도메인을 사용하도록 MediaTailor 구성을 업데이트합니다.

**MediaTailor 구성을 업데이트하려면**

1. [MediaTailor 콘솔](https://console.aws.amazon.com/mediatailor/home)을 엽니다.

1. 업데이트할 구성을 선택합니다.

1. **CDN 구성** 섹션의 **CDN 콘텐츠 세그먼트 접두사** 필드에 CloudFront 배포 도메인 이름(예: `d1234abcdef.cloudfront.net`)을 입력합니다.

1. 변경 내용을 저장합니다.

이 구성을 사용하면 MediaTailor는 오리진을 직접 가리키는 대신 CloudFront 배포를 가리키는 URLs을 사용하여 매니페스트를 생성합니다.

## 통합 테스트
<a name="cf-basic-testing"></a>

CloudFront 배포를 구성하고 MediaTailor 구성을 업데이트한 후 통합을 테스트합니다.

**CloudFront 및 MediaTailor 통합을 테스트하려면**

1. CloudFront 배포를 통해 매니페스트를 요청합니다(예: `https://d1234abcdef.cloudfront.net/v1/master/12345/my-config/index.m3u8`).

1. 매니페스트에 CloudFront 도메인을 가리키URLs이 포함되어 있는지 확인합니다.

1. 비디오 플레이어를 통해 콘텐츠를 재생하고 콘텐츠와 광고가 모두 올바르게 재생되는지 확인합니다.

1. CloudFront 로그를 확인하여 요청이 올바르게 라우팅되고 있는지 확인합니다.

## 구성의 예
<a name="cf-basic-example"></a>

다음은 적절한 캐시 동작이 있는 MediaTailor에 대한 CloudFront 배포 구성의 예입니다.

**Example CloudFront 배포 구성 예제**  

```
{
  "DefaultCacheBehavior": {
    "TargetOriginId": "mediatailor-origin",
    "ViewerProtocolPolicy": "redirect-to-https",
    "AllowedMethods": {
      "Quantity": 2,
      "Items": ["GET", "HEAD"]
    },
    "CachePolicyId": "4135ea2d-6df8-44a3-9df3-4b5a84be39ad",
    "OriginRequestPolicyId": "59781a5b-3903-41f3-afcb-af62929ccde1",
    "Comment": "Default behavior with CachingDisabled and AllViewer"
  },
  "CacheBehaviors": [
    {
      "PathPattern": "*.m3u8",
      "TargetOriginId": "mediatailor-origin",
      "ViewerProtocolPolicy": "redirect-to-https",
      "CachePolicyId": "4135ea2d-6df8-44a3-9df3-4b5a84be39ad",
      "OriginRequestPolicyId": "59781a5b-3903-41f3-afcb-af62929ccde1",
      "Comment": "Manifest behavior with CachingDisabled and AllViewer"
    },
    {
      "PathPattern": "*.ts",
      "TargetOriginId": "mediatailor-origin", 
      "ViewerProtocolPolicy": "redirect-to-https",
      "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6",
      "OriginRequestPolicyId": "88a5eaf4-2fd4-4709-b370-b4c650ea3fcf",
      "Comment": "Segment behavior with CachingOptimized and HostHeaderOnly"
    }
  ]
}
```

이 예제는 다음을 보여줍니다.
+ **기본 동작**: `CachingDisabled` 및를 사용하여 특정 경로 패턴과 일치하지 않는 콘텐츠를 `AllViewer` 안전하게 처리합니다.
+ **매니페스트 동작(\$1.m3u8)**: 동적 콘텐츠`AllViewer`에 `CachingDisabled` 및를 사용합니다.
+ **세그먼트 동작(\$1.ts)**: `CachingOptimized` 및를 사용합니다. `CORS-with-preflight-and-SecurityHeadersPolicy` 

## 다음 단계
<a name="cf-basic-next-steps"></a>

MediaTailor와의 기본 CloudFront 통합을 설정한 후 다음 단계를 고려하세요.
+ 추가 CloudFront 기능으로 성능 최적화( 참조[CloudFront 기능으로 MediaTailor 성능 최적화](cloudfront-performance-optimization.md))
+ MQAR을 사용하여 다중 리전 복원력 구현( 참조[MQAR을 사용하여 MediaTailor에 대한 다중 리전 복원력 구현](media-quality-resiliency.md))
+ 모니터링 및 문제 해결 설정( 참조[CloudFront 및 MediaTailor 통합 모니터링 및 문제 해결](monitoring-and-troubleshooting.md))

# CloudFront 기능으로 MediaTailor 성능 최적화
<a name="cloudfront-performance-optimization"></a>

AWS Elemental MediaTailor 기본 구성 이외의 추가 기능을 통해 Amazon CloudFront의 성능을 향상시킬 수 있습니다. MediaTailor를 사용하여 기본 CloudFront 구성을 설정한 후 추가 기능을 구현하여 성능, 안정성 및 사용자 지정 옵션을 개선할 수 있습니다. 이러한 최적화는 더 나은 시청 환경을 제공하는 데 도움이 됩니다. 또한 비용과 오리진 부하를 줄입니다.

동적 라우팅 및 파라미터 처리를 사용한 성능 최적화는 섹션을 참조하세요[ADS 요청에 대한 MediaTailor 동적 광고 변수](variables.md). 쿼리 파라미터 최적화 전략은 섹션을 참조하세요[MediaTailor 매니페스트 쿼리 파라미터](manifest-query-parameters.md).

## Origin Shield를 사용하여 오리진 로드 줄이기
<a name="origin-shield-integration"></a>

Origin Shield는 CloudFront 엣지 로케이션과 오리진 서버 사이에 캐싱 계층을 추가합니다. 이 기능은 라이브 스트리밍 및 인기 VOD 콘텐츠에 유용합니다. 많은 시청자가 동시에 동일한 콘텐츠를 요청할 때 도움이 됩니다.

Origin Shield는 여러 엣지 로케이션의 요청을 통합하여 MediaTailor 및 콘텐츠 오리진에 대한 부하를 줄입니다.

**MediaTailor 오리진에 대해 Origin Shield를 활성화하려면**

1. CloudFront 콘솔을 열고 배포로 이동합니다.

1. MediaTailor 재생 구성을 가리키는 오리진을 선택합니다.

1. **Origin Shield**에서 **예를** 선택합니다.

1. 드롭다운 메뉴에서 MediaTailor 엔드포인트에 가장 가까운 AWS 리전을 선택합니다.

1. 변경 내용을 저장합니다.

트래픽이 많은 이벤트의 경우 Origin Shield는 오리진에 대한 요청 부하를 크게 줄이고 신뢰성을 개선합니다. 자세한 지침은 CloudFront 개발자 안내서의 [Origin Shield 활성화](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html#enable-origin-shield)를 참조하세요.

## CloudFront 함수를 사용하여 콘텐츠 전송 사용자 지정
<a name="cloudfront-functions-integration"></a>

CloudFront 함수를 사용하면 엣지에서 경량 JavaScript 코드를 실행하여 최종 사용자 요청 및 응답을 수정할 수 있습니다. URL 수정, 헤더 조작 또는 기본 인증과 같은 간단한 사용자 지정에 이러한 함수를 사용할 수 있습니다. MediaTailor 워크플로의 경우 함수는 복잡한 처리가 필요하지 않은 작업을 지원합니다.

CloudFront 함수는 엣지에서 콘텐츠 전송을 사용자 지정하는 간단한 방법을 제공합니다. MediaTailor 통합을 위해 이를 구현하는 방법은 다음과 같습니다.

**MediaTailor용 CloudFront 함수를 구현하려면**

1. CloudFront 콘솔에서 **함수**로 이동합니다.

1. 새 함수를 생성하고 적절한 용도를 선택합니다.
   + **URL 조작** - MediaTailor에 도달하기 전에 다변량 재생 목록, 미디어 재생 목록 및 MPD 요청 URLs 수정하려면
   + **헤더 조작** - 요청 헤더를 추가하거나 수정하려면
   + **단순 인증** - 토큰 또는 쿼리 파라미터를 검증하려면

1. JavaScript 함수 코드를 작성합니다.

1. 샘플 MediaTailor 요청으로 함수를 테스트합니다.

1. 함수를 게시하고 배포의 캐시 동작과 연결합니다.

**Example URL 정규화를 위한 샘플 CloudFront 함수**  

```
function handler(event) {
    var request = event.request;
    var uri = request.uri;
    
    // Normalize URLs to lowercase to improve cache hit ratio
    if (uri.includes('.m3u8') || uri.includes('.mpd')) {
        request.uri = uri.toLowerCase();
    }
    
    return request;
}
```

자세한 내용과 코드 예제는 [ CloudFront 개발자 안내서의 CloudFront 함수를 사용하여 엣지에서 사용자 지정을 참조하세요](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-functions.html). CloudFront 

## Lambda@Edge를 사용하여 고급 사용자 지정 구현
<a name="lambda-edge-integration"></a>

CloudFront Functions가 제공할 수 있는 것보다 더 복잡한 처리 기능이 필요한 경우 Lambda@Edge를 사용합니다. 이 서비스를 사용하면 CloudFront 엣지 로케이션에서 Node.js 또는 Python 함수를 실행할 수 있습니다.

Lambda@Edge 함수는 복잡한 인증, 대규모 응답 수정 또는 타사 API 통합과 같은 정교한 작업을 수행할 수 있습니다.

보다 복잡한 사용자 지정을 위해 MediaTailor 및 CloudFront 통합과 함께 Lambda@Edge 함수를 사용합니다.

**MediaTailor를 사용하여 Lambda@Edge를 구현하려면**

1. 미국 동부(버지니아 북부) 리전에 Lambda 함수를 생성합니다.

1. 다음 사용 사례 중 하나에 대한 함수 코드를 작성합니다.
   + **URL 조작** - MediaTailor에 도달하기 전에 다변량 재생 목록, 미디어 재생 목록 및 MPD 요청 URLs 수정하려면
   + **A/B 테스트** - 사용자를 다른 광고 결정 서버로 라우팅하려면
   + **인증 요청** - 인증 헤더를 추가하려면
   + **응답 헤더 수정** - CORS 헤더를 추가하려면

1. 함수 버전을 게시하고 함수 별칭을 생성합니다.

1. 함수를 적절한 트리거 지점(최종 사용자 요청 또는 최종 사용자 응답)에서 CloudFront 배포와 연결합니다.

**참고**  
MediaTailor와 함께 Lambda@Edge를 사용하는 경우 현재 호환되지 않으므로 Media Quality-Aware Resiliency(MQAR) 기능을 사용할 계획이라면 오리진 대상 트리거(오리진 요청 및 오리진 응답)를 사용하지 마세요.

자세한 내용과 코드 예제는 CloudFront 개발자 안내서[의 Lambda@Edge를 사용하여 엣지에서 사용자 지정](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html)을 참조하세요.

## 추가 성능 최적화 팁
<a name="performance-optimization-tips"></a>

성능을 더욱 개선하려면 다음과 같은 추가 최적화를 고려하세요.

캐시 적중률 최적화  
CloudFront 지표에서 캐시 적중률을 모니터링하고 개선할 기회를 찾습니다.  
+ URL 패턴을 표준화하여 캐시 키 일관성 향상
+ 쿼리 문자열 화이트리스트를 사용하여 캐시 키에 필요한 파라미터만 포함
+ CloudFront 함수를 사용하여 URL 정규화 구현 고려

지연 시간 단축  
다음 기술을 구현하여 지연 시간을 최소화합니다.  
+ 텍스트 기반 응답에 대해 Brotli 압축 활성화
+ 연결 효율성 향상을 위해 HTTP/2 또는 HTTP/3 사용
+ 최신 네트워크에 대한 IPv6 지원 활성화 고려

비용 최적화  
성능과 비용 효율성의 균형을 맞춥니다.  
+ Origin Shield를 사용하여 중복 오리진 요청 감소
+ 대상 지역에 따라 가격 등급 선택 고려
+ 세그먼트에 대해 공격적인 캐싱을 구현하여 오리진 트래픽 감소

## 다음 단계
<a name="performance-next-steps"></a>

CloudFront 기능으로 성능을 최적화한 후 다음 단계를 고려하세요.
+ MQAR을 사용하여 다중 리전 복원력 구현( 참조[MQAR을 사용하여 MediaTailor에 대한 다중 리전 복원력 구현](media-quality-resiliency.md))
+ 모니터링 및 문제 해결 설정( 참조[CloudFront 및 MediaTailor 통합 모니터링 및 문제 해결](monitoring-and-troubleshooting.md))

# MQAR을 사용하여 MediaTailor에 대한 다중 리전 복원력 구현
<a name="media-quality-resiliency"></a>

AWS Elemental MediaTailor MediaTailor 제공하는 데 도움이 되는 고급 Amazon CloudFront 기능인 Media Quality-Aware Resiliency(MQAR)를 통해 다중 리전 복원력이 향상되었습니다. 서로 다른 AWS 리전에 오리진이 여러 개 있는 경우 품질 점수가 가장 높은 오리진을 자동으로 선택합니다. 이 기능은 중단 없는 서비스가 필요한 라이브 스트리밍에 특히 유용합니다.

## MQAR 작동 방식
<a name="mqar-overview"></a>

MQAR을 사용하면 CloudFront에서 품질 점수가 가장 높은 오리진을 자동으로 선택할 수 있습니다. 이렇게 하면 최종 사용자가 최상의 스트리밍 경험을 누릴 수 있습니다. 올바르게 구성되면 MQAR은 다음과 같은 이점을 제공합니다.
+ 최고 품질의 오리진 자동 선택
+ 중단 중 AWS 리전 간 원활한 장애 조치
+ 중단을 최소화하면서 시청자 경험 개선
+ 실시간 품질 모니터링 및 적응

## 1단계: MQAR 요구 사항 확인
<a name="mqar-requirements"></a>

MQAR을 구현하기 전에 인프라가 이러한 요구 사항을 충족하는지 확인합니다. MQAR은 여러 오리진의 품질 점수를 비교하여 작동하므로 여러 AWS 리전에서 동일한 콘텐츠를 사용할 수 있어야 합니다.
+ 에포크 잠금 CMAF 수집 스트림 세트를 사용하여 정렬된 수집 스트림을 모든 MediaPackage 채널로 전송하는 인코더
+ 서로 다른 AWS 리전에 동일한 오리진 엔드포인트가 있는 두 개의 동일한 MediaPackage 채널
+ MediaPackage 채널에 대한 CMAF 수집(기본적으로 활성화됨)
+ MQAR을 지원하도록 구성된 CloudFront 배포
+ 각 MediaPackage 엔드포인트에 대한 MediaTailor 구성 MediaPackage 

## 2단계: MQAR용 인코더 구성
<a name="mqar-encoder-config"></a>

MQAR이 효과적으로 작동하려면 인코더가 모든 리전에서 일관되고 동기화된 출력을 생성해야 합니다. 이러한 일관성을 통해 CloudFront는 오리진 간에 정확한 품질을 비교할 수 있습니다.

다음 설정을 사용하여 MediaLive 출력을 구성합니다.
+ CMAF 출력 그룹의 모든 비디오 프레임 속도가 일치하는지 확인합니다(모든 소수 또는 모든 정수 프레임 속도).
+ 인코딩 세션 간에 소수 프레임 속도와 정수 프레임 속도 간의 전환을 방지합니다.
+ 인코딩 세션 간에 역방향으로 이동하지 않도록 출력 세그먼트 시퀀스 번호를 구성합니다.
+ 모든 리전에서 동일한 인코더 출력 이름을 사용합니다.

MQAR용 MediaLive 구성에 대한 자세한 내용은 MediaLive 사용 설명서의 [MQCS 작업을](https://docs.aws.amazon.com//medialive/latest/ug/mqcs.html) 참조하세요.

## 3단계: MQAR용 MediaPackage 구성
<a name="mqar-mediapackage-config"></a>

다음 구성을 사용하여 MediaPackage 채널 및 엔드포인트를 설정합니다.

**MQAR용 MediaPackage를 구성하려면**

1. 각 AWS 리전에서 동일한 채널 및 엔드포인트 구성을 생성합니다.

1. CMAF를 채널 입력 유형으로 사용합니다.

1. 기본 MediaPackage 오리진의 경우 다음 설정을 사용하여 **엔드포인트 강제 적용 오류** 구성을 활성화합니다.
   + 오래된 다변량 재생 목록, 미디어 재생 목록 또는 MPDs
   + 불완전한 다변량 재생 목록, 미디어 재생 목록 또는 MPD
   + 슬레이트 입력

1. 백업 MediaPackage 오리진의 경우 장애 조치 성공 가능성을 극대화하기 위해 이러한 오류 구성을 활성화하지 마십시오.

MQAR용 MediaPackage 구성에 대한 자세한 내용은 MediaPackage 사용 설명서의 [를 사용하여 미디어 품질 점수 활용 AWS Elemental MediaPackage](https://docs.aws.amazon.com//mediapackage/latest/userguide/mqcs.html)을 참조하세요.

## 4단계: MQAR용 CloudFront 구성
<a name="mqar-cloudfront-config"></a>

CloudFront 구성에서 MQAR을 활성화하고 오리진 중에서 선택하는 방법을 정의합니다. 미디어 품질 점수 옵션이 활성화된 오리진 그룹을 생성합니다.

**MQAR용 CloudFront를 구성하려면**

1. 오리진이 MediaTailor 엔드포인트를 가리키는 CloudFront 배포를 생성합니다.

1. 이러한 오리진을 포함하는 오리진 그룹을 생성합니다.

1. 오리진 그룹 설정에서 **미디어 품질 점수** 옵션을 활성화합니다.

1. 404 찾을 수 없음 응답 코드를 포함하도록 장애 조치 기준을 구성합니다. 선택적으로 다른 4xx/5xx 코드를 포함할 수 있습니다.

1. 각 채널의 경로 패턴에 대해 별도의 캐시 동작을 생성합니다. 이렇게 하면 동일한 오리진 그룹이 여러 채널을 제공할 때 점수가 섞이지 않습니다.

**참고**  
배포의 캐시 동작과 연결된 오리진 방향 트리거(오리진 요청 및 오리진 응답)에서 Lambda@Edge 함수를 사용하는 경우 MQAR을 사용할 수 없습니다.

MQAR용 CloudFront 구성에 대한 자세한 내용은 CloudFront 개발자 안내서의 [미디어 품질 인식 복원력을](https://docs.aws.amazon.com//AmazonCloudFront/latest/DeveloperGuide/media-quality-score.html) 참조하세요.

## 5단계: MQAR용 MediaTailor 구성
<a name="mqar-mediatailor-config"></a>

MQAR 설정을 완료하려면 다중 리전 아키텍처와 함께 작동하도록 각 리전에서 MediaTailor를 구성합니다. 이렇게 하면 CloudFront에서 어떤 오리진을 선택하든 일관된 광고 삽입이 보장됩니다.

**MQAR용 MediaTailor를 구성하려면**

1. 각 리전에서 해당 MediaPackage 엔드포인트를 가리키는 동일한 MediaTailor 구성을 생성합니다. MediaPackage 

1. CloudFront 배포 도메인을 사용하도록 CDN 콘텐츠 세그먼트 접두사를 구성합니다.

1. 광고 결정 서버 구성이 리전 간에 동일한지 확인합니다.

이 설정은 CloudFront가 품질 점수를 기반으로 선택하는 오리진에 관계없이 MediaTailor가 지속적으로 광고를 개인화할 수 있도록 합니다.

## 6단계: MQAR 구성 테스트
<a name="mqar-testing"></a>

MQAR을 설정한 후 구성을 테스트하여 예상대로 작동하는지 확인합니다.

**MQAR 구성을 테스트하려면**

1. CloudFront 배포를 통해 콘텐츠를 요청합니다.

1. 실시간 로그를 모니터링하여 CloudFront가 품질 점수를 기반으로 오리진을 선택하고 있는지 확인합니다.

1. 기본 AWS 리전의 장애를 시뮬레이션하여 장애 조치 동작을 테스트합니다.

1. 장애 조치 중에 광고 삽입이 계속 올바르게 작동하는지 확인합니다.

## 다음 단계
<a name="mqar-next-steps"></a>

MQAR을 구현한 후 다음 단계를 고려하세요.
+ MQAR 구성에 대한 모니터링 및 문제 해결 설정( 참조[CloudFront 및 MediaTailor 통합 모니터링 및 문제 해결](monitoring-and-troubleshooting.md))
+ 를 사용하여 자동 배포 구현 AWS CloudFormation ( 참조[를 사용하여 MediaTailor 및 CDN 자동화 CloudFormation](automating-cdn-integration.md))

# CloudFront 및 MediaTailor 통합 모니터링 및 문제 해결
<a name="monitoring-and-troubleshooting"></a>

AWS Elemental MediaTailor Amazon CloudFront와 통합하려면 최적의 성능을 유지하기 위한 지속적인 모니터링 및 문제 해결이 필요합니다. CloudFront 및 MediaTailor 통합을 구현한 후 성능을 모니터링하고 문제를 해결할 준비를 합니다. 콘텐츠 전송 네트워크(CDN)는 배포의 성능을 이해하고 잠재적 문제를 식별하는 데 도움이 되는 도구를 제공합니다.

## 통합에 대한 모니터링 설정
<a name="cf-monitoring-setup"></a>

이러한 모니터링 전략을 구현하여 CloudFront 및 MediaTailor 통합의 성능을 추적합니다.

**CloudFront 및 MediaTailor 통합에 대한 모니터링을 설정하려면**

1. CloudFront 표준 로깅 활성화:

   1. CloudFront 콘솔에서 배포를 선택합니다.

   1. **로그** 탭을 선택합니다.

   1. **표준 로그**에서 **편집**을 선택합니다.

   1. **켜기**를 선택하고 로그 스토리지용 Amazon S3 버킷을 구성합니다.

   1. **변경 사항 저장**을 선택합니다.

1. CloudFront 실시간 로그 설정:

   1. CloudFront 콘솔에서 배포를 선택합니다.

   1. **로그** 탭을 선택합니다.

   1. **실시간 로그**에서 **편집**을 선택합니다.

   1. **켜기**를 선택하고 Amazon Kinesis Data Streams 또는 Amazon Data Firehose 전송 스트림을 구성합니다.

   1. 로그 구성에 다음 필드를 포함합니다.
      + `time-to-first-byte` - 응답 시간
      + `sc-status` - HTTP 상태 코드
      + `c-ip` - 최종 사용자 IP 주소
      + `cs-uri-stem` - 요청 URI 경로
      + `cs-user-agent` - 사용자 에이전트
      + `x-edge-result-type` - 결과 유형(Hit, Miss, Error)

   1. **변경 사항 저장**을 선택합니다.

1. CloudWatch 대시보드 생성:

   1. CloudWatch 콘솔에서 **대시보드를** 선택합니다.

   1. **대시보드 생성**을 선택합니다.

   1. 이러한 CloudFront 지표에 대한 위젯을 추가합니다.
      + Requests
      + BytesDownloaded
      + 4xxErrorRate
      + 5xxErrorRate
      + TotalErrorRate
      + CacheHitRate

1. CloudWatch 경보 설정:

   1. CloudWatch 콘솔에서 **경보를** 선택합니다.

   1. **경보 생성**을 선택하세요.

   1. 다음 조건에 대한 경보를 생성합니다.
      + 5xxErrorRate > 5분 동안 1%
      + 5분 동안 4xxErrorRate가 5%보다 큼
      + CacheHitRate 30분 동안 80% 미만

## MQAR 성능 모니터링
<a name="mqar-monitoring"></a>

MQAR을 사용할 때 모니터링을 통해 CloudFront가 오리진을 선택하는 방법과 품질 점수가 기대치를 충족하는지 여부를 이해할 수 있습니다. 실시간 로그에는 이러한 결정이 발생하는 즉시 표시됩니다.

**MQAR 성능을 모니터링하려면**

1. CloudFront 배포에 대한 실시간 로그를 활성화합니다.

1. 로그 구성에 다음 필드를 포함합니다.
   + `r-host` - 선택한 오리진의 호스트 이름
   + `sr-reason` - 오리진 선택 이유
   + `x-edge-mqcs` - 미디어 품질 신뢰도 점수

1. Amazon Kinesis Data Streams 또는 Amazon Data Firehose에서 로그 대상을 설정합니다.

1. 이러한 지표를 기반으로 대시보드 또는 알림을 생성하여 품질 점수 및 오리진 선택 결정을 모니터링합니다.

**Example MQAR 모니터링을 위한 샘플 CloudWatch 대시보드**  
다음 지표를 사용하여 CloudWatch 대시보드를 생성합니다.  
+ 리전별 오리진 선택 수
+ 시간 경과에 따른 평균 품질 점수
+ 장애 조치 이벤트
+ 오리진별 4xx 및 5xx 오류 발생률

실시간 로그 설정에 대한 자세한 내용은 CloudFront 개발자 안내서의 [실시간 로그](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html)를 참조하세요.

## 일반적인 문제 해결
<a name="troubleshooting-common-issues"></a>

신중하게 계획하더라도 CloudFront 및 MediaTailor 통합에 문제가 발생할 수 있습니다. 일반적인 문제와 솔루션을 이해하면 문제를 신속하게 해결하고 최종 사용자에게 미치는 영향을 최소화할 수 있습니다.

CloudFront 및 MediaTailor 통합에 문제가 발생하면 다음과 같은 일반적인 문제와 해결 방법을 확인하세요.

매니페스트 캐싱 문제  
**증상:** 오래된 매니페스트 또는 광고가 업데이트되지 않음  
**해결 방법:** 다변량 재생 목록, 미디어 재생 목록 및 MPD 경로에 캐시 `CachingDisabled` 정책을 사용하고 있는지 확인합니다. 구성이 쿼리 파라미터를 올바르게 전달하는지 확인합니다.

CORS 오류  
**증상:** 콘텐츠에 액세스할 때 브라우저 콘솔에 CORS 오류가 표시됨  
**해결 방법:** 적절한 CORS 헤더로 응답 헤더 정책을 구성하고 캐시 동작과 연결합니다.

MQAR이 작동하지 않음  
**증상:** 오리진 선택 시 품질 점수 무시  
**해결 방법:** 오리진 그룹 설정에서 미디어 품질 점수 옵션을 활성화했는지 확인합니다. Lambda@Edge 오리진 방향 트리거를 사용하지 않는지 확인합니다.

광고 삽입 실패  
**증상:** 광고가 제대로 삽입되지 않음  
**해결 방법:** MediaTailor 구성이 콘텐츠 세그먼트 접두사에 대한 CloudFront 배포를 가리키는지 확인합니다. 설정이 필요한 모든 헤더를 전달하는지 확인합니다.

보다 복잡한 문제의 경우 다음과 같은 문제 해결 접근 방식을 사용할 수 있습니다.

1. CloudFront 배포 로그에서 오류 패턴 확인

1. 브라우저 개발자 도구를 사용하여 네트워크 요청 검사

1. MediaTailor의 매니페스트 콘텐츠를 CloudFront를 통해 제공되는 콘텐츠와 직접 비교

1. 세부 로깅을 지원하는 간단한 플레이어로 테스트

문제 해결에 대한 자세한 내용은 MediaTailor 사용 설명서의 [문제 해결](https://docs.aws.amazon.com//mediatailor/latest/ug/troubleshooting.html) 섹션을 참조하세요.

## 워크플로 문제 해결
<a name="troubleshooting-workflow"></a>

이 체계적인 접근 방식을 따라 CloudFront 및 MediaTailor 통합 관련 문제를 해결합니다.

**CloudFront 및 MediaTailor 통합 문제를 해결하려면**

1. 특정 문제를 식별합니다.

   1. 문제가 모든 최종 사용자에게 영향을 미치는지 아니면 일부 사용자에게만 영향을 미치는지 확인

   1. 영향을 받는 콘텐츠 유형 식별(매니페스트, 세그먼트 또는 둘 다)

   1. 오류 메시지 또는 증상 기록

1. CloudFront 로그 확인:

   1. 오류 상태 코드(4xx 또는 5xx) 찾기

   1. 캐시 적중/누락 패턴 확인

   1. 요청이 올바른 오리진으로 라우팅되고 있는지 확인

1. 구성 확인:

   1. 캐시 동작에서 올바른 경로 패턴 확인

   1. 캐시 정책이 올바르게 적용되었는지 확인

   1. 오리진 요청 정책이 필요한 헤더를 전달하는지 확인

1. 직접 액세스 테스트:

   1. MediaTailor에서 직접 콘텐츠에 액세스해 보세요(CloudFront 우회).

   1. 직접 액세스와 CloudFront 액세스 간의 응답 비교

1. 솔루션 구현:

   1. 조사 결과에 따라 적절한 수정 사항 적용

   1. 테스트하여 문제가 해결되었는지 확인

   1. 향후 참조를 위해 문제 및 솔루션 문서화

## 다음 단계
<a name="monitoring-next-steps"></a>

CloudFront 및 MediaTailor 통합에 대한 모니터링 및 문제 해결을 설정한 후 다음 단계를 고려하세요.
+ 를 사용하여 자동 배포 구현 AWS CloudFormation ( 참조[를 사용하여 MediaTailor 및 CDN 자동화 CloudFormation](automating-cdn-integration.md))
+ 일반적인 운영 시나리오 및 문제 해결 절차를 위한 실행서 생성
+ 일반적인 문제에 대한 자동 문제 해결 설정