A colocar em cache

Esta página aborda as opções que tem para controlar a forma como os seus objetos do Cloud Storage são colocados em cache. Esta página centra-se na cache incorporada do Cloud Storage e no Cloud CDN, mas o Cloud Storage também é compatível com CDNs de terceiros.

Vista geral

Quando um objeto do Cloud Storage é colocado em cache, as cópias dos dados do objeto são armazenadas numa cache da Google ou da Internet para que o objeto possa ser disponibilizado mais rapidamente em pedidos futuros. Embora o armazenamento em cache possa melhorar o desempenho, também corre o risco de publicar conteúdo desatualizado se fizer atualizações ao seu objeto, mas uma cache continuar a publicar a versão anterior do objeto.

Colocação em cache integrada para o Cloud Storage

O Cloud Storage pode comportar-se como uma rede de fornecimento de conteúdo (RFC) sem qualquer ação da sua parte, porque os dados de um objeto são colocados em cache na rede do Cloud Storage se os respetivos Cache-Controlmetadados estiverem definidos para permitir a colocação em cache e os seguintes critérios forem cumpridos:

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

  • public: o objeto pode ser armazenado em cache.

  • private: o objeto não é colocado em cache pelo Cloud Storage, mas pode ser colocado em cache na cache local de um requerente.

  • no-cache: o objeto pode ser colocado em cache, mas não pode ser usado para satisfazer pedidos futuros, a menos que seja primeiro validado pelo Cloud Storage.

  • no-store: não é possível colocar o objeto em cache.

  • max-age=TIME_IN_SECONDS: o período durante o qual um objeto pode ser armazenado em cache antes de ser considerado obsoleto. Pode definir o max-age para qualquer período. Os objetos desatualizados não são publicados a partir de caches, exceto em circunstâncias especiais.

Para definir os metadados Cache-Control de um objeto, consulte o artigo Editar metadados de objetos.

Comportamento de colocação em cache incorporado com políticas de negação do IAM

Quando existe uma política de negação de IAM ao nível da organização que restringe o acesso de leitura para um objeto do identificador principal allUsers, o armazenamento em cache incorporado é desativado para o objeto, mesmo que exista uma política de IAM ao nível do contentor que conceda acesso de leitura para o objeto a allUsers. No entanto, se a política de negação do IAM restringir apenas utilizadores individuais, a colocação em cache incorporada permanece ativada para o objeto.

Considerações sobre o desempenho

O desempenho pode ser muito melhor para objetos armazenáveis em cache publicamente. Se tiver um objeto a ser usado para controlar muitos clientes e, por isso, quiser desativar o armazenamento em cache para fornecer os dados mais recentes:

  • Em alternativa, considere definir os metadados Cache-Control do objeto como public com max-age de 15 a 60 segundos. A maioria das aplicações pode tolerar que um objeto esteja desatualizado durante alguns segundos em troca de melhorias no desempenho.

  • Use Cache-Control: no-store para um objeto para indicar que o objeto não deve ser colocado em cache para pedidos subsequentes em nenhuma cache.

Use a cache em qualquer lugar com os seus contentores

A cache em qualquer lugar é uma funcionalidade do Cloud Storage totalmente gerida e sempre consistente que lhe permite criar caches na mesma zona que as suas cargas de trabalho. Em seguida, as caches podem ser usadas para concluir pedidos de leitura de dados em vez do seu contentor multirregião, o que ajuda a controlar os custos de armazenamento enquanto executa cargas de trabalho grandes e com grande volume de dados que, de outra forma, incorreriam em taxas de transferência de dados multirregião e afetariam o desempenho. Para saber mais sobre a cache em qualquer lugar, as respetivas vantagens e quando deve usar esta funcionalidade, consulte a vista geral da cache em qualquer lugar.

Cloud Storage com Cloud CDN

Para o melhor desempenho ao fornecer conteúdo aos utilizadores, recomendamos a utilização do Cloud Storage com a CDN da Google Cloud.

Para usar o Cloud CDN, tem de usar um Application Load Balancer externo com os seus contentores do Cloud Storage como um back-end. Para ver um tutorial sobre como configurar um balanceador de carga HTTP(S) com um contentor do Cloud Storage, consulte o artigo Alojamento de um Website estático.

Os modos de cache da RFC na nuvem permitem-lhe aplicar uma configuração de colocação em cache unificada a todos os seus objetos. O Cloud CDN usa os metadados definidos nos seus objetos para determinar como devem ser colocados em cache, a menos que substitua os metadados através de um modo de cache ou de um limite de TTL.Cache-ControlCache-Control

Quando escolher entre a colocação em cache incorporada do Cloud Storage e a Cloud CDN, considere o seguinte:

Funcionalidade Cloud Storage Cloud CDN
Tamanho máximo do ficheiro em cache 10 MiB 100 GiB 1
Validade da cache predefinida 1 hora 1 hora (configurável)
Suporte para domínios personalizados através de HTTPS Não Sim
Invalidação de cache Não Sim

1O tamanho máximo de ficheiro memorizável em cache para o Cloud CDN é de 100 GiB se o servidor de origem suportar pedidos de intervalo de bytes. Se o servidor de origem não suportar pedidos de intervalo de bytes, o tamanho máximo do ficheiro colocável em cache para a RFC da Google Cloud é de 10 MiB.

Considerações sobre os preços

Em termos de preços, a escolha entre o armazenamento em cache incorporado do Cloud Storage e a CDN do Google Cloud depende da quantidade de dados que publica todos os meses, o que determina o valor dos custos de rede em que incorre.

  • Se publicar menos de alguns GiB de dados memorizáveis em cache por mês, pode ser mais barato no geral confiar na memorização em cache incorporada do Cloud Storage. O armazenamento em cache do Cloud Storage pode incorrer em custos de rede mais elevados do que o Cloud CDN, uma vez que os objetos em cache e sem cache são cobrados ao mesmo custo de transferência de dados de saída (o que significa que paga o preço total pelos resultados da cache). No entanto, só paga os custos de utilização do armazenamento de dados e das operações associados ao Cloud Storage, em vez da combinação do Cloud Storage, Cloud CDN e Cloud Load Balancing.

  • Se publicar regularmente 100 GiB ou mais de dados memorizáveis em cache por mês, ou precisar de usar o registo por pedido e cabeçalhos personalizados, pode ser mais barato no geral usar o Cloud CDN. Incorre em custos de transferência de dados de saída do Cloud Storage e de preenchimento da cache do Cloud CDN para o preenchimento da cache, e os preços de rede do Cloud CDN aplicam-se após o preenchimento da cache. A poupança de custos de rede que obtém com a utilização do Cloud CDN pode compensar os custos operacionais mais elevados associados à manutenção do Application Load Balancer externo e do Cloud CDN, juntamente com o Cloud Storage.

O que se segue?