캐시 모드 변경

이 페이지에서는 Cloud CDN으로 캐시 모드를 변경하는 방법을 설명합니다. 캐시 모드를 사용하면 Cloud CDN에서 콘텐츠를 캐시하는 방법을 구성할 수 있습니다.

시작하기 전에

  • 캐시 모드 및 정적 콘텐츠를 읽어보세요.

  • Cloud CDN이 사용 설정되어 있는지 확인합니다. 자세한 내용은 Cloud CDN 사용을 참조하세요.

  • 필요한 경우 Google Cloud CLI를 최신 버전으로 업데이트합니다.

    gcloud components update
    

캐시 모드 설정

Cloud CDN이 사용 설정된 백엔드에서 캐시 모드를 구성하려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.

    부하 분산 페이지로 이동

  2. 외부 애플리케이션 부하 분산기 이름을 클릭합니다.
  3. 수정 을 클릭합니다.
  4. 백엔드 구성에서 백엔드를 선택하고 수정 을 클릭합니다.
  5. Cloud CDN 사용 설정이 선택되어 있는지 확인합니다.
  6. 캐시 모드에서 다음 옵션 중 하나를 선택합니다.
    • 정적 콘텐츠 캐시(권장): 정적 콘텐츠는 사용자에 따라 변경되지 않는 웹 애셋입니다. 정적 콘텐츠는 응답의 Content-Type을 기반으로 합니다. 자세한 내용은 정적 콘텐츠를 참조하세요.
    • Cache-Control 헤더를 기준으로 원본 설정 사용: 응답 헤더에 유효한 캐시 지시문이 있는 응답을 캐시합니다.
    • 모든 콘텐츠 강제 캐시: private 또는 no-store 지시문을 무시하고 원본이 제공한 모든 성공적인 콘텐츠를 캐시합니다.
  7. 저장을 클릭합니다.

gcloud

백엔드 서비스의 경우 --cache-mode 플래그와 함께 gcloud compute backend-services create 또는 gcloud compute backend-services update 명령어를 사용합니다.

백엔드 버킷의 경우 --cache-mode 플래그와 함께 gcloud compute backend-buckets create 또는 gcloud compute backend-buckets update 명령어를 사용합니다.

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --cache-mode=CACHE_MODE
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --cache-mode=CACHE_MODE

CACHE_MODE를 다음 중 하나로 바꿉니다.

  • CACHE_ALL_STATIC(기본값): 정적 콘텐츠를 자동으로 캐시합니다. 캐시할 수 없다고 표시된 응답(Cache-Control 응답 헤더의 private 또는 no-store 지시문)은 캐시되지 않습니다. 동적 콘텐츠를 캐시하려면 콘텐츠에 유효한 캐싱 헤더가 있어야 합니다.

  • USE_ORIGIN_HEADERS: 원본에서 콘텐츠를 캐시하도록 유효한 캐싱 헤더를 설정해야 합니다. 이 헤더가 없는 응답은 Google 에지에서 캐시되지 않으며 요청마다 원본으로 완전히 이동해야 하므로 성능이 영향을 받고 원본 서버의 부하가 증가합니다.

  • FORCE_CACHE_ALL: Cache-Control 응답 헤더의 private 또는 no-store 지시문을 무시하고 모든 콘텐츠(성공적인 응답)를 캐시합니다. 이로 인해 사용자별 비공개(사용자 식별 가능) 콘텐츠를 캐시할 수 있습니다. Cloud Storage 버킷과 같이 비공개 또는 동적 콘텐츠를 제공하지 않는 백엔드에서만 이 모드를 사용 설정해야 합니다. 비공개 또는 동적 콘텐츠를 제공하는 백엔드에서는 이를 사용 설정하지 마세요.

API

백엔드 버킷의 경우 Method: backendBuckets.insert 또는 Method: backendBuckets.update API 호출을 사용합니다.

백엔드 서비스의 경우 Method: backendServices.insert 또는 Method: backendServices.update API 호출을 사용합니다.

다음 API 호출 중 하나를 사용합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE

JSON 요청 본문에 다음 스니펫을 추가합니다.

"cdnPolicy": {
  "cacheMode": (CACHE_ALL_STATIC | USE_ORIGIN_HEADERS | FORCE_CACHE_ALL)

CACHE_MODE를 다음 중 하나로 바꿉니다.

  • CACHE_ALL_STATIC (기본값): 원본이 유효한 캐싱 헤더를 설정하지 않는 경우 정적 콘텐츠를 자동으로 캐시합니다. 캐시할 수 없다고 표시된 응답(Cache-Control 응답 헤더의 private 또는 no-store 지시문)은 캐시되지 않습니다. 동적 콘텐츠를 캐시하려면 콘텐츠에 유효한 캐싱 헤더가 있어야 합니다.

  • USE_ORIGIN_HEADERS: 원본에서 콘텐츠를 캐시하도록 유효한 캐싱 헤더를 설정해야 합니다. 이 헤더가 없는 응답은 Google 에지에서 캐시되지 않으며 요청마다 원본으로 완전히 이동해야 하므로 성능이 영향을 받고 원본 서버의 부하가 증가합니다.

  • FORCE_CACHE_ALL: Cache-Control 응답 헤더의 private 또는 no-store 지시문을 무시하고 모든 콘텐츠(성공적인 응답)를 캐시합니다. 이로 인해 사용자별 비공개(사용자 식별 가능) 콘텐츠를 캐시할 수 있습니다. Cloud Storage 버킷과 같이 비공개 또는 동적 콘텐츠를 제공하지 않는 백엔드에서만 이 모드를 사용 설정해야 합니다.