파일 무효화 시 알아야 할 사항 - Amazon CloudFront

파일 무효화 시 알아야 할 사항

무효화할 파일을 지정할 때 다음 정보를 참조합니다.

대소문자 구분

무효화 경로는 대/소문자를 구분합니다. 예를 들어 /images/image.jpg/images/Image.jpg는 서로 다른 두 파일을 지정합니다.

Lambda 함수를 사용하여 URI 변경

CloudFront 배포가 최종 사용자 요청 이벤트에서 Lambda 함수를 트리거하고 해당 함수가 요청된 파일의 URI를 변경하는 경우 CloudFront 엣지 캐시에서 파일을 제거하려면 두 URI를 모두 무효화하는 것이 좋습니다.

  • 최종 사용자 요청의 URI

  • 함수가 변경한 후의 URI

예를 들어 Lambda 함수가 파일의 URI를 다음에서

https://d111111abcdef8.cloudfront.net/index.html

언어 디렉터리가 포함된 다음 URI로 변경한다고 가정합니다.

https://d111111abcdef8.cloudfront.net/en/index.html

파일을 무효화하려면 다음 경로를 지정해야 합니다.

  • /index.html

  • /en/index.html

자세한 내용은 Invalidation paths 단원을 참조하세요.

기본 루트 객체

기본 루트 객체(파일)를 무효화하려면 다른 파일에 대한 경로를 지정할 때와 같은 방법으로 경로를 지정합니다. 자세한 내용은 기본 루트 객체 작동 방식 단원을 참조하십시오.

쿠키 전달

오리진에 쿠키를 전달하도록 CloudFront를 구성하는 경우, CloudFront 엣지 캐시에는 여러 버전의 파일이 포함되어 있을 수 있습니다. 파일을 무효화할 경우 CloudFront에서는 연결된 쿠키와 상관없이 각 캐싱된 버전의 파일을 무효화합니다. 연결된 쿠키에 따라 일부 버전만 선택적으로 무효화하고 나머지는 무효화하지 않을 수는 없습니다. 자세한 내용은 쿠키 기반의 콘텐츠 캐싱 단원을 참조하세요.

헤더 전달

오리진에 헤더 목록을 전달하고 헤더 값에 따라 캐싱하도록 CloudFront를 구성한 경우, CloudFront 엣지 캐시에는 여러 버전의 파일이 포함되어 있을 수 있습니다. 파일을 무효화할 경우 CloudFront에서는 헤더 값과 상관없이 각 캐싱된 버전의 파일을 무효화합니다. 헤더 값에 따라 일부 버전만 선택적으로 무효화하고 나머지는 무효화하지 않을 수는 없습니다. 모든 헤더를 오리진에 전달하도록 CloudFront를 구성한 경우 CloudFront는 파일을 캐싱하지 않습니다. 자세한 내용은 요청 헤더 기반의 콘텐츠 캐싱 단원을 참조하세요.

쿼리 문자열 전달

CloudFront에서 쿼리 문자열을 오리진에 전달하도록 구성한 경우, 다음 예제에서와 같이 파일 무효화 시에는 쿼리 문자열을 포함해야 합니다.

  • /images/image.jpg?parameter1=a

  • /images/image.jpg?parameter1=b

클라이언트 요청에 동일 파일에 대한 5가지 쿼리 문자열을 포함하는 경우, 파일을 5번 무효화하거나 각 쿼리 문자열에 대해 한 번만 무효화할 수 있습니다. 또는 다음 예제에서와 같이 * 와일드카드를 무효화 경로에 사용할 수 있습니다.

/images/image.jpg*

무효화 경로에 와일드카드를 사용하는 방법에 대한 자세한 내용은 Invalidation paths 단원을 참조하십시오.

쿼리 문자열에 대한 자세한 내용은 쿼리 문자열 파라미터 기반의 콘텐츠 캐싱 단원을 참조하십시오.

사용 중인 쿼리 문자열을 확인하기 위해서는 CloudFront 로깅을 활성화하면 됩니다. 자세한 내용은 표준 로그(액세스 로그) 구성 및 사용 단원을 참조하세요.

최대 허용

허용되는 최대 무효화 수에 대한 자세한 내용은 동시 무효화 요청 최대값 섹션을 참조하세요.

Microsoft Smooth Streaming 파일

해당 캐시 동작에 대해 Smooth Streaming을 활성화한 경우 Microsoft Smooth Streaming 형식의 미디어 파일을 무효화할 수 없습니다.

ASCII가 아니거나 경로에서 안전하지 않은 문자

경로에 비 ASCII 문자나 RFC 1738에 정의된 안전하지 않은 문자가 포함된 경우, 그러한 문자를 URL로 인코딩합니다. 경로에 있는 그 밖의 다른 문자는 URL로 인코딩하지 마세요. 이렇게 하면 CloudFront에서 기존 버전의 업데이트된 파일을 무효화하지 않습니다.

무효화 경로

이 경로는 배포에 상대적입니다. 예를 들어, https://d111111abcdef8.cloudfront.net/images/image2.jpg의 파일을 무효화하려면 /images/image2.jpg를 지정할 수 있습니다.

참고

CloudFront 콘솔에서 images/image2.jpg와 같이 경로의 선행 슬래시를 생략할 수 있습니다. CloudFront API를 직접 사용하는 경우 무효화 경로는 선행 슬래시로 시작해야 합니다.

또한 * 와일드카드를 사용하여 여러 파일을 동시에 무효화할 수도 있습니다. *는 0개 이상의 문자로 대체되며 무효화 경로의 마지막 문자여야 합니다.

AWS Command Line Interface(AWS CLI)를 사용하여 파일을 무효화하고 * 와일드카드를 포함하는 경로를 지정하는 경우에는 경로를 따옴표(")로 묶어야 합니다(예: "/*").

예: 무효화 경로
  • 특정 디렉터리의 모든 파일을 무효화하려면:

    /directory-path/*

  • 특정 디렉터리와 그 하위 디렉터리 전체, 디렉터리와 하위 디렉터리에 들어 있는 모든 파일을 무효화하려면:

    /directory-path*

  • logo.jpg, logo.png, log.gif와 같이 같은 이름에 다른 파일 이름 확장명을 지닌 모든 파일을 무효화하려면

    /directory-path/file-name.*

  • 특정 디렉터리의 전체 파일 중 파일 이름이 같은 문자로 시작하는 파일(예: HLS 포맷 비디오용 파일 전체)을 무효화하려면

    /directory-path/initial-characters-in-file-name*

  • 쿼리 문자열 파라미터에 따라 캐싱하도록 CloudFront를 구성할 때 각 버전의 파일을 무효화하려는 경우

    /directory-path/file-name.file-name-extension*

  • 특정 배포의 모든 파일을 무효화하려면:

    /*

경로의 최대 길이는 4,000자입니다. 경로 내에 와일드카드를 사용할 수 없습니다. 경로 맨 끝에만 추가할 수 있습니다.

Lambda 함수를 사용하여 URI를 변경하는 경우 파일을 무효화하는 방법에 대한 자세한 내용은 Changing the URI Using a Lambda Function 단원을 참조하세요.

무효화 경로가 디렉터리이고 후행 슬래시(/) 포함 여부 등 디렉터리를 지정하는 방식을 표준화하지 않은 경우, 후행 슬래시(/)를 포함한 디렉터리와 포함하지 않은 디렉터리 모두를 무효화하는 것이 좋습니다(예: /images/images/).

서명된 URL

서명된 URL을 사용하는 경우 물음표(?) 앞의 URL 부분만 포함하여 파일을 무효화합니다.