캐시 키 제어 - 아마존 CloudFront

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

캐시 키 제어

CloudFrontAmazon에서는 CloudFront 엣지 로케이션에 캐시되는 객체의 캐시 키를 제어할 수 있습니다. 캐시 키는 캐시에 있는 모든 객체의 고유 식별자이며, 최종 사용자 요청이 캐시 적중으로 나타나는지 여부를 결정합니다. 캐시 적중은 최종 사용자 요청이 이전 요청과 동일한 캐시 키를 생성하고 해당 캐시 키의 객체가 엣지 로케이션 캐시에 있고 유효할 때 발생합니다. 캐시 적중이 발생하면 CloudFront 엣지 로케이션에서 최종 사용자에게 객체가 제공되므로 다음과 같은 이점이 있습니다.

  • 오리진 서버의 부하 감소

  • 최종 사용자에 대한 지연 시간 감소

캐시 적중률이 높으면(최종 사용자 요청 비율이 높을수록 캐시 적중이 발생함) 웹 사이트 또는 애플리케이션에서 더 나은 성능을 얻을 수 있습니다. 캐시 적중률을 향상시키는 한 가지 방법은 캐시 키에 필요한 최소 값만 포함시키는 것입니다. 자세한 설명은 캐시 키 이해 섹션을 참조하세요.

캐시 키를 제어하려면 CloudFront 캐시 정책을 사용합니다. CloudFront 배포에 있는 하나 이상의 캐시 동작에 캐시 정책을 연결합니다.

캐시 정책 생성

캐시 정책을 사용하면 캐시 키에 포함된 값(URL 쿼리 문자열, HTTP 헤더 및 쿠키)을 제어하여 캐시 적중률을 향상시킬 수 있습니다. CloudFront 콘솔에서 AWS Command Line Interface (AWS CLI) 또는 CloudFront API를 사용하여 캐시 정책을 생성할 수 있습니다.

캐시 정책을 생성한 후 CloudFront 배포의 하나 이상의 캐시 동작에 연결합니다.

Console
캐시 정책을 생성하는 방법(콘솔)
  1. 에 AWS Management Console 로그인하고 CloudFront 콘솔에서 정책 페이지를 엽니다https://console.aws.amazon.com/cloudfront/v4/home?#/policies.

  2. Create cache policy(캐시 정책 생성)를 선택합니다.

  3. 이 캐시 정책에 대해 원하는 설정을 선택합니다. 자세한 내용은 캐시 정책 이해 섹션을 참조하세요.

  4. 마친 후에는 Create(생성)를 선택합니다.

캐시 정책을 생성한 후 캐시 동작에 연결할 수 있습니다.

캐시 정책을 기존 배포에 연결하는 방법(콘솔)
  1. CloudFront 콘솔에서 https://console.aws.amazon.com/cloudfront/v4/home#/distributions배포 페이지를 여십시오.

  2. 업데이트할 배포를 선택한 다음 Behaviors(동작) 탭을 선택합니다.

  3. 업데이트할 캐시 동작을 선택한 다음 Edit(편집)를 선택합니다.

    또는 새 캐시 동작을 생성하려면 Create Behavior(동작 생성)를 선택합니다.

  4. Cache key and origin request(캐시 키 및 오리진 요청) 섹션에서 Cache policy and origin request policy(캐시 정책 및 오리진 요청 정책)가 선택되어 있는지 확인합니다.

  5. Cache Policy(캐시 정책)의 경우 이 캐시 동작에 연결할 캐시 정책을 선택합니다.

  6. 페이지 하단에서 Save changes(변경 사항 저장)를 선택합니다.

캐시 정책을 새 배포에 연결하는 방법(콘솔)
  1. 에서 CloudFront https://console.aws.amazon.com/cloudfront/v4/home 콘솔을 엽니다.

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

  3. Cache key and origin request(캐시 키 및 오리진 요청) 섹션에서 Cache policy and origin request policy(캐시 정책 및 오리진 요청 정책)가 선택되어 있는지 확인합니다.

  4. Cache Policy(캐시 정책)의 경우 이 배포의 기본 캐시 동작에 연결할 캐시 정책을 선택합니다.

  5. 오리진, 기본 캐시 동작 및 기타 배포 설정에 대해 원하는 설정을 선택합니다. 자세한 내용은 배포를 만들거나 업데이트할 때 지정하는 값 섹션을 참조하세요.

  6. 완료되면 Create Distribution(배포 생성)을 선택합니다.

CLI

AWS Command Line Interface(AWS CLI)를 사용하여 캐시 정책을 생성하려면 aws cloudfront create-cache-policy 명령을 사용합니다. 각 개별 파라미터를 명령줄 입력으로 지정하는 대신 입력 파일을 사용하여 명령의 입력 파라미터를 제공할 수 있습니다.

캐시 정책을 생성하는 방법(입력 파일이 있는 CLI)
  1. 다음 명령을 사용하여 cache-policy.yaml 명령에 대한 모든 입력 파라미터가 포함된 create-cache-policy이라는 파일을 만듭니다.

    aws cloudfront create-cache-policy --generate-cli-skeleton yaml-input > cache-policy.yaml
  2. 방금 생성한 cache-policy.yaml이라는 파일을 엽니다. 파일을 편집하여 원하는 캐시 정책 설정을 지정한 다음 파일을 저장합니다. 파일에서 선택적 필드를 제거할 수 있지만 필수 필드는 제거하지 마세요.

    캐시 정책 설정에 대한 자세한 내용은 캐시 정책 이해 단원을 참조하십시오.

  3. 다음 명령을 사용하여 cache-policy.yaml 파일의 입력 파라미터로 캐시 정책을 만듭니다.

    aws cloudfront create-cache-policy --cli-input-yaml file://cache-policy.yaml

    명령의 출력에 있는 Id 값을 기록해 둡니다. 이는 캐시 정책 ID이며, CloudFront 배포의 캐시 동작에 캐시 정책을 연결하는 데 필요합니다.

캐시 정책을 기존 배포에 연결하는 방법(입력 파일이 있는 CLI)
  1. 다음 명령을 사용하여 업데이트하려는 배포의 CloudFront 배포 구성을 저장합니다. distribution_ID를 배포 ID로 바꿉니다.

    aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
  2. 방금 생성한 dist-config.yaml이라는 파일을 엽니다. 캐시 정책을 사용하도록 업데이트하려는 각 캐시 동작을 다음과 같이 변경하여 파일을 편집합니다.

    • 캐시 동작에서 CachePolicyId이라는 필드를 추가합니다. 필드 값에는 정책을 만든 후 기록한 캐시 정책 ID를 사용합니다.

    • 캐시 동작에서 MinTTL, MaxTTL, DefaultTTLForwardedValues 필드를 제거합니다. 이러한 설정은 캐시 정책에 지정되므로 이러한 필드와 캐시 정책을 동일한 캐시 동작에 포함할 수 없습니다.

    • ETag 필드의 이름을 IfMatch로 바꾸지만 필드 값은 변경하지 마세요.

    완료되면 파일을 저장합니다.

  3. 캐시 정책을 사용하도록 배포를 업데이트하려면 다음 명령을 사용합니다. distribution_ID를 배포 ID로 바꿉니다.

    aws cloudfront update-distribution --id distribution_ID --cli-input-yaml file://dist-config.yaml
캐시 정책을 새 배포에 연결하는 방법(입력 파일이 있는 CLI)
  1. 다음 명령을 사용하여 distribution.yaml 명령에 대한 모든 입력 파라미터가 포함된 create-distribution이라는 파일을 만듭니다.

    aws cloudfront create-distribution --generate-cli-skeleton yaml-input > distribution.yaml
  2. 방금 생성한 distribution.yaml이라는 파일을 엽니다. 기본 캐시 동작의 CachePolicyId 필드에 정책을 생성한 후 기록한 캐시 정책 ID를 입력합니다. 파일을 계속 편집하여 원하는 배포 설정을 지정한 다음 완료되면 파일을 저장합니다.

    배포 설정에 대한 자세한 내용은 배포를 만들거나 업데이트할 때 지정하는 값 단원을 참조하세요.

  3. 다음 명령을 사용하여 distribution.yaml 파일의 입력 파라미터로 배포를 만듭니다.

    aws cloudfront create-distribution --cli-input-yaml file://distribution.yaml
API

CloudFront API로 캐시 정책을 만들려면 를 사용하십시오 CreateCachePolicy. 이 API 호출에서 지정하는 필드에 대한 자세한 내용은 캐시 정책 이해 및 AWS SDK 또는 기타 API 클라이언트에 대한 API 참조 설명서를 참조하세요.

캐시 정책을 생성한 후 다음 API 호출 중 하나를 사용하여 캐시 동작에 연결할 수 있습니다.

  • 기존 배포의 캐시 동작에 이를 연결하려면 를 사용하십시오 UpdateDistribution.

  • 새 배포의 캐시 동작에 이를 연결하려면 를 사용하십시오 CreateDistribution.

이 두 API 호출에 대해 캐시 동작 내의 CachePolicyId 필드에 캐시 정책의 ID를 제공합니다. 이러한 API 호출에서 지정하는 다른 필드에 대한 자세한 내용은 배포를 만들거나 업데이트할 때 지정하는 값와 AWS SDK 또는 기타 API 클라이언트에 대한 API 참조 설명서를 참조하세요.

캐시 정책 이해

캐시 정책을 사용하면 캐시 키에 포함된 값(URL 쿼리 문자열, HTTP 헤더 및 쿠키)을 제어하여 캐시 적중률을 향상시킬 수 있습니다. CloudFront에서는 일반 사용 사례에 대해 관리형 정책이라고 하는 몇 가지 미리 정의된 캐시 정책을 제공합니다. 이러한 관리형 정책을 사용하거나 필요에 따라 자체 캐시 정책을 만들 수 있습니다. 관리형 정책에 대한 자세한 내용은 관리형 캐시 정책 사용 단원을 참조하십시오.

캐시 정책에는 정책 정보, TTL(Time To Live) 설정캐시 키 설정으로 분류되는 다음 설정이 포함되어 있습니다.

정책 정보

이름

캐시 정책을 식별하는 이름입니다. 콘솔에서 이름을 사용하여 캐시 정책을 캐시 동작에 연결합니다.

설명

캐시 정책에 대한 설명입니다. 이는 선택 사항이지만 캐시 정책의 용도를 식별하는 데 도움이 될 수 있습니다.

TTL(Time To Live) 설정

TTL (Time to Live) 설정은 Cache-ControlExpires HTTP 헤더 (오리진 응답에 있는 경우) 와 함께 작동하여 CloudFront 캐시의 객체가 유효한 상태로 유지되는 기간을 결정합니다.

Minimum TTL

원본에 객체가 CloudFront 업데이트되었는지 확인하기 전에 객체가 CloudFront 캐시에 머무르는 최소 시간 (초) 입니다. 자세한 설명은 콘텐츠가 캐시에 유지되는 기간(만료) 관리 섹션을 참조하세요.

Maximum TTL

오리진에서 객체가 CloudFront 업데이트되었는지 확인하기 전에 객체가 CloudFront 캐시에 머무르는 최대 시간 (초) 입니다. CloudFront 오리진이 오브젝트와 함께 Cache-Control 전송하거나 Expires 헤더링하는 경우에만 이 설정을 사용합니다. 자세한 설명은 콘텐츠가 캐시에 유지되는 기간(만료) 관리 섹션을 참조하세요.

기본 TTL

오리진에 객체가 CloudFront 업데이트되었는지 확인하기 전에 객체가 CloudFront 캐시에 머무르는 기본 시간 (초) 입니다. CloudFront 오리진이 객체와 함께 Cache-Control 전송하거나 Expires 헤더를 보내지 않는 경우에만 이 설정 값을 객체의 TTL로 사용합니다. 자세한 설명은 콘텐츠가 캐시에 유지되는 기간(만료) 관리 섹션을 참조하세요.

참고

최소 TTL, 최대 TTL기본 TTL 설정이 모두 0으로 설정된 경우 캐싱이 비활성화됩니다. CloudFront

캐시 키 설정

캐시 키 설정은 캐시 키에 CloudFront 포함된 최종 사용자 요청의 값을 지정합니다. 이 값에는 URL 쿼리 문자열, HTTP 헤더 및 쿠키가 포함될 수 있습니다. 캐시 키에 포함하는 값은 CloudFront 에서 오리진으로 보내는 요청(오리진 요청이라고 함)에 자동으로 포함됩니다. 캐시 키에 영향을 주지 않고 오리진 요청을 제어하는 방법에 대한 자세한 내용은 오리진 요청 제어 단원을 참조하십시오.

캐시 키 설정은 다음과 같습니다.

헤더

캐시 키 및 원본 요청에 CloudFront 포함된 최종 사용자 요청의 HTTP 헤더. 헤더의 경우 다음 설정 중 하나를 선택할 수 있습니다.

  • None(없음) – 최종 사용자 요청의 HTTP 헤더가 캐시 키에 포함되어 있지 않고 오리진 요청에 자동으로 포함되지 않습니다.

  • Include the following headers(다음 헤더 포함) – 캐시 키에 포함되고 오리진 요청에 자동으로 포함되는 뷰어 요청의 HTTP 헤더를 지정합니다.

Include the following headers(다음 헤더 포함) 설정을 사용하는 경우 HTTP 헤더를 해당 값이 아닌 이름으로 지정합니다. 예를 들어 다음 HTTP 헤더를 고려해 보세요.

Accept-Language: en-US,en;q=0.5

이 경우 헤더를 Accept-Language: en-US,en;q=0.5로 지정하지 않고 Accept-Language으로 지정합니다. 그러나 CloudFront는 캐시 키 및 오리진 요청에 해당 값을 포함한 전체 헤더를 포함합니다.

CloudFront 에서 생성한 특정 헤더를 캐시 키에 포함할 수도 있습니다. 자세한 설명은 CloudFront 요청 헤더 추가 섹션을 참조하세요.

쿠키

캐시 키 및 오리진 요청에 CloudFront 포함되는 뷰어 요청의 쿠키. 쿠키의 경우 다음 설정 중 하나를 선택할 수 있습니다.

  • None(없음) – 최종 사용자 요청의 쿠키가 캐시 키에 포함되어 있지 않고 오리진 요청에 자동으로 포함되지 않습니다.

  • All(모두) – 최종 사용자 요청의 모든 쿠키가 캐시 키에 포함되고 오리진 요청에 자동으로 포함됩니다.

  • Include specified cookies(지정된 쿠키 포함) – 캐시 키에 포함되고 오리진 요청에 자동으로 포함되는 뷰어 사용자 요청의 쿠키를 지정합니다.

  • Include all cookies except(일부 쿠키 제외) – 캐시 키에 포함되지 않고 오리진 요청에 자동으로 포함되지 않는 뷰어 요청의 쿠키를 지정합니다. 지정한 쿠키를 제외한 다른 모든 쿠키는 캐시 키에 포함되고 오리진 요청에 자동으로 포함됩니다.

Include specified cookies(지정된 쿠키 포함) 또는 Include all cookies except(일부 쿠키 제외) 설정을 사용하는 경우 값이 아닌 이름으로 쿠키를 지정합니다. 예를 들어 다음 Cookie 헤더를 고려해 보십시오.

Cookie: session_ID=abcd1234

이 경우 쿠키를 session_ID=abcd1234로 지정하지 않고 session_ID로 지정합니다. 하지만 캐시 키 및 원본 요청에는 해당 값을 포함한 전체 쿠키가 CloudFront 포함됩니다.

쿼리 문자열

캐시 키 및 원본 요청에 CloudFront 포함된 뷰어 요청의 URL 쿼리 문자열. 쿼리 문자열의 경우 다음 설정 중 하나를 선택할 수 있습니다.

  • None(없음) – 최종 사용자 요청의 쿼리 문자열이 캐시 키에 포함되어 있지 않고 오리진 요청에 자동으로 포함되지 않습니다.

  • All(모두) – 최종 사용자 요청의 모든 쿼리 문자열이 캐시 키에 포함되고 오리진 요청에도 자동으로 포함됩니다.

  • Include specified query strings(지정된 쿼리 문자열 포함) – 캐시 키에 포함되고 오리진 요청에 자동으로 포함되는 뷰어 요청의 쿼리 문자열을 지정합니다.

  • Include all query strings except(일부 쿼리 문자열 제외) – 캐시 키에 포함되지 않고 오리진 요청에 자동으로 포함되지 않는 뷰어 요청의 쿼리 문자열을 지정합니다. 지정한 쿼리 문자열을 제외한 다른 모든 쿼리 문자열은 캐시 키에 포함되며 오리진 요청에 자동으로 포함됩니다.

Include specified query strings(지정된 쿼리 문자열 포함) 또는 Include all query strings except(일부 쿼리 문자열 제외) 설정을 사용하는 경우 값이 아닌 이름으로 쿼리 문자열을 지정합니다. 예를 들어 다음 URL 경로를 고려해 보세요.

/content/stories/example-story.html?split-pages=false

이 경우 쿼리 문자열을 split-pages=false가 아닌 split-pages로 지정합니다. 하지만 캐시 키 및 원본 요청에는 해당 값을 포함한 전체 쿼리 문자열이 CloudFront 포함됩니다.

압축 지원

이 설정을 사용하면 CloudFront 뷰어가 지원하는 경우 Gzip 또는 Brotli 압축 형식으로 압축된 객체를 요청하고 캐시할 수 있습니다. 이 설정을 사용하면 CloudFront 압축이 작동할 수도 있습니다. 최종 사용자는 Accept-Encoding HTTP 헤더를 사용하여 이러한 압축 형식에 대한 지원을 나타냅니다.

참고

Chrome 및 Firefox 웹 브라우저는 HTTPS를 사용하여 요청이 전송될 때만 Brotli 압축을 지원합니다. 이러한 브라우저는 HTTP 요청이 있는 Brotli를 지원하지 않습니다.

다음 중 하나에 해당하는 경우 이러한 설정을 활성화합니다.

  • 오리진에서 최종 사용자가 지원할 때 Gzip 압축 객체를 반환합니다(요청에는 값이 gzipAccept-Encoding HTTP 헤더가 포함되어 있음). 이 경우 Gzip 활성화 설정 ( CloudFront API, AWS SDK 또는 true 에서 설정EnableAcceptEncodingGzip) 을 사용하세요. AWS CLI AWS CloudFormation

  • 오리진에서는 최종 사용자가 지원할 때 Brotli 압축 객체를 반환합니다(요청에는 값이 brAccept-Encoding HTTP 헤더가 포함되어 있음). 이 경우 브로틀리 활성화 설정 ( CloudFront API, AWS SDK 또는 true 에서 설정EnableAcceptEncodingBrotli) 을 사용하세요. AWS CLI AWS CloudFormation

  • 이 캐시 정책이 연결된 캐시 동작은 CloudFront 압축을 사용하여 구성됩니다. 이 경우 Gzip이나 Brotli 또는 둘 다에 대해 캐싱을 활성화할 수 있습니다. CloudFront 압축이 활성화된 경우 두 형식 모두에 대해 캐싱을 활성화하면 인터넷으로 데이터를 전송하는 데 드는 비용을 줄이는 데 도움이 될 수 있습니다.

참고

이러한 압축 형식 중 하나 또는 둘 다에 대해 캐싱을 활성화하는 경우 동일한 캐시 동작과 관련된 원본 요청 정책에 Accept-Encoding 헤더를 포함하지 마세요. CloudFront두 형식 중 하나에 대해 캐싱이 활성화된 경우 원본 요청에 이 헤더를 항상 Accept-Encoding 포함하므로 원본 요청 정책에 포함해도 효과가 없습니다.

오리진 서버가 Gzip 또는 Brotli 압축 객체를 반환하지 않거나 캐시 동작이 압축으로 구성되어 있지 않은 경우, CloudFront 압축된 객체에 대한 캐싱을 활성화하지 마세요. 이렇게 하면 캐시 적중률이 감소할 수 있습니다.

다음은 이러한 설정이 배포에 미치는 영향을 설명합니다. CloudFront 다음 시나리오는 모두 최종 사용자 요청에 Accept-Encoding 헤더가 포함되어 있다고 가정합니다. 최종 사용자 요청에 Accept-Encoding 헤더가 포함되지 않은 경우 CloudFront 이 헤더는 캐시 키에 포함되지 않고 해당 원본 요청에도 포함되지 않습니다.

두 압축 형식에 대해 압축된 객체 캐싱이 활성화된 경우

최종 사용자가 Gzip과 Brotli를 모두 지원하는 경우 (즉, 뷰어 요청의 Accept-Encoding 헤더에 gzipbr 값이 모두 있는 경우) 는 다음을 수행합니다. CloudFront

  • 헤더를 Accept-Encoding: br,gzip으로 정규화하고 캐시 키에 정규화된 헤더를 포함합니다. 캐시 키는 최종 사용자가 보낸 Accept-Encoding 헤더에 있던 다른 값을 포함하지 않습니다.

  • 엣지 로케이션에 요청과 일치하고 만료되지 않은 Brotli 또는 Gzip 압축 객체가 있는 경우 엣지 로케이션에서 최종 사용자에게 객체를 반환합니다.

  • 엣지 로케이션의 캐시에 요청과 일치하고 만료되지 않은 Brotli 또는 Gzip 압축 객체가 없는 경우 해당 원본 요청에 정규화된 헤더 () 를 CloudFront 포함하십시오. Accept-Encoding: br,gzip 오리진 요청에는 최종 사용자가 보낸 Accept-Encoding 헤더에 있던 다른 값이 포함되지 않습니다.

뷰어가 하나의 압축 형식을 지원하지만 다른 압축 형식은 지원하지 않는 경우 (예: gzip if는 뷰어 요청의 Accept-Encoding 헤더에 있는 값이지만 br 지원하지 않는 경우) 는 다음을 수행합니다. CloudFront

  • 헤더를 Accept-Encoding: gzip으로 정규화하고 캐시 키에 정규화된 헤더를 포함합니다. 캐시 키는 최종 사용자가 보낸 Accept-Encoding 헤더에 있던 다른 값을 포함하지 않습니다.

  • 엣지 로케이션의 캐시에 요청과 일치하고 만료되지 않은 Gzip 압축 객체가 있는 경우 엣지 로케이션에서 최종 사용자에게 객체를 반환합니다.

  • 엣지 로케이션의 캐시에 요청과 일치하고 만료되지 않은 Gzip 압축 객체가 없는 경우 해당 원본 요청에 정규화된 헤더 (Accept-Encoding: gzip) 를 CloudFront 포함하십시오. 오리진 요청에는 최종 사용자가 보낸 Accept-Encoding 헤더에 있던 다른 값이 포함되지 않습니다.

뷰어가 CloudFront Brotli는 지원하지만 Gzip은 지원하지 않는 경우 어떻게 되는지 이해하려면 위 예제에서 두 압축 형식을 서로 바꾸십시오.

뷰어가 Brotli 또는 Gzip을 지원하지 않는 경우 (즉, 뷰어 요청의 Accept-Encoding 헤더에 또는 값이 포함되지 않는 경우). br gzip CloudFront

  • 캐시 키에 Accept-Encoding 헤더를 포함하지 않습니다.

  • 해당 오리진 요청에 Accept-Encoding: identity를 포함합니다. 오리진 요청에는 최종 사용자가 보낸 Accept-Encoding 헤더에 있던 다른 값이 포함되지 않습니다.

하나의 압축 형식에 대해 압축된 객체 캐싱이 활성화되지만 다른 압축 형식에 대해서는 활성화되지 않는 경우

뷰어가 캐싱이 활성화되는 형식을 지원하는 경우 (gzip예: Gzip에 압축된 객체 캐싱이 활성화되어 있고 뷰어는 뷰어 요청의 헤더에 있는 값 중 하나) Gzip을 지원하는 경우 다음을 수행합니다. Accept-Encoding CloudFront

  • 헤더를 Accept-Encoding: gzip으로 정규화하고 캐시 키에 정규화된 헤더를 포함합니다.

  • 엣지 로케이션의 캐시에 요청과 일치하고 만료되지 않은 Gzip 압축 객체가 있는 경우 엣지 로케이션에서 최종 사용자에게 객체를 반환합니다.

  • 엣지 로케이션의 캐시에 요청과 일치하고 만료되지 않은 Gzip 압축 객체가 없는 경우 해당 원본 요청에 정규화된 헤더 () 를 CloudFront 포함하십시오. Accept-Encoding: gzip 오리진 요청에는 최종 사용자가 보낸 Accept-Encoding 헤더에 있던 다른 값이 포함되지 않습니다.

이 시나리오에서는 Brotli에 대한 압축 객체 캐싱이 활성화되지 않기 때문에 최종 사용자가 Gzip과 Brotli(최종 사용자 요청의 Accept-Encoding 헤더에는 gzip br 값이 모두 포함됨)를 모두 지원하는 경우와 동일합니다.

압축된 객체 캐싱이 CloudFront Brotli에서는 활성화되었지만 Gzip에서는 활성화되지 않은 경우 어떻게 되는지 이해하려면 위 예제에서 두 압축 형식을 서로 바꾸십시오.

뷰어가 캐싱이 활성화된 압축 형식을 지원하지 않는 경우 (뷰어 요청의 Accept-Encoding 헤더에 해당 형식의 값이 포함되지 않음), CloudFront

  • 캐시 키에 Accept-Encoding 헤더를 포함하지 않습니다.

  • 해당 오리진 요청에 Accept-Encoding: identity를 포함합니다. 오리진 요청에는 최종 사용자가 보낸 Accept-Encoding 헤더에 있던 다른 값이 포함되지 않습니다.

압축 객체 캐싱이 두 압축 형식 모두에 대해 비활성화된 경우

두 압축 형식 모두에서 압축된 객체 캐싱을 비활성화한 경우 는 Accept-Encoding 헤더를 최종 사용자 요청의 다른 HTTP 헤더와 동일하게 CloudFront 취급합니다. 기본적으로 캐시 키에 포함되지 않으며 오리진 요청에 포함되지 않습니다. 캐시 정책의 헤더 목록 또는 다른 HTTP 헤더와 마찬가지로 오리진 요청 정책에 포함할 수 있습니다.