캐싱

이 페이지에서는 Cloud Storage 객체를 캐시하는 방법을 제어하는 옵션에 대해 설명합니다. 이 페이지에서는 Cloud Storage 기본 제공 캐시 및 Cloud CDN을 중점적으로 설명하지만 Cloud Storage는 서드 파티 CDN과도 호환됩니다.

개요

Cloud Storage 객체가 캐시되면 객체 데이터의 사본이 Google 또는 인터넷 캐시에 저장되므로 이후 요청에서 객체를 더 빠르게 제공할 수 있습니다. 캐싱을 사용하면 성능이 향상될 수 있지만 객체를 업데이트하더라도 캐시가 이전 버전의 객체를 계속 제공하면 오래된 콘텐츠를 서빙할 위험이 있습니다.

Cloud Storage의 기본 제공 캐싱

Cloud Storage는 개발자가 별도로 작업하지 않아도 콘텐츠 전송 네트워크(CDN)처럼 작동할 수 있습니다. 객체의 데이터가 Cache-Control 메타데이터가 캐싱을 허용하도록 설정되어 있고 다음 기준이 충족되는 경우 Cloud Storage 네트워크에 캐싱되기 때문입니다.

Cloud Storage는 다음과 같이 Cache-Control표준 값을 준수합니다.

  • public: 객체가 캐시될 수 있습니다.

  • private: 객체가 Cloud Storage에 의해 캐시되지는 않지만 요청자의 로컬 캐시에 캐시될 수 있습니다.

  • no-cache: 객체가 캐시될 수 있지만 Cloud Storage에 의해 검증되기 전에는 이후 요청을 충족하는 데 사용될 수 없습니다.

  • no-store: 객체가 캐시될 수 없습니다.

  • max-age=TIME_IN_SECONDS: 객체가 비활성으로 간주되기 전에 캐시될 수 있는 기간입니다. max-age를 원하는 길이의 시간으로 설정할 수 있습니다. 특수한 상황을 제외하고 비활성 객체는 캐시에서 제공되지 않습니다.

객체의 Cache-Control 메타데이터를 설정하려면 객체 메타데이터 수정을 참고하세요.

IAM 거부 정책에서 기본 제공되는 캐싱 동작

주 구성원 식별자 allUsers에서 객체에 대한 읽기 액세스를 제한하는 조직 수준 IAM 거부 정책이 있는 경우 객체에 대한 읽기 액세스 권한을 allUsers에 부여하는 버킷 수준 IAM 정책이 있더라도 객체에 대한 기본 제공 캐싱이 비활성화됩니다. 하지만 IAM 거부 정책이 개별 사용자만 제한하는 경우 객체에 기본 제공 캐싱이 사용 설정된 상태로 유지됩니다.

성능에 대한 고려사항

성능은 공개적으로 캐시 가능한 객체에서 훨씬 우수할 수 있습니다. 객체 하나로 여러 클라이언트를 제어하고 있어 최신 데이터를 제공하기 위해 캐싱을 사용 중지하려는 경우에는 다음을 확인하세요.

  • 객체의 Cache-Control 메타데이터를 max-age가 15~60초인 public으로 설정해 봅니다. 대부분의 애플리케이션은 성능 향상을 위해 객체가 몇 초 동안 최신 상태가 아닐 수 있습니다.

  • 객체에 Cache-Control: no-store를 사용해 모든 캐시의 후속 요청 시 객체를 캐시하지 않는다고 나타냅니다.

Cloud CDN을 사용하는 Cloud Storage

사용자에게 콘텐츠를 제공할 때 최상의 성능을 얻으려면 Cloud CDN과 함께 Cloud Storage를 사용하는 것이 좋습니다.

Cloud CDN을 사용하려면 Cloud Storage 버킷과 함께 외부 애플리케이션 부하 분산기를 백엔드로 사용해야 합니다. Cloud Storage 버킷으로 HTTP(S) 부하 분산기를 설정하는 방법에 대한 튜토리얼은 정적 웹사이트 호스팅을 참조하세요.

Cloud CDN 캐시 모드를 사용하면 모든 객체에 통합 캐싱 구성을 적용할 수 있습니다. Cloud CDN은 캐시 모드 또는 TTL 한도를 사용하여 Cache-Control 메타데이터를 재정의하지 않는 한 객체에 설정된 Cache-Control 메타데이터를 사용하여 캐시되는 방식을 결정합니다.

Cloud Storage 기본 제공 캐싱과 Cloud CDN 중에서 선택할 때 다음을 고려하세요.

기능 Cloud Storage Cloud CDN
캐시 가능한 최대 파일 크기 10MiB 5TiB
기본 캐시 만료 1시간 1시간(구성 가능)
HTTPS를 통한 커스텀 도메인 지원 아니요
캐시 무효화 아니요

가격 책정 고려사항

가격 측면에서 Cloud Storage 기본 제공 캐싱과 Cloud CDN 중에서 무엇을 선택할지는 매달 제공되는 데이터 양에 따라 달라지며 이에 따라 발생하는 네트워킹 비용이 결정됩니다.

  • 캐시할 수 있는 데이터가 한 달에 몇 GiB 미만인 경우 Cloud Storage 기본 제공 캐싱을 사용하는 것이 전반적으로 더 저렴할 수 있습니다. Cloud Storage 캐싱에서는 캐시된 객체와 캐시되지 않은 객체에 같은 아웃바운드 데이터 전송 비용이 청구되므로 Cloud CDN보다 네트워킹 비용이 더 많이 발생할 수 있습니다. 즉, 캐시 적중에 대한 전체 가격을 지불합니다. 하지만 Cloud Storage, Cloud CDN, Cloud Load Balancing의 조합 대신 Cloud Storage와 관련된 데이터 스토리지 및 작업 사용량 비용만 지불하면 됩니다.

  • 캐시 가능한 데이터를 한 달에 100GiB 이상 정기적으로 제공하거나 요청별 로깅 및 커스텀 헤더를 사용해야 하는 경우 Cloud CDN을 사용하는 것이 전반적으로 더 저렴할 수 있습니다. 캐시 채우기에 Cloud Storage 아웃바운드 데이터 전송 및 Cloud CDN 캐시 채우기 비용이 발생하며, 캐시가 가득 차면 Cloud CDN 네트워킹 가격이 적용됩니다. Cloud CDN을 사용하면 네트워킹 비용을 절약할 수 있으므로 Cloud Storage와 함께 외부 애플리케이션 부하 분산기 및 Cloud CDN 유지보수와 관련된 운영 비용을 더 많이 절감할 수 있습니다.

다음 단계