CacheKey
1 CloudFront Cache Key 개요
- CloudFront Cache Key는 CloudFront의 캐시에서 객체를 고유하게 식별하는 식별자입니다.
- 이는 CloudFront가 사용자 요청에 대해 캐시된 콘텐츠를 제공할지, 아니면 원본 서버에서 새로운 콘텐츠를 가져올지를 결정하는 데 사용됩니다.
- Cache Key는 기본적으로 요청된 객체의 URL로 구성되지만, 추가적인 요소들을 포함하도록 확장할 수 있습니다.
2 CloudFront Cache Key의 중요성
- Cache Key는 CloudFront의 캐싱 동작을 결정하는 핵심 요소입니다.
- 적절한 Cache Key 설정은 다음과 같은 이점을 제공합니다:
- 캐시 적중률 향상: 불필요한 요소를 제외하여 캐시 효율성을 높입니다.
- 개인화된 콘텐츠 제공: 사용자별 특성에 따라 다른 콘텐츠를 제공할 수 있습니다.
- 원본 서버 부하 감소: 효율적인 캐싱으로 원본 서버로의 요청을 줄입니다.
- 콘텐츠 전송 속도 향상: 캐시된 콘텐츠를 빠르게 제공합니다.
3 CloudFront Cache Key의 구성 요소
CloudFront Cache Key는 다음과 같은 요소들로 구성될 수 있습니다:
3.1 기본 구성 요소
- URL: 요청된 객체의 기본 식별자입니다.
- 호스트 이름: 요청의 대상이 되는 도메인 이름입니다.
3.2 선택적 구성 요소
- HTTP 헤더: 특정 HTTP 헤더 값을 Cache Key에 포함할 수 있습니다.
- 쿠키: 사용자 세션 정보나 기타 설정을 포함할 수 있습니다.
- 쿼리 문자열: URL에 추가된 파라미터 값을 포함할 수 있습니다.
4 CloudFront Cache Policy
- 개념: 캐시 정책은 CloudFront가 캐시 키에 포함할 HTTP 헤더, 쿠키, 쿼리 문자열을 결정합니다.
- 목적: 캐시 동작을 최적화하고 개인화된 콘텐츠를 제공합니다.
4.1 Cache Policy의 주요 설정
- HTTP 헤더 설정:
- 모든 헤더를 원본으로 전달: 캐싱 없이 모든 요청이 원본 서버로 전달됩니다. TTL은 0으로 설정해야 합니다.
- 헤더 화이트리스트 전달: 지정된 헤더만 Cache Key에 포함되고 원본 서버로 전달됩니다.
- 기본 헤더만 전달: 가장 우수한 캐싱 성능을 제공합니다.
- 쿠키 설정:
- 없음, 화이트리스트, 제외를 포함한 모든 쿠키, 모두 포함 중 선택 가능합니다.
- 쿼리 문자열 설정:
- 없음, 화이트리스트, 제외를 포함한 모든 쿼리 문자열, 모두 포함 중 선택 가능합니다.
4.2 TTL(Time-to-Live) 설정
- TTL은 객체가 캐시에 유 지되는 시간을 정의합니다.
- 최소 0초부터 최대 1년까지 설정 가능합니다.
- 원본 서버의 Cache-Control 또는 Expires 헤더를 통해 TTL을 제어할 수 있습니다.
5 원본 요청 정책(Origin Request Policy)
- 개념: 원본 요청 정책은 CloudFront가 원본 서버로 보내는 요청에 포함할 정보를 결정합니다.
- 목적: 캐시 키에 영향을 주지 않으면서 원본 서버에 필요한 정보를 전달합니다.
5.1 원본 요청 정책의 주요 구성 요소
- HTTP 헤더 설정:
- 없음: 기본 헤더 외에 어떤 HTTP 헤더도 원본으로 전달하지 않습니다.
- 화이트리스트: 지정된 HTTP 헤더만 원본으로 전달합니다.
- 모든 뷰어 헤더: 클라이언트가 보낸 모든 HTTP 헤더를 원본으로 전달합니다.
- 쿠키 설정:
- 없음, 화이트리스트, 모든 쿠키 중 선택 가능합니다.
- 쿼리 문자열 설정:
- 없음, 화이트리스트, 모든 쿼리 문자열 중 선택 가능합니다.