이 페이지에서는 Cloud CDN으로 캐시 모드를 변경하는 방법을 설명합니다. 캐시 모드를 사용하면 Cloud CDN에서 콘텐츠를 캐시하는 방법을 구성할 수 있습니다.
시작하기 전에
- 캐시 모드 및 정적 콘텐츠를 읽어보세요. 
- Cloud CDN이 사용 설정되어 있는지 확인합니다. 자세한 내용은 Cloud CDN 사용을 참조하세요. 
- 필요한 경우 Google Cloud CLI를 최신 버전으로 업데이트합니다. - gcloud components update 
캐시 모드 설정
Cloud CDN이 사용 설정된 백엔드에서 캐시 모드를 구성하려면 다음 단계를 따르세요.
콘솔
- Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.
- 외부 애플리케이션 부하 분산기 이름을 클릭합니다.
- 수정 을 클릭합니다.
- 백엔드 구성에서 백엔드를 선택하고 수정 을 클릭합니다.
- Cloud CDN 사용 설정이 선택되어 있는지 확인합니다.
- 캐시 모드에서 다음 옵션 중 하나를 선택합니다.
- 정적 콘텐츠 캐시(권장): 정적 콘텐츠는 사용자에 따라 변경되지 않는 웹 애셋입니다. 정적 콘텐츠는 응답의 Content-Type을 기반으로 합니다. 자세한 내용은 정적 콘텐츠를 참조하세요.
- Cache-Control 헤더를 기준으로 원본 설정 사용: 응답 헤더에 유효한 캐시 지시문이 있는 응답을 캐시합니다.
- 모든 콘텐츠 강제 캐시: private또는no-store지시문을 무시하고 원본이 제공한 모든 성공적인 콘텐츠를 캐시합니다.
 
- 정적 콘텐츠 캐시(권장): 정적 콘텐츠는 사용자에 따라 변경되지 않는 웹 애셋입니다. 정적 콘텐츠는 응답의 
- 저장을 클릭합니다.
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 버킷과 같이 비공개 또는 동적 콘텐츠를 제공하지 않는 백엔드에서만 이 모드를 사용 설정해야 합니다.