메뉴
Amazon CloudFront
개발자 가이드 (API Version 2016-09-29)

객체 무효화(웹 배포만 해당)

CloudFront 엣지 캐시에서 객체가 만료되기 전에 이를 제거해야 할 경우, 다음 중 하나를 수행하면 됩니다.

  • 엣지 캐시에서 객체를 무효화합니다. 다음에 뷰어가 객체를 요청할 때, CloudFront에서는 최신 버전의 객체를 가져오도록 오리진에 반환합니다.

  • 객체 버전 관리를 사용하여 서로 다른 이름을 지닌 여러 버전의 객체를 제공합니다. 자세한 내용은 버전이 지정된 객체 이름을 사용하여 기존 객체 업데이트 단원을 참조하십시오.

중요

웹 배포에서 제공되는 대부분의 객체 유형을 무효화할 수 있지만, 해당 캐시 동작에 대해 Smooth Streaming을 활성화한 경우 Microsoft Smooth Streaming 포맷의 미디어 파일을 무효화할 수는 없습니다. 또한 RTMP 배포로 제공되는 객체는 무효화할 수 없습니다.

객체를 무효화하려면 개별 객체에 대한 경로나 * 와일드카드로 끝나는 경로 중에 지정할 수 있습니다. 이는 다음 예에 나와 있듯 각각 하나의 객체나 여러 객체에 적용됩니다.

  • /images/image1.jpg

  • /images/image*

  • /images/*

매월 지정된 개수의 무효화 경로를 무료로 제출할 수 있습니다. 한 달에 할당된 개수의 무효화 경로를 초과하여 제출하는 경우, 제출한 무효화 경로 각각에 대해 요금을 지불합니다. 무효화에 부과되는 요금에 대한 자세한 내용은 객체 무효화에 대한 요금 지불 단원을 참조하십시오.

객체 무효화 및 버전이 지정된 객체 이름 사용 중 선택

배포에서 제공된 객체의 버전을 제어하기 위한 방법으로 객체 무효화 또는 버전이 지정된 파일 이름 제공 중에 선택할 수 있습니다. 객체를 자주 업데이트하려는 경우, 다음 이유로 객체 버전 관리를 기본적으로 사용하는 것이 좋습니다.

  • 버전 관리를 사용하면 사용자가 로컬로 또는 사내 캐싱 프록시 뒤에서 캐시된 버전을 보유한 경우라도 요청이 반환하는 객체를 제어할 수 있습니다. 객체를 무효화하는 경우 객체가 해당 캐시에서 만료될 때까지는 사용자에게 계속해서 이전 버전이 표시될 수 있습니다.

  • 버전 관리를 통해 객체 변경의 결과를 더 쉽게 분석할 수 있도록 CloudFront 액세스 로그에는 객체의 이름이 포함됩니다.

  • 버전 관리를 통해 서로 다른 사용자에게 여러 버전의 객체를 제공하는 방법을 제공합니다.

  • 버전 관리를 통해 객체 개정 버전 전후로의 이동이 간소화됩니다.

  • 버전 관리는 비용이 저렴합니다. 새 버전의 객체를 엣지 로케이션에 전송하기 위해서는 CloudFront에 대해 비용을 지불해야 하지만, 객체 무효화에 대해서는 비용을 지불할 필요가 없습니다.

객체 버전 관리에 대한 자세한 내용은 버전이 지정된 객체 이름을 사용하여 기존 객체 업데이트 단원을 참조하십시오.

무효화할 객체 확인

특정 디렉터리에 있는 모든 객체나 같은 문자로 시작하는 이름을 가진 모든 객체 등 여러 객체를 무효화하려는 경우, 무효화 경로의 끝에 * 와일드카드를 포함할 수 있습니다. * 와일드카드 사용에 대한 자세한 내용은 Invalidation paths 단원을 참조하십시오.

선택한 객체를 무효화하려 하지만 사용자가 오리진의 모든 객체에 반드시 액세스할 필요가 없는 경우, CloudFront에서 뷰어가 요청한 객체를 확인하여 그러한 객체만 무효화할 수 있습니다. 뷰어가 요청한 객체를 확인하려면 CloudFront 액세스 로깅을 활성화합니다. 액세스 로그에 대한 자세한 내용은 액세스 로그 단원을 참조하십시오.

무효화할 객체 지정

CloudFront 콘솔 또는 CloudFront API 중 어느 것을 사용하여 객체를 무효화하든 객체에 지정할 요구 사항과 제한은 동일합니다. 무효화하려는 객체를 지정할 때는 다음 사항에 유의하십시오.

대소문자 구분

무효화 경로는 대소문자를 구분하므로 /images/image.jpg/images/Image.jpg는 서로 다른 두 객체를 지정합니다.

Lambda 함수를 사용하여 URI 변경

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

  • 최종 사용자 요청의 URI

  • 함수가 변경한 후의 URI

예를 들어, Lambda 함수가 객체의 URI를 다음에서

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

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

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

객체를 무효화하려면 다음 경로를 지정 해야 합니다.

  • index.html

  • en/index.html

자세한 내용은 Invalidation paths 단원을 참조하십시오.

기본 루트 객체

기본 루트 객체를 무효화하려면 다른 객체에 대한 경로를 지정할 때와 같은 방법으로 경로를 지정합니다.

배포 유형

웹 배포와 연결된 객체만 무효화할 수 있습니다.

쿠키 전달

오리진에 쿠키를 전달하도록 CloudFront를 구성하는 경우, CloudFront 엣지 캐시에는 여러 버전의 객체가 포함되어 있을 수 있습니다. 객체를 무효화할 경우 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 구성 단원을 참조하십시오. 사용 중인 쿼리 문자열을 확인하기 위해서는 CloudFront 로깅을 활성화하면 됩니다. 자세한 내용은 액세스 로그 단원을 참조하십시오.

제한

무효화에 적용되는 제한 사항에 대한 자세한 내용은 무효화 제한 단원을 참조하십시오.

Microsoft Smooth Streaming 파일

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

경로의 비 ASCII 또는 안전하지 않은 문자

경로에 비 ASCII 문자나 RFC 1783(http://www.ietf.org/rfc/rfc1738.txt)에 정의된 안전하지 않은 문자가 포함된 경우, 그러한 문자를 URL로 인코딩합니다. 경로에 있는 그 밖의 다른 문자는 URL로 인코딩하지 마십시오. 그렇지 않으면 CloudFront에서 기존 버전의 업데이트된 객체를 무효화하지 않습니다.

무효화 경로

이 경로는 배포에 상대적입니다. 선행 /(슬래시) 사용은 선택 사항입니다. 예를 들어, http://d111111abcdef8.cloudfront.net/images/image2.jpg의 객체를 무효화하려면 다음과 같이 지정할 수 있습니다.

/images/image2.jpg

또는

images/image2.jpg

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

  • 특정 디렉터리의 모든 객체를 무효화하려면

    /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/logo.jpg) 또는 배포와 연결된 모든 객체(/*)에 대해 동일합니다. 자세한 내용은 Amazon CloudFront 요금을 참조하십시오.

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

서명된 URL

서명된 URL을 사용하는 경우 물음표(?) 이전의 URL 부분만 포함하여 객체를 무효화합니다.

객체 무효화 및 무효화 관련 정보 표시

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

다음 관련 주제를 참조하십시오.

CloudFront 콘솔을 사용한 객체 무효화

CloudFront 콘솔을 사용하여 객체를 무효화하려면 다음 절차를 수행하십시오.

CloudFront 콘솔을 사용하여 객체를 무효화하려면

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

  2. 객체를 무효화하려는 배포를 선택합니다.

  3. [Distribution Settings]를 선택합니다.

  4. [Invalidations] 탭을 선택합니다.

  5. [Create Invalidation]을 선택합니다.

  6. 무효화하려는 객체에 대해 한 줄에 하나의 무효화 경로를 입력합니다. 무효화 경로 지정에 대한 자세한 내용은 무효화할 객체 지정 단원을 참조하십시오.

    중요

    객체 경로를 신중하게 지정합니다. 무효화 요청을 시작한 후에는 취소할 수 없습니다.

  7. [Invalidate]를 선택합니다.

CloudFront 콘솔을 사용한 기존 무효화 복사, 편집, 재실행

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

중요

아직 진행 중인 무효화를 복사하고 무효화 경로의 목록을 업데이트하여 업데이트된 무효화를 실행하는 경우, CloudFront에서는 복사한 무효화를 중단하거나 삭제하지 않습니다. 무효화 경로가 원본 및 복사본에 표시되는 경우 CloudFront에서는 객체에 대해 두 번 무효화를 시도하며, 두 무효화 모두 월별 무료 무효화 최대 횟수로 산정됩니다. 이미 무료 무효화 최대 횟수에 도달한 경우 각 객체의 무효화 두 건에 대해 요금이 청구됩니다. 자세한 내용은 무효화 제한 단원을 참조하십시오.

CloudFront 콘솔을 사용하여 기존 무효화를 복사, 편집, 재실행하려면

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

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

  3. [Distribution Settings]를 선택합니다.

  4. [Invalidations] 탭을 선택합니다.

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

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

  6. [Copy]를 선택합니다.

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

  8. [Invalidate]를 선택합니다.

무효화 취소

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

CloudFront 콘솔을 사용한 무효화 목록 작성

콘솔을 사용하여 배포에 대해 생성하고 실행한 최근 100건의 무효화 목록을 표시할 수 있습니다. 100건이 넘는 무효화 목록을 가져오려는 경우 GET Invalidation List API 작업을 사용합니다. 자세한 내용은 Amazon CloudFront API ReferenceGET Invalidation List 단원을 참조하십시오.

CloudFront 콘솔을 사용하여 무효화 목록을 작성하려면

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

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

  3. [Distribution Settings]를 선택합니다.

  4. [Invalidations] 탭을 선택합니다.

CloudFront 콘솔을 사용한 무효화 관련 정보 표시

배포 ID, 무효화 ID, 무효화의 상태, 무효화가 생성된 날짜 및 시간, 무효화 경로의 전체 목록을 포함한 무효화에 관한 세부 정보를 표시할 수 있습니다.

CloudFront 콘솔을 사용하여 무효화 관련 정보를 표시하려면

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

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

  3. [Distribution Settings]를 선택합니다.

  4. [Invalidations] 탭을 선택합니다.

  5. 해당 무효화를 선택합니다.

  6. [Details]를 선택합니다.

CloudFront API를 사용한 객체 무효화 및 무효화 관련 정보 표시

CloudFront API를 사용한 객체 무효화와 무효화 관련 정보 표시에 대한 자세한 내용은 Amazon CloudFront API Reference에서 다음 관련 주제를 참조하십시오.

객체 무효화를 위한 타사 도구

CloudFront에서 제공하는 무효화 방법에 추가로, 여러 타사 도구에서 객체 무효화 방법을 제공하고 있습니다. 도구의 목록은 객체 무효화 단원을 참조하십시오.

무효화 제한

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

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

객체 무효화에 대한 요금 지불

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

월별 1,000개의 무효화 경로 제한은 하나의 AWS 계정으로 생성한 전체 배포에서 무효화 경로의 총 수에 적용됩니다. 예를 들어 AWS 계정 john@example.com을 사용하여 세 개의 배포를 만든 경우 지정된 월에 각 배포별로 600개의 무효화 경로를 제출했다면(총 1,800개의 무효화 경로에 해당), AWS에서는 해당 월에 800개의 무효화 경로에 대한 요금을 부과합니다. 무효화 요금에 대한 자세한 내용은 Amazon CloudFront 요금을 참조하십시오. 무효화 경로에 대한 자세한 내용은 Invalidation paths 단원을 참조하십시오.