캐시된 콘텐츠 무효화

캐시 삭제라고도 부르는 캐시 무효화는 캐시된 콘텐츠를 무효로 선언하는 프로세스입니다. 이렇게 하면 항목이 캐시에서 삭제되고 다음에 콘텐츠를 요청할 때 원본 서버에서 다시 채워집니다.

Media CDN은 다음과 같이 무효화할 콘텐츠를 선택하는 여러 방법을 지원합니다.

  • 호스트 및 URL 경로
  • URL 프리픽스(와일드 카드)
  • status, origin, content-type의 기본 제공 태그를 포함한 캐시 태그

특정 캐시된 응답을 대상으로 지정하고 이후 캐시 채우기에서 원본 부하를 최소화하기 위해 무효화 매개변수를 조합할 수 있습니다.

지원되는 무효화 문법

지원되는 무효화 문법은 다음과 같습니다.

유형 문법
호스트 무효화 지정된 호스트의 캐시된 응답을 무효화합니다. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --host="media.example.com"
경로 무효화 지정된 경로 또는 경로 프리픽스에 대해 캐시된 응답을 무효화합니다. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path="/content/1234/hls/*"

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path="/videos/funny.mp4"
HTTP 상태 코드, 원본 이름, MIME 유형의 캐시 태그 무효화 일치 태그로 캐시 응답을 무효화합니다. 여러 태그는 불리언 OR로 취급됩니다. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags="status=404,origin=staging-origin"

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags="content-type=application/x-mpegurl"

참고:

  • 단일 무효화 요청에 최대 10개의 캐시 태그를 지정할 수 있습니다.
  • 하나의 무효화 요청에서 host, path, tags를 조합할 수 있습니다. 불리언 AND로 취급됩니다.
  • 여러 캐시 태그가 지정된 경우 불리언 OR로 취급됩니다. 예를 들어 --tags="status=404,origin=staging-origin"을 지정하면 origin=staging-origin 캐시 태그를 사용하는 모든 응답과 마찬가지로 status=404의 캐시 태그를 포함하는 모든 응답이 무효화됩니다.

캐시 태그

캐시 태그(또는 서로게이트 키)를 사용하면 임의 메타데이터를 기준으로 콘텐츠를 무효화할 수 있습니다.

이러한 태그는 다음과 같이 정의됩니다.

  • 쉼표로 구분된 값 목록으로 지정된 태그를 사용해서 원본 응답에서 Cache-Tag HTTP 헤더 설정
  • 응답의 HTTP 상태 코드를 기반으로 하는 기본 제공 태그, Content-Type HTTP 응답 헤더의 MIME 유형, 응답을 가져온 원본의 이름

단일 무효화 요청에 여러 태그가 지정된 경우 불리언 OR로 취급됩니다.

다음 예시를 참조하세요.

  • 다음과 같은 캐시된 객체가 있습니다.

    • status=200, content-type=video/mp4 태그를 포함하는 캐시된 객체 #1
    • status=404, content-type=text/plain 태그를 포함하는 캐시된 객체 #2
    • status=200, content-type=application/x-mpegurl 태그를 포함하는 캐시된 객체 #3
  • tags="status=200,content-type=text/plain"로 객체를 무효화하는 요청을 실행합니다.

  • 결과: 캐시된 객체 3개 모두 동시에 무효화됩니다. 이는 알 수 없는 상태일 수 있는 모든 가능한 태그 조합을 지정할 필요가 없도록 방지하기 위한 것입니다.

참고:

  • 기본 캐시 태그는 기존 헤더(예: 상태 줄 또는 Content-Type) 또는 내부 구성 세부정보를 반영하기 때문에 클라이언트 대상 응답에 포함되지 않습니다.
  • Cache-Tag HTTP 응답 헤더에서 원점에서 전송된 캐시 태그는 클라이언트로 전송됩니다. 이러한 태그가 클라이언트에 전송되지 않도록 방지하려면 routeRule에서 responseHeadersToRemove 기능을 사용하여 Cache-Tag 헤더를 삭제합니다. 예시는 커스텀 헤더 문서를 참조하세요.

기본 제공 태그

응답에는 상태 코드, MIME 유형, 콘텐츠를 가져온 원점에 따라 콘텐츠 무효화를 지원하기 위해 다음 캐시 태그가 자동으로 적용됩니다. 원본 응답에서 이러한 태그를 지정할 필요가 없습니다.

태그 세부정보
status=HTTP_STATUS_CODE

status 캐시 태그는 캐시된 응답의 반환된 HTTP 상태 코드를 기반으로 설정됩니다.

예를 들어 무효화 요청에서 status=404를 지정하여 모든 캐시된 HTTP 404 응답을 무효화할 수 있습니다.

content-type=MIME_TYPE

content-type 캐시 태그는 Content-Type HTTP 응답 헤더에 설정된 MIME 유형을 기반으로 설정됩니다.

예를 들어 HLS 재생목록의 MIME 유형은 application/x-mpegURL 또는 vnd.apple.mpegURL입니다.

이렇게 하면 특정 유형의 콘텐츠를 무효화할 수 있습니다.

origin=ORIGIN_NAME

origin 캐시 태그는 콘텐츠를 가져온 원본의 이름을 기반으로 설정됩니다.

origin 값은 .routing.routeRules[].origin의 값을 참조하며, 잘못 구성되었거나 잠재적으로 올바르지 않게 작동하는 원본 서버의 콘텐츠를 무효화할 수 있게 해줍니다.

캐시 태그 제한사항

캐시 태그에는 다음과 같은 제한사항이 있습니다.

  • 태그당 120바이트를 초과하지 않아야 합니다.
  • 캐시된 객체당 총 태그 이름이 1KiB(1024바이트)를 초과하지 않아야 합니다.
  • Media CDN에서 추가된 기본 태그를 포함하지 않고 객체당 10개의 태그를 초과하지 않아야 합니다.
  • HTTP RFC 7230의 섹션 3.2.6에 정의된 대로 유효한 HTTP 토큰 이름이어야 합니다.
  • 기본 제공되는 status=, origin=, content-type= 프리픽스를 포함하지 않아야 합니다(무시됨).

이러한 제한사항을 준수하거나 요구사항을 충족하지 않는 태그는 무시됩니다. 응답 헤더가 너무 큰 경우와 같은 일부 경우에는 응답이 실패하고 캐시되지 않습니다.

권한

networkservices.EdgeCacheServices.invalidateCache 권한은 invalidateCache API에 대한 액세스를 제어합니다. 이 권한은 networkservices.edgeCacheAdminnetworkservices.edgeCacheUser Identity and Access Management 역할에 포함되어 있습니다.

예시

다음 예시는 Media CDN 서비스의 캐시된 응답을 무효화하는 방법을 보여줍니다.

단일 무효화 요청에서 host, path, tags 필드를 조합하여 특정 콘텐츠 집합을 무효화할 수 있습니다.

호스트로 무효화

콘솔

  1. Google Cloud 콘솔에서 Media CDN 페이지로 이동합니다.
    Media CDN으로 이동
  2. 서비스 탭을 클릭합니다.
  3. 서비스를 클릭합니다.
  4. 캐시 무효화 탭을 클릭합니다.
  5. 경로 패턴을 무효화하기 위해 호스트 이름과 경로를 입력합니다. 예를 들면 media.example.com/cats 또는 media.example.com/cat*입니다. 호스트 이름은 *를 포함할 수 없습니다.

gcloud

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --host=HOST

다음을 바꿉니다.

  • SERVICE_NAME을 에지 캐시 서비스 이름으로 바꿉니다.
  • HOST를 무효화할 캐시 항목의 전체 호스트 이름으로 바꿉니다.

예를 들면 다음과 같습니다.

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --host="media.example.com"

경로로 무효화

콘솔

  1. Google Cloud 콘솔에서 Media CDN 페이지로 이동합니다.
    Media CDN으로 이동
  2. 서비스 탭을 클릭합니다.
  3. 서비스를 클릭합니다.
  4. 캐시 무효화 탭을 클릭합니다.
  5. 경로 패턴을 무효화하기 위해 경로를 입력합니다. 예를 들면 /videos/funny.mp4 또는 /segments/e94a6b1f731/*입니다.

gcloud

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path=PREFIX

다음을 바꿉니다.

  • SERVICE_NAME을 에지 캐시 서비스 이름으로 바꿉니다.
  • HOST을 무효화할 캐시 항목의 호스트 이름으로 바꿉니다. 호스트 이름과 일치시키려면 호스트 플래그를 생략합니다.
  • PREFIX를 무효화할 캐시 항목과 일치하는 '*'로 끝나는 경로 프리픽스로 바꿉니다.

예를 들면 다음과 같습니다.

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path="/segments/e94a6b1f731/*"

또한 후행 * 문자를 생략하여 정확한 경로를 무효화할 수 있습니다. --path="/videos/funny.mp4"를 전달하면 이 경로와 일치하는 캐시된 응답(있는 경우)이 무효화됩니다.

캐시 태그로 무효화

콘솔

캐시 태그 무효하는 Google Cloud 콘솔에서 지원되지 않습니다.

gcloud

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags=TAGS

다음을 바꿉니다.

  • SERVICE_NAME을 에지 캐시 서비스 이름으로 바꿉니다.
  • TAGS를 쉼표로 구분된 태그 목록으로 바꿉니다.

예를 들면 다음과 같습니다.

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags="status=404,content-type=text/plain"

무효화 지연 시간

일반적으로 Media CDN의 수천 개 위치에 걸친 캐시 무효화는 전역적으로 1분 내에 완료됩니다.

일부 경우에는 시스템 부하, 연결, 무효화하려는 콘텐트 볼륨에 따라 무효화가 더 오래 걸릴 수 있습니다.

로깅

감사 로그가 사용 설정된 경우 무효화 호출이 Cloud Logging에 로깅됩니다.

제한사항

무효화에는 비율 제한이 있습니다. 무효화 비율 제한을 초과하면 RESOURCE_EXHAUSTED 상태의 HTTP 429 오류 메시지가 표시됩니다.

무효화는 크기 제한이 없습니다. 예를 들어 /images/my-image.png를 무효화하면 무효화 1회로 카운트됩니다. /images/* 무효화도 무효화 1회로 카운트됩니다.

이 동작은 Cloud CDN의 동작과 다릅니다. Cloud CDN은 분당 한 번의 무효화를 지원합니다.