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, os dados do objeto são armazenados 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 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 objeto é acessível publicamente.
- O objeto não está armazenado em um bucket com o recurso Pagamentos do requerente ativado e não está em um perímetro de serviço de nuvem privada virtual.
- O objeto não é criptografado usando chaves de criptografia gerenciadas pelo cliente ou chaves de criptografia fornecidas pelo cliente.
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 definirmax-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 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 | 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 armazenado em cache do 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 tiver suporte a solicitações de intervalo de bytes, o tamanho máximo do arquivo 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
- 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.