캐시된 콘텐츠 무효화

이 페이지는 Cloud CDN의 캐시된 콘텐츠를 무효화하는 방법을 설명합니다.

예를 들어 /images/file.jpg에 있는 파일이 캐시되어 무효화되어야 하는 경우, 해당 파일에만 영향을 미칠 것인지 범위를 넓힐 것인지에 따라 여러 방법을 사용하여 무효화할 수 있습니다. 각각의 경우에 모든 호스트 이름이나 하나의 호스트 이름만 무효화할 수 있습니다.

캐시 무효화에 대한 자세한 내용은 캐시 무효화 개요를 참조하세요.

시작하기 전에

Google Cloud CLI 또는 Google Cloud 콘솔을 사용하여 무효화를 수행할 수 있습니다.

Google Cloud CLI에 액세스할 수 있는 두 가지 방법은 다음과 같습니다.

  • apt-get로 설치의 안내를 수행하여 Google Cloud CLI를 설치합니다. 이전에 Google Cloud CLI를 사용한 적이 없다면 먼저 gcloud init를 실행하여 인증하세요.

  • 이미 gcloud가 설치된 Cloud Shell을 사용합니다.

필요한 권한을 보유한 커스텀 역할을 만들려면 커스텀 역할 만들기 및 관리를 참조하세요.

사전 정의된 역할을 추가하려면 IAM 빠른 시작을 사용합니다.

파일 한 개만 무효화

콘솔

  1. Google Cloud 콘솔에서 Cloud CDN 페이지로 이동합니다.

    Cloud CDN 페이지로 이동

  2. 연결된 부하 분산기에서 부하 분산기 이름을 클릭합니다.
  3. 캐시 무효화 탭을 클릭합니다.
  4. 파일 경로를 입력합니다.
    • 모든 호스트 이름의 경로를 무효화하려면 경로만 입력합니다(예: /images/file.jpg).
    • 호스트 이름 한 개의 경로만 무효화하려면 경로의 일부로 호스트 이름을 지정합니다(예: host1.com/images/file.jpg).
  5. 무효화를 클릭합니다.

gcloud

gcloud compute url-maps invalidate-cdn-cache 명령어를 사용합니다.

무효화할 파일을 하나만 지정하려면 파일 이름과 함께 --path 플래그를 사용합니다.

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --path "/images/file.jpg"

URL_MAP_NAME을 URL 맵의 이름으로 바꿉니다. URL 맵을 나열하려면 gcloud compute url-maps list 명령어를 사용합니다.

호스트 한 개만 무효화하려면 --host 플래그를 추가합니다(예: --host host1.com).

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --host host1.com \
    --path "/images/file.jpg"

기본적으로 Google Cloud CLI는 무효화가 완료될 때까지 기다립니다. 백그라운드에서 무효화를 수행하려면 명령줄에 --async를 추가합니다.

API

urlMaps.invalidateCache 메서드 API 호출을 사용합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 콘솔 프로젝트 ID
  • URL_MAP_NAME: URL 맵의 이름

무효화할 파일을 지정하려면 다음 샘플 JSON 요청 본문을 사용하세요.

{
  "path": "/images/file.jpg"
}

하나의 호스트에 대해서만 파일의 유효성을 무효화하려면 다음 샘플 JSON 요청 본문을 사용하세요.

{
  "host": "host1.com",
  "path": "/images/file.jpg"
}

전체 디렉터리 무효화

콘솔

  1. Google Cloud 콘솔에서 Cloud CDN 페이지로 이동합니다.

    Cloud CDN 페이지로 이동

  2. 연결된 부하 분산기에서 부하 분산기 이름을 클릭합니다.
  3. 캐시 무효화 탭을 클릭합니다.
  4. 디렉터리 경로와 와일드 카드(/path/to/file/*)를 입력합니다.
    • 모든 호스트 이름의 전체 디렉터리를 무효화하려면 경로와 와일드 카드만 입력합니다(예: /images/*).
    • 호스트 이름 하나만 있는 전체 디렉터리를 무효화하려면 호스트 이름을 경로의 일부로 지정합니다(예: host1.com/images/*).
  5. 무효화를 클릭합니다.

gcloud

gcloud compute url-maps invalidate-cdn-cache 명령어를 사용합니다.

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --path "/images/*"

URL_MAP_NAME을 URL 맵의 이름으로 바꿉니다.

호스트 한 개만 무효화하려면 --host 플래그를 추가합니다(예: --host host1.com).

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --host host1.com \
    --path "/images/*"

API

urlMaps.invalidateCache 메서드 API 호출을 사용합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 콘솔 프로젝트 ID
  • URL_MAP_NAME: URL 맵의 이름

무효화할 디렉터리를 지정하려면 다음 샘플 JSON 요청 본문을 사용하세요.

{
  "path": "/images/*"
}

하나의 호스트에 대해서만 디렉터리의 유효성을 무효화하려면 다음 샘플 JSON 요청 본문을 사용합니다.

{
  "host": "host1.com",
  "path": "/images/*"
}

캐시 태그별 무효화

콘솔

Google Cloud 콘솔에서는 무효화에 캐시 태그를 사용할 수 없습니다.

gcloud

gcloud beta compute url-maps invalidate-cdn-cache 명령어를 사용합니다.

gcloud beta compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --tags=TAGS

다음을 바꿉니다.

  • URL_MAP_NAME: URL 맵의 이름
  • TAGS: 태그 또는 쉼표로 구분된 태그 목록입니다. 또는 이 플래그를 최대 10번 지정할 수 있습니다.

예를 들어 백엔드 응답에 UUID4 또는 다른 형식의 GUID와 같은 비공개 사용자 ID가 포함된 Cache-Tag 헤더가 포함된 경우 tag 플래그를 사용하여 특정 사용자의 모든 콘텐츠를 무효화할 수 있습니다. 또한 스테이징 환경과 같이 호스트 한 개만 콘텐츠를 무효화하려면 --host 플래그를 추가합니다.

gcloud beta compute url-maps invalidate-cdn-cache url_map_1 \
    --tags="1115b8f4-f804-4861-9629-8cb9aecdeeb3" \
    --host="host1.com"

API

urlMaps.invalidateCache 메서드 API 호출을 사용합니다.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 콘솔 프로젝트 ID
  • URL_MAP_NAME: URL 맵의 이름

무효화할 캐시 태그를 지정하려면 다음 샘플 JSON 요청 본문을 사용하세요.

{
  "cacheTags": [
    "tag1",
    "tag2"
  ]
}

단일 태그 또는 쉼표로 구분된 태그 목록을 지정할 수 있습니다.

하나의 호스트에 대해서만 캐시 태그별로 무효화하려면 다음 샘플 JSON 요청 본문을 사용하세요.

{
  "host": "host1.com",
  "path": "tag1,tag2"
}

모든 항목 무효화

콘솔

  1. Google Cloud 콘솔에서 Cloud CDN 페이지로 이동합니다.

    Cloud CDN 페이지로 이동

  2. 연결된 부하 분산기에서 부하 분산기 이름을 클릭합니다.
  3. 캐시 무효화 탭을 클릭합니다.
  4. 루트와 와일드 카드(/*)만 입력합니다.
    • 모든 호스트 이름의 모든 항목을 무효화하려면 필드에 /*만 입력합니다.
    • 호스트 이름 한 개만에 대해 모든 항목을 무효화하려면 호스트 이름을 경로의 일부로 지정합니다(예: host1.com/*).
  5. 무효화를 클릭합니다.

gcloud

gcloud compute url-maps invalidate-cdn-cache 명령어를 사용합니다.

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --path "/*"

다음을 바꿉니다.

  • URL_MAP_NAME: URL 맵의 이름
  • /*: 무효화할 URL 경로입니다. 호스트 이름은 포함되지 않습니다. 경로에 명시적 파일 이름 또는 와일드 카드를 사용할 수 있습니다.

호스트 한 개만 무효화하려면 --host 플래그를 추가합니다(예: --host host1.com).

gcloud compute url-maps invalidate-cdn-cache URL_MAP_NAME \
    --host host1.com \
    --path "/*"

API

urlMaps.invalidateCache 메서드 API 호출을 사용합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_NAME/invalidateCache

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 콘솔 프로젝트 ID
  • URL_MAP_NAME: URL 맵의 이름

무효화할 URL 경로를 지정하려면 다음 샘플 JSON 요청 본문을 사용하세요.

{
  "path": "/*"
}

하나의 호스트에 대해서만 URL 경로를 무효화하려면 다음 샘플 JSON 요청 본문을 사용하세요.

{
  "host": "host1.com",
  "path": "/*"
}

무효화 요청 상태 보기

Cloud CDN은 무효화당 두 개의 로그 줄을 내보냅니다. 하나는 무효화가 수락될 때, 다른 하나는 무효화가 완료될 때입니다. 첫 번째에는 호스트 및 경로 정보가 있습니다.

무효화 요청의 상태를 확인하거나 최근에 제출된 요청의 최종 목록을 찾으려면 Cloud Logging 또는 Cloud Monitoring을 사용하세요.

다음은 Logging을 사용하는 샘플 명령어입니다.

gcloud logging read 'protoPayload.methodName="v1.compute.urlMaps.invalidateCache"' \
    --limit=10

다음은 Monitoring을 사용하는 샘플 쿼리입니다.

protoPayload.serviceName="compute.googleapis.com"
protoPayload.methodName="v1.compute.urlMaps.invalidateCache"

다음 단계

  • Cloud CDN이 캐시에서 응답을 제공하고 있는지 확인하려면 로그 보기를 참조하세요.
  • 어떤 콘텐츠를 캐시할 수 있는지의 여부를 알아보려면 캐싱 개요를 참조하세요.