캐시에서 직접 제공되는 요청의 비율 증가 ( CloudFront 캐시 적중률) - 아마존 CloudFront

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

캐시에서 직접 제공되는 요청의 비율 증가 ( CloudFront 캐시 적중률)

콘텐츠를 받기 위해 오리진 서버로 이동하는 대신 CloudFront 캐시에서 직접 제공되는 시청자 요청의 비율을 높여 성능을 개선할 수 있습니다. 이를 캐시 적중률 개선이라고 합니다.

다음 섹션에서는 캐시 적중률을 개선하는 방법을 설명합니다.

객체를 CloudFront 캐시하는 기간을 지정합니다.

캐시 적중률을 높이기 위해 객체에 Cache-Control max-age 명령을 추가하도록 오리진을 구성하고 max-age에 실질적으로 가장 긴 값을 지정할 수 있습니다. 캐시 기간이 짧을수록 객체가 변경되었는지 확인하고 최신 버전을 가져오라는 요청을 오리진에 CloudFront 보내는 빈도가 높아집니다. max-agestale-while-revalidatestale-if-error 지시문으로 보완하여 특정 조건에서 캐시 적중률을 더욱 개선할 수 있습니다. 자세한 설명은 콘텐츠가 캐시에 유지되는 기간(만료) 관리 섹션을 참조하세요.

Origin Shield 사용

CloudFront Origin Shield는 오리진 앞에 추가 캐싱 계층을 제공하기 때문에 CloudFront 배포의 캐시 적중률을 개선하는 데 도움이 될 수 있습니다. Origin Shield를 사용하면 모든 캐싱 레이어에서 오리진으로 보내는 모든 요청이 단일 위치에서 전송됩니다. CloudFront CloudFront Origin Shield의 단일 오리진 요청을 사용하여 각 오브젝트를 검색할 수 있으며, 캐시의 다른 모든 레이어 (엣지 로케이션 및 지역 엣지 CloudFront 캐시) 는 Origin Shield에서 객체를 검색할 수 있습니다.

자세한 설명은 아마존 CloudFront 오리진 쉴드 사용 섹션을 참조하세요.

쿼리 문자열 파라미터 기반 캐싱

쿼리 문자열 파라미터를 기반으로 CloudFront 캐싱하도록 구성한 경우, 다음을 수행하면 캐싱을 개선할 수 있습니다.

  • 오리진에서 고유한 객체를 반환할 쿼리 문자열 파라미터만 CloudFront 전달하도록 구성하십시오.

  • 동일 파라미터의 전체 인스턴스에 대해서는 대문자 또는 소문자만 사용합니다. 예를 들어, 한 요청에는 parameter1=A 포함되고 다른 요청에는 포함된 parameter1=a 요청이 포함되는 경우 요청에 포함된 parameter1=A 요청과 포함된 요청이 있을 때 별도의 요청을 오리진에 CloudFront 전달합니다. parameter1=a CloudFront 그러면 객체가 동일하더라도 오리진에서 반환한 해당 객체를 개별적으로 캐시합니다. just A or 를 사용하면 a 오리진에 CloudFront 전달하는 요청 수가 줄어듭니다.

  • 파라미터를 같은 순서로 나열합니다. 다른 순서로 나열하는 경우, 객체에 대한 하나의 요청에 쿼리 문자열 parameter1=a&parameter2=b가 포함되어 있고 같은 객체의 다른 요청에 가 포함되어 있다면 parameter2=b&parameter1=a, CloudFront 에서는 두 요청을 오리진에 모두 전달하고 해당 객체가 실제로는 동일한 경우라도 이를 개별적으로 캐싱합니다. 파라미터에 언제나 같은 순서를 사용한다면 CloudFront에서는 오리진에 더 적은 요청을 전달하게 됩니다.

자세한 설명은 쿼리 문자열 파라미터 기반의 콘텐츠 캐싱 섹션을 참조하세요. 오리진에 CloudFront 전달되는 쿼리 문자열을 검토하려면 CloudFront 로그 파일의 cs-uri-query 열에 있는 값을 확인하세요. 자세한 설명은 표준 로그(액세스 로그) 구성 및 사용 섹션을 참조하세요.

쿠키 값 기반 캐싱

쿠키 값을 기반으로 CloudFront 캐싱하도록 구성한 경우 다음을 수행하면 캐싱을 개선할 수 있습니다.

  • 모든 쿠키를 전달하는 대신 지정된 쿠키만 CloudFront 전달하도록 구성하십시오. 오리진에 CloudFront 전달하도록 구성한 쿠키의 경우 모든 쿠키 이름 및 값 조합을 CloudFront 전달합니다. 그런 다음 오리진이 반환하는 객체를 별도로 캐시합니다(객체가 모두 동일한 경우도 마찬가지).

    예를 들어 최종 사용자가 모든 요청에 두 개의 쿠키를 포함하고, 각 쿠키에는 세 개의 가능한 값이 있으며, 모든 쿠키 값 조합이 가능하다고 가정해 보겠습니다. CloudFront 각 객체에 대해 오리진에 최대 6개의 서로 다른 요청을 전달합니다. 오리진에서 쿠키 하나만을 기반으로 서로 다른 버전의 객체를 반환하는 경우 오리진에 필요 이상으로 많은 요청을 전달하고 동일한 버전의 객체를 불필요하게 캐싱하게 됩니다. CloudFront

  • 정적 콘텐츠와 동적 콘텐츠의 캐시 동작을 별도로 만들고 오리진에는 동적 콘텐츠에 대해서만 쿠키를 전달하도록 CloudFront를 구성합니다.

    예를 들어 배포에 대한 캐시 동작이 하나뿐이고 .js 파일과 같은 동적 콘텐츠와 거의 변경되지 않는 파일 모두에 대해 배포를 사용하고 있다고 가정해 보겠습니다. .css CloudFront 쿠키 값을 기반으로 .css 파일의 개별 버전을 캐시하므로 각 CloudFront 엣지 로케이션은 모든 새 쿠키 값 또는 쿠키 값 조합에 대한 요청을 오리진에 전달합니다.

    경로 패턴은 *.css 동일하고 쿠키 값을 기반으로 캐시하지 CloudFront 않는 캐시 동작을 생성하는 경우 엣지 로케이션에서 해당 .css 파일에 대해 받는 첫 번째 요청과 .css 파일 만료 후 첫 번째 요청에 대해서만 파일 요청을 오리진에 CloudFront 전달합니다. .css

  • 가능한 경우, 각 사용자(예: 사용자 ID)별로 쿠키 값이 고유한 동적 콘텐츠에 대해서와 더 작은 수의 고유 값에 따라 달라지는 동적 콘텐츠에 대해서 별도의 캐시 동작을 만듭니다.

자세한 설명은 쿠키 기반의 콘텐츠 캐싱 섹션을 참조하세요. 오리진에 CloudFront 전달되는 쿠키를 검토하려면 로그 파일의 cs(Cookie) 열에 있는 값을 참조하십시오. CloudFront 자세한 설명은 표준 로그(액세스 로그) 구성 및 사용 섹션을 참조하세요.

요청 헤더 기반 캐싱

요청 헤더를 기반으로 CloudFront 캐싱하도록 구성한 경우 다음을 수행하면 캐싱을 개선할 수 있습니다.

  • 모든 헤더를 기반으로 전달 및 캐싱하는 대신 지정된 헤더만 기반으로 전달 및 CloudFront 캐시하도록 구성하십시오. 지정한 헤더의 경우 CloudFront에서 헤더 이름과 값의 모든 조합을 전달합니다. 그런 다음 오리진이 반환하는 객체를 별도로 캐시합니다(객체가 모두 동일한 경우도 마찬가지).

    참고

    CloudFront 항상 다음 주제에 지정된 헤더를 오리진에 전달합니다.

    요청 헤더를 기반으로 CloudFront 캐싱하도록 구성하는 경우 CloudFront 전달하는 헤더는 변경하지 않고 헤더 값을 기반으로 객체를 CloudFront 캐시할지 여부만 변경합니다.

  • 큰 수의 고유 값을 갖는 요청 헤더를 기반으로 캐싱하지 않도록 하십시오.

    예를 들어 사용자 기기에 따라 서로 다른 크기의 이미지를 제공하려는 경우 헤더를 기반으로 CloudFront 캐싱하도록 구성하지 마세요. User-Agent 헤더에는 가능한 값이 너무 많기 때문입니다. 대신 CloudFront 기기 유형 헤더CloudFront-Is-Desktop-Viewer,, 및 를 기반으로 CloudFront 캐싱하도록 구성하세요. CloudFront-Is-Mobile-Viewer CloudFront-Is-SmartTV-Viewer CloudFront-Is-Tablet-Viewer 또한 태블릿과 데스크톱에 대해 같은 버전의 이미지를 반환하려는 경우, CloudFront-Is-Tablet-Viewer 헤더가 아닌 CloudFront-Is-Desktop-Viewer 헤더만 전달하세요.

자세한 설명은 요청 헤더 기반의 콘텐츠 캐싱 섹션을 참조하세요.

압축이 불필요할 때 Accept-Encoding 헤더 제거

오리진에서 지원하지 않거나 지원하지 않거나 콘텐츠를 압축할 수 없기 때문에 압축이 활성화되지 않은 경우 배포의 캐시 동작을 다음과 같이 설정하는 오리진에 연결하여 캐시 적중률을 높일 수 있습니다. CloudFront Custom Origin Header

  • Header name(헤더 이름)Accept-Encoding:

  • Header value(헤더 값): (공백으로 유지)

이 구성을 사용하면 캐시 키에서 Accept-Encoding 헤더를 CloudFront 제거하고 원본 요청에 헤더를 포함하지 않습니다. 이 구성은 해당 오리진의 CloudFront 배포와 함께 제공되는 모든 콘텐츠에 적용됩니다.

HTTP를 사용한 미디어 콘텐츠 제공

온디맨드 비디오(VOD) 및 스트리밍 비디오 콘텐츠를 최적화하는 방법에 대한 자세한 내용은 온디맨드 비디오 및 라이브 스트리밍 비디오 CloudFront 단원을 참조하십시오.