

# 파일을 무효화하여 콘텐츠 제거
<a name="Invalidation"></a>

CloudFront 엣지 캐시에서 파일이 만료되기 전에 파일을 제거해야 할 경우, 다음 방법 중 하나를 사용하면 됩니다.
+ 엣지 캐시에서 파일을 무효화합니다. 다음에 최종 사용자가 파일을 요청하면 CloudFront는 최신 버전의 파일을 가져오도록 오리진에 반환합니다.
+ 파일 버전 관리를 사용하여 서로 다른 이름을 가진 여러 버전의 파일을 제공합니다. 자세한 내용은 [버전이 지정된 파일 이름을 사용하여 기존 파일 업데이트](UpdatingExistingObjects.md#ReplacingObjects) 섹션을 참조하세요.

**Topics**
+ [파일을 무효화하는 방법과 버전이 지정된 파일 이름을 사용하는 방법 중에 선택](#Invalidation_Expiration)
+ [무효화할 파일 결정](invalidation-access-logs.md)
+ [파일 무효화 시 알아야 할 사항](invalidation-specifying-objects.md)
+ [파일 무효화](Invalidation_Requests.md)
+ [동시 무효화 요청 최대값](InvalidationLimits.md)
+ [파일 무효화에 대한 요금 결제](PayingForInvalidation.md)

## 파일을 무효화하는 방법과 버전이 지정된 파일 이름을 사용하는 방법 중에 선택
<a name="Invalidation_Expiration"></a>

배포가 제공하는 파일의 버전을 제어하는 방법에는 파일을 무효화하는 방법과, 버전 지정된 파일 이름을 제공하는 방법이 있습니다. 파일을 자주 업데이트하려는 경우, 기본적으로 파일 버전 관리를 사용하는 것이 좋습니다. 그 이유는 다음과 같습니다.
+ 버전 관리를 사용하면 사용자가 로컬에 또는 회사 캐싱 프록시 뒤에 캐싱된 버전을 가지고 있더라도 요청이 반환하는 파일을 제어할 수 있습니다. 파일을 무효화하면 파일이 해당 캐시에서 만료될 때까지는 사용자에게 이전 버전이 계속 표시될 수 있습니다.
+ 버전 관리를 통해 파일 변경의 결과를 더 쉽게 분석할 수 있도록 CloudFront 액세스 로그에는 파일의 이름이 포함됩니다.
+ 버전 관리를 사용하면 서로 다른 사용자에게 여러 버전의 파일을 제공할 수 있습니다.
+ 버전 관리를 통해 파일 개정 버전을 손쉽게 앞 버전이나 뒤 버전으로 이동할 수 있습니다.
+ 버전 관리는 비용이 저렴합니다. CloudFront가 새 버전의 파일을 엣지 로케이션에 전송하게 하려면 요금이 발생하지만, 파일 무효화에 대해서는 요금을 지불할 필요가 없습니다.

파일 버전 관리에 대한 자세한 내용은 [버전이 지정된 파일 이름을 사용하여 기존 파일 업데이트](UpdatingExistingObjects.md#ReplacingObjects) 단원을 참조하십시오.

# 무효화할 파일 결정
<a name="invalidation-access-logs"></a>

특정 디렉터리에 있는 모든 파일이나 같은 문자로 시작하는 이름을 가진 모든 파일 등 여러 파일을 무효화하려는 경우, 무효화 경로의 끝에 `*` 와일드카드를 포함시키면 됩니다. `*` 와일드카드 사용에 대한 자세한 내용은 [Invalidation paths](invalidation-specifying-objects.md#invalidation-specifying-objects-paths) 단원을 참조하십시오.

파일을 무효화하려면 개별 파일에 대한 경로나 `*` 와일드카드로 끝나는 경로 중에 지정할 수 있습니다. 이는 다음 예에 나와 있듯 각각 하나의 파일 또는 여러 파일에 적용됩니다.
+ `/images/image1.jpg`
+ `/images/image*`
+ `/images/*`

선택한 파일을 무효화하려 하지만 사용자가 오리진의 모든 파일에 반드시 액세스할 필요가 없는 경우, CloudFront에서 최종 사용자가 요청한 파일을 확인하여 그러한 파일만 무효화할 수 있습니다. 최종 사용자가 요청한 파일을 확인하려면 CloudFront 액세스 로깅을 활성화합니다. 액세스 로그에 대한 자세한 내용은 [액세스 로그(표준 로그)](AccessLogs.md) 단원을 참조하십시오.

# 파일 무효화 시 알아야 할 사항
<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 부분만 포함하여 파일을 무효화합니다.

# 파일 무효화
<a name="Invalidation_Requests"></a>

CloudFront 콘솔을 사용하여 무효화를 생성 및 실행하고 이전에 제출한 무효화의 목록과 개별 무효화에 관한 세부 정보를 표시할 수 있습니다. 또한 기존 무효화를 복사하고 파일 경로의 목록을 편집하며 편집된 무효화를 실행할 수 있습니다. 목록에서 무효화를 제거할 수 없습니다.

**Contents**
+ [파일 무효화](#invalidating-objects-console)
+ [기존 무효화를 복사, 편집, 재실행](#invalidating-objects-copy-console)
+ [무효화 취소](#canceling-invalidations)
+ [무효화 목록 작성](#listing-invalidations-console)
+ [무효화에 대한 정보를 표시하려면](#invalidation-details-console)

## 파일 무효화
<a name="invalidating-objects-console"></a>

CloudFront 콘솔을 사용하여 파일을 무효화하려면 다음과 같이 합니다.

------
#### [ Console ]<a name="invalidating-objects-console-procedure"></a>

**파일을 무효화하려면(콘솔)**

1. AWS Management Console에 로그인한 다음 [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)에서 CloudFront 콘솔을 엽니다.

1. 파일을 무효화하려는 배포를 선택합니다.

1. **Invalidations**(무효화) 탭을 선택합니다.

1. **무효화 생성**을 선택합니다.

1. 무효화하려는 파일에 대해 한 줄에 하나의 무효화 경로를 입력합니다. 무효화 경로 지정에 대한 자세한 내용은 [파일 무효화 시 알아야 할 사항](invalidation-specifying-objects.md) 단원을 참조하십시오.
**중요**  
파일 경로를 신중하게 지정합니다. 무효화 요청을 시작한 후에는 취소할 수 없습니다.

1. **무효화 생성**을 선택합니다.

------
#### [ CloudFront API ]

객체를 무효화하고 무효화 관련 정보를 표시하는 방법을 알아보려면 Amazon CloudFront API 참조**에서 다음 주제를 참조하세요.
+ [CreateInvalidation](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateInvalidation.html) 
+ [ListInvalidations](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListInvalidations.html)
+ [GetInvalidation](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetInvalidation.html)

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

```
aws cloudfront create-invalidation --distribution-id distribution_ID --paths "/*"
```

------

## 기존 무효화를 복사, 편집, 재실행
<a name="invalidating-objects-copy-console"></a>

이전에 생성한 무효화를 복사하고 무효화 경로의 목록을 업데이트하여 업데이트된 무효화를 실행할 수 있습니다. 기존 무효화를 복사하고 무효화 경로를 업데이트하여 업데이트된 무효화를 실행하지 않고 저장할 수는 없습니다.

**중요**  
아직 진행 중인 무효화를 복사하고 무효화 경로의 목록을 업데이트하여 업데이트된 무효화를 실행하는 경우, CloudFront에서는 복사한 무효화를 중단하거나 삭제하지 않습니다. 무효화 경로가 원본 및 복사본에 표시되는 경우 CloudFront에서는 파일에 대해 두 번 무효화를 시도하며, 두 무효화 모두 월별 무료 무효화 최대 횟수로 산정됩니다. 이미 무료 무효화 최대 횟수에 도달한 경우 각 파일의 무효화 두 건에 대해 요금이 청구됩니다. 자세한 내용은 [동시 무효화 요청 최대값](InvalidationLimits.md) 섹션을 참조하세요.<a name="invalidating-objects-copy-console-procedure"></a>

**기존 무효화를 복사, 편집, 재실행하려면**

1. AWS Management Console에 로그인한 다음 [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)에서 CloudFront 콘솔을 엽니다.

1. 복사하려는 무효화가 포함된 배포를 선택합니다.

1. **Invalidations**(무효화) 탭을 선택합니다.

1. 복사하려는 무효화를 선택합니다.

   복사하려는 무효화가 확실치 않은 경우, 무효화를 하나 선택하고 **세부 정보 보기**를 선택하여 해당 무효화에 대한 세부 정보를 표시할 수 있습니다.

1. **신규로 복사**를 선택합니다.

1. 해당되는 경우 무효화 경로의 목록을 업데이트합니다.

1. **무효화 생성**을 선택합니다.

## 무효화 취소
<a name="canceling-invalidations"></a>

CloudFront에 무효화 요청을 제출하면 CloudFront는 몇 초 이내에 모든 엣지 로케이션으로 요청을 전달하며, 각 엣지 로케이션은 즉시 무효화를 처리하기 시작합니다. 따라서 무효화를 제출한 후에는 취소할 수 없습니다.

## 무효화 목록 작성
<a name="listing-invalidations-console"></a>

CloudFront 콘솔을 사용하여 배포에 대해 생성하고 실행한 최근 100건의 무효화 목록을 표시할 수 있습니다. 100건이 넘는 무효화 목록을 가져오려는 경우 `ListInvalidations` API 작업을 사용합니다. 자세한 내용은 *Amazon CloudFront API 참조*의 [ListInvalidations](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListInvalidations.html)를 참조하세요.<a name="listing-invalidations-console-procedure"></a>

**무효화 목록을 작성하려면**

1. AWS Management Console에 로그인한 다음 [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)에서 CloudFront 콘솔을 엽니다.

1. 무효화 목록을 표시하려는 배포를 선택합니다.

1. **Invalidations**(무효화) 탭을 선택합니다.

**참고**  
목록에서 무효화를 제거할 수 없습니다.

## 무효화에 대한 정보를 표시하려면
<a name="invalidation-details-console"></a>

배포 ID, 무효화 ID, 무효화의 상태, 무효화가 생성된 날짜 및 시간, 무효화 경로의 전체 목록을 포함한 무효화에 관한 세부 정보를 표시할 수 있습니다.<a name="invalidation-details-console-procedure"></a>

**무효화에 대한 정보를 표시하려면**

1. AWS Management Console에 로그인한 다음 [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)에서 CloudFront 콘솔을 엽니다.

1. 세부 정보를 표시하려는 무효화가 포함된 배포를 선택합니다.

1. **Invalidations**(무효화) 탭을 선택합니다.

1. 해당하는 무효화 ID를 선택하거나 무효화 ID를 선택한 다음 **세부 정보 보기**를 선택합니다.

# 동시 무효화 요청 최대값
<a name="InvalidationLimits"></a>

파일을 개별적으로 무효화하는 경우, 배포당 한 번에 최대 3,000개의 파일에 대해 진행 중인 무효화 요청을 보유할 수 있습니다. 이것은 최대 3,000개의 파일에 대해 한 번의 무효화 요청을 하거나, 각 파일에 대해 최대 3,000건의 요청을 하거나, 3,000개의 파일을 초과하지 않는 기타 모든 조합이 가능함을 의미합니다. 예를 들어, 각각 100개의 파일을 무효화하는 30건의 무효화 요청을 제출할 수 있습니다. 30건의 무효화 요청 모두가 아직 진행 중인 경우 더 이상의 무효화 요청은 제출할 수 없습니다. 이 최대값을 초과하면 CloudFront에서 오류 메시지를 반환합니다.

\$1 와일드카드를 사용하는 경우 한 번에 최대 15개의 무효화 경로에 대해 진행 중인 요청을 보유할 수 있습니다. 또한 배포당 최대 3,000개의 개별 파일에 대해 진행 중인 무효화 요청을 동시에 보유할 수 있습니다. 허용되는 와일드카드 무효화 요청에 대한 최대값은 개별적으로 파일을 무효화하는 데 적용되는 최대값과는 독립적입니다.

# 파일 무효화에 대한 요금 결제
<a name="PayingForInvalidation"></a>

월별로 제출한 최초 1,000개의 무효화 경로에 대해서는 무료입니다. 월별로 1,000개를 초과하는 각 무효화 경로에 대해서 요금을 지불합니다. 무효화 경로는 단일 파일(예:`/images/logo.jpg`) 또는 여러 파일(예: `/images/*`)에 적용될 수 있습니다. CloudFront가 수천 개의 파일을 무효화하더라도 `*` 와일드카드 수가 하나의 경로로 포함되는 경로입니다.

월별 1,000개의 무료 무효화 경로 최대값은 하나의 AWS 계정으로 생성한 전체 배포에서 무효화 경로의 총 수에 적용됩니다. 예를 들어, AWS 계정 `john@example.com`을 사용하여 세 개의 배포를 만든 경우 지정된 월에 *배포별*로 600개의 무효화 경로를 제출했다면(총 1,800개의 무효화 경로에 해당), AWS에서는 총 무효화 경로와 1,000개의 무료 한도 간의 차이에 대해 요금을 부과합니다. 이 예시에서 AWS는 해당 월에 800개의 무효화 경로에 대해 요금을 부과합니다.

무효화 경로를 제출하는 데 부과되는 요금은 무효화하는 파일 수와 관계없이 단일 객체(`/images/logo.jpg`) 또는 배포와 연결된 모든 파일(`/*`)에 대해 동일합니다. 무효화 요청에서는 경로별로 요금이 부과되므로 여러 경로를 단일 요청으로 묶더라도 각 경로는 여전히 청구 시 개별적으로 계산됩니다.

무효화 요금에 대한 자세한 내용은 [Amazon CloudFront 요금](https://aws.amazon.com/cloudfront/pricing/)을 참조하세요. 무효화 경로에 대한 자세한 내용은 [Invalidation paths](invalidation-specifying-objects.md#invalidation-specifying-objects-paths) 단원을 참조합니다.