Armazenamento em cache com o cache integrado do Cloud Storage

Nesta página, você conhecerá as opções disponíveis para controlar como os objetos do Cloud Storage são armazenados em cache. Nesta página, o foco está no cache integrado do Cloud Storage e no Cloud CDN, mas ele também é compatível com redes de entrega de conteúdo (CDNs) de terceiros.

Visão geral

Controle o armazenamento em cache dos objetos do Cloud Storage para melhorar o desempenho do aplicativo e ajudar a manter o conteúdo atualizado. O armazenamento em cache de dados de objetos armazena cópias dos dados em caches do Google ou da Internet, o que acelera futuras solicitações de leitura de dados. O Cloud Storage oferece armazenamento em cache integrado que funciona como uma CDN. Você gerencia esse armazenamento em cache integrado usando os metadados Cache-Control, que definem como e por quanto tempo os caches armazenam seus objetos.

Para um controle mais avançado, use o armazenamento em cache do Cloud Storage com o Cloud CDN ou conheça o Anywhere Cache.

Armazenamento em cache com o Anywhere Cache

O Anywhere Cache oferece um cache de leitura zonal totalmente gerenciado e sempre consistente com suporte de SSD que pode ser criado nas mesmas zonas que suas cargas de trabalho de computação. Os caches são usados para acelerar a veiculação de dados para cargas de trabalho grandes e com uso intensivo de dados. Os dados lidos de um cache são cobrados com taxas de transferência de dados reduzidas em comparação com os dados lidos diretamente de buckets multirregionais, permitindo otimizar os custos.

Para mais informações, consulte Anywhere Cache.

Armazenamento em cache integrado para o Cloud Storage

O Cloud Storage pode se comportar como uma rede de fornecimento de conteúdo (CDN) sem nenhum trabalho da sua parte, porque os dados de um objeto são armazenados em cache na rede do Cloud Storage se os metadados Cache-Control estiverem definidos para permitir o armazenamento em cache e os seguintes critérios forem atendidos:

O Cloud Storage respeita valores padrão para Cache-Control, como estes:

  • public: o objeto pode ser armazenado em cache.

  • private: o objeto não será armazenado em cache pelo Cloud Storage, mas poderá ser armazenado no cache local de um requerente.

  • no-cache: o objeto pode ser armazenado em cache, mas não pode ser usado para atender a solicitações futuras, a menos que seja validado primeiro pelo Cloud Storage.

  • no-store: o objeto não pode ser armazenado em cache.

  • max-age=TIME_IN_SECONDS: o período em que um objeto pode ser armazenado em cache antes de ser considerado desatualizado. É possível definir max-age como qualquer período. Objetos desatualizados não são exibidos a partir de caches, exceto em circunstâncias especiais.

Para definir os metadados Cache-Control de um objeto, consulte Como editar metadados de objeto.

Comportamento de armazenamento em cache integrado com políticas de negação do IAM

Quando há uma política de negação do IAM no nível da organização que restringe o acesso de leitura para um objeto do identificador do principal allUsers, o armazenamento em cache integrado será desativado para o objeto, mesmo que haja uma política do IAM no nível do bucket concedendo acesso de leitura ao objeto para allUsers. No entanto, se a política de negação de IAM restringir apenas usuários individuais, o armazenamento em cache integrado permanecerá ativado para o objeto.

Considerações sobre desempenho

O desempenho pode ser muito melhor para objetos armazenáveis em cache público. Se você tiver um objeto que está sendo usado para controlar muitos clientes e quiser desativar o armazenamento em cache para fornecer os dados mais recentes, siga estas instruções:

  • Considere a possibilidade de definir os metadados Cache-Control do objeto como public com max-age de 15 a 60 segundos. A maioria dos aplicativos tolera um objeto por alguns segundos em troca de melhorias no desempenho.

  • Use Cache-Control: no-store em um objeto para indicar que ele não pode ser armazenado em cache nas solicitações subsequentes em qualquer cache.

Cloud Storage com Cloud CDN

Para ter o melhor desempenho ao entregar conteúdo aos usuários, recomendamos o uso do Cloud Storage com o Cloud CDN. Em comparação com os recursos de armazenamento em cache que você tem apenas com o Cloud Storage, o Cloud CDN oferece desempenho aprimorado, tamanhos de arquivos armazenáveis em cache maiores e recursos como invalidação de cache.

Para usar o Cloud CDN, é preciso usar o balanceamento de carga do aplicativo externo com os buckets do Cloud Storage como back-end. Para um tutorial sobre como configurar um balanceador de carga HTTP(S) com um bucket do Cloud Storage, consulte Como hospedar um site estático.

Os modos de cache do Cloud CDN permitem aplicar uma configuração de armazenamento em cache unificada a todos os seus objetos. O Cloud CDN usa o conjunto de metadados Cache-Control nos seus objetos para determinar como eles serão armazenados em cache, a menos que você substitua os metadados Cache-Control usando um modo de cache ou Limite de TTL.

Considere as diferenças nas funcionalidades e implicações de preços ao escolher entre o armazenamento em cache integrado do Cloud Storage e o Cloud CDN:

Diferenças nas funcionalidades

Recurso Cloud Storage Cloud CDN
Tamanho máximo do arquivo armazenável em cache 10 MiB 100 GiB 1
Expiração padrão do cache 1 hora 1 hora (configurável)
Suporte para domínios personalizados por HTTPS Não Sim
Invalidação de cache Não Sim

1O tamanho máximo de arquivo armazenável em cache para o Cloud CDN é de 100 GiB se o servidor de origem for compatível com solicitações de intervalo de bytes. Se o servidor de origem não for compatível com solicitações de intervalo de bytes, o tamanho máximo de arquivo armazenável em cache para o Cloud CDN será de 10 MiB.

Considerações de preço

Em termos de preços, a escolha entre o armazenamento em cache integrado do Cloud Storage e o Cloud CDN depende da quantidade de dados que você exibe mensalmente, o que determina a quantidade de custos de rede incorridos.

  • Se você disponibiliza menos de alguns GiB de dados armazenáveis em cache por mês, pode ser mais barato depender do armazenamento em cache interno do Cloud Storage. O armazenamento em cache do Cloud Storage pode gerar custos de rede maiores do que o Cloud CDN, porque os objetos armazenados em cache e não armazenados em cache são cobrados com o mesmo custo da transferência de dados de saída. Isso significa que você paga o preço total pelas ocorrências em cache. No entanto, você paga apenas pelos custos de uso das operações e do armazenamento de dados associados ao Cloud Storage, em vez da combinação do Cloud Storage, do Cloud CDN e do Cloud Load Balancing.

  • Se você disponibiliza regularmente 100 GiB ou mais de dados armazenáveis em cache por mês ou precisa usar a geração de registros por solicitação e cabeçalhos personalizados, usar o Cloud CDN pode ser a opção mais econômica. Haverá cobranças da transferência de dados de saída do Cloud Storage e do preenchimento de cache do Cloud CDN. Os preços de rede do Cloud CDN serão aplicados quando o cache estiver cheio. A economia de custos de rede obtida com o Cloud CDN pode compensar os maiores custos operacionais associados à manutenção do balanceamento de carga de aplicativo externo e do Cloud CDN com o Cloud Storage.

A seguir