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 CDNs de terceiros.
Visão geral
Quando um objeto do Cloud Storage é armazenado em cache, as cópias do objeto são armazenadas em um cache do Google ou da Internet para que seu objeto possa ser veiculado com mais rapidez em solicitações futuras. Embora o armazenamento em cache possa melhorar o desempenho, você também corre o risco de veicular conteúdo desatualizado se fizer atualizações no objeto, mas um cache continuará veiculando a versão antiga do objeto.
Armazenamento em cache integrado para o Cloud Storage
O Cloud Storage se comporta como uma rede de fornecimento de conteúdo (CDN, na sigla em inglês) sem nenhum trabalho de sua parte, já que os objetos legíveis publicamente são armazenados em cache por padrão na rede do Cloud Storage.
Os metadados Cache-Control
de um objeto determinam por quanto tempo os caches do navegador e
da Internet podem armazenar seu objeto em cache. A rede do Cloud Storage armazena em cache apenas objetos legíveis publicamente, mas os proxies ou navegadores podem armazenar objetos em cache com base nos metadados Cache-Control
mesmo para objetos que não são publicamente legíveis. Além disso, se você revogar o acesso público a um objeto, ele ainda poderá ser disponibilizado a partir de um cache, dependendo de quando foi acessado pela última vez e da configuração de Cache-Control
. Por exemplo, se o objeto foi exibido
com um Cache-Control
de public, max-age=3600
, ele poderá permanecer no cache por uma hora.
Para definir os metadados Cache-Control
, 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 comopublic
commax-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.
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.
Ao escolher entre o armazenamento em cache integrado do Cloud Storage e o Cloud CDN, considere o seguinte:
Recurso | Cloud Storage | Cloud CDN |
---|---|---|
Tamanho máximo do arquivo armazenável em cache | 10 MiB | 5 TiB |
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 |
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
- Leia mais sobre os
Cache-Control
metadados. - Saiba mais sobre as diretivas
Cache-Control
RFC. - Leia a visão geral de armazenamento em cache do Cloud CDN.
- Saiba como criar um balanceador de carga HTTP(S) externo para exibir solicitações do bucket do Cloud Storage.
- Leia os detalhes de preços para balanceadores de carga de aplicativo externos e Cloud CDN.