

# 파일 무효화 시 알아야 할 사항
<a name="invalidation-specifying-objects"></a>

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

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

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

**Example 예제**  
예를 들어 Lambda 함수가 파일의 URI를 다음에서  
`https://d111111abcdef8.cloudfront.net/index.html`  
언어 디렉터리가 포함된 다음 URI로 변경한다고 가정합니다.  
`https://d111111abcdef8.cloudfront.net/en/index.html`  
파일을 무효화하려면 다음 경로를 지정해야 합니다.  
+ `/index.html`
+ `/en/index.html`
자세한 내용은 [Invalidation paths](#invalidation-specifying-objects-paths) 단원을 참조하세요.

 **기본 루트 객체**  
기본 루트 객체(파일)를 무효화하려면 다른 파일에 대한 경로를 지정할 때와 같은 방법으로 경로를 지정합니다. 자세한 내용은 [기본 루트 객체 작동 방식](DefaultRootObject.md#DefaultRootObjectHow) 섹션을 참조하세요.

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

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

 **쿼리 문자열 전달**  
CloudFront에서 쿼리 문자열을 오리진에 전달하도록 구성한 경우, 다음 예제에서와 같이 파일 무효화 시에는 쿼리 문자열을 포함해야 합니다.  
+ `/images/image.jpg?parameter1=a`
+ `/images/image.jpg?parameter1=b`
클라이언트 요청에 동일 파일에 대한 5가지 쿼리 문자열을 포함하는 경우, 파일을 5번 무효화하거나 각 쿼리 문자열에 대해 한 번만 무효화할 수 있습니다. 또는 다음 예제에서와 같이 \$1 와일드카드를 무효화 경로에 사용할 수 있습니다.  
`/images/image.jpg*`  
무효화 경로에 와일드카드를 사용하는 방법에 대한 자세한 내용은 [Invalidation paths](#invalidation-specifying-objects-paths) 단원을 참조하십시오.  
쿼리 문자열에 대한 자세한 내용은 [쿼리 문자열 파라미터 기반의 콘텐츠 캐싱](QueryStringParameters.md) 단원을 참조하십시오.  
사용 중인 쿼리 문자열을 확인하기 위해서는 CloudFront 로깅을 활성화하면 됩니다. 자세한 내용은 [액세스 로그(표준 로그)](AccessLogs.md) 단원을 참조하세요.

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

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

 **ASCII가 아니거나 경로에서 안전하지 않은 문자**  
경로에 비 ASCII 문자나 [RFC 1738](https://tools.ietf.org/html/rfc1738)에 정의된 안전하지 않은 문자가 포함된 경우, 그러한 문자를 URL로 인코딩합니다. 경로에 있는 그 밖의 다른 문자는 URL로 인코딩하지 마세요. 이렇게 하면 CloudFront에서 기존 버전의 업데이트된 파일을 무효화하지 않습니다.  
경로에 `~` 문자를 사용하면 안 됩니다. CloudFront는 URL 인코딩 여부에 관계없이 무효화에 대해 이 문자를 지원하지 않습니다.

 **무효화 경로**  
이 경로는 배포에 상대적입니다. 예를 들어, `https://d111111abcdef8.cloudfront.net/images/image2.jpg`의 파일을 무효화하려면 `/images/image2.jpg`를 지정할 수 있습니다.  
[CloudFront 콘솔](https://console.aws.amazon.com/cloudfront/v4/home)에서 `images/image2.jpg`와 같이 경로의 선행 슬래시를 생략할 수 있습니다. CloudFront API를 직접 사용하는 경우 무효화 경로는 선행 슬래시로 시작해야 합니다.
또한 `*` 와일드카드를 사용하여 여러 파일을 동시에 무효화할 수도 있습니다. `*`는 0개 이상의 문자로 대체되며 무효화 경로의 마지막 문자여야 합니다.  
무효화에 와일드카드(\$1)를 사용하려면 경로 끝에 와일드카드를 입력해야 합니다. 다른 곳에 별표(\$1)를 삽입하면 와일드카드 무효화 대신 문자 그대로 일치하는 것을 찾도록 처리됩니다.
AWS Command Line Interface(AWS CLI)를 사용하여 파일을 무효화하고 `*` 와일드카드를 포함하는 경로를 지정하는 경우에는 경로를 따옴표(`"`)로 묶어야 합니다(예: `"/*"`).  
경로의 최대 길이는 4,000자입니다.  

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

  `/`*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*`*`
+ 특정 배포의 모든 파일을 무효화하려면:

  `/*`
Lambda 함수를 사용하여 URI를 변경하는 경우 파일을 무효화하는 방법에 대한 자세한 내용은 [Changing the URI Using a Lambda Function](#invalidation-lambda-at-edge) 단원을 참조하세요.  
무효화 경로가 디렉터리이고 후행 슬래시(/) 포함 여부 등 디렉터리를 지정하는 방식을 표준화하지 않은 경우, 후행 슬래시(/)를 포함한 디렉터리와 포함하지 않은 디렉터리 모두를 무효화하는 것이 좋습니다(예: `/images` 및 `/images/`).

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