O Cloud CDN (rede de fornecimento de conteúdo) usa a rede de borda global do Google para exibir conteúdo mais relevante aos usuários, o que acelera seus sites e aplicativos.
O Cloud CDN trabalha com o balanceador de carga de aplicativo externo global ou o balanceador de carga de aplicativo clássico para enviar conteúdo aos usuários. O balanceador de carga de aplicativo externo fornece os endereços IP do front-end e as portas que recebem solicitações, assim como os back-ends que respondem às solicitações.
O conteúdo do Cloud CDN pode ser proveniente de vários tipos de back-ends.
No Cloud CDN, esses back-ends também são chamados de servidores de origem. A Figura 1 ilustra como as respostas dos servidores de origem executadas em instâncias de máquina virtual (VM) fluem por um balanceador de carga de aplicativo externo antes de serem enviadas pelo Cloud CDN. Nesse caso, o Google Front End (GFE) inclui o Cloud CDN e o balanceador de carga de aplicativo externo.
Como o Cloud CDN funciona
Quando um usuário solicita conteúdo de um balanceador de carga de aplicativo externo, a solicitação chega a um GFE que está na borda mais próxima da rede do Google.
Se o mapa de URLs do balanceador de carga direcionar o tráfego para um serviço ou bucket de back-end que tenha o Cloud CDN configurado, o GFE usará o Cloud CDN.
Ocorrências e ausências no cache
Um cache é um grupo de servidores que armazena e gerencia conteúdo para que as solicitações futuras desse conteúdo possam ser exibidas mais rapidamente. O conteúdo em cache é uma cópia do conteúdo armazenável que está armazenado em servidores de origem.
Se o GFE procurar no cache do Cloud CDN e encontrar uma resposta armazenada em cache para a solicitação do usuário, o GFE a enviará ao usuário. Isso é chamado de ocorrência em cache. Quando há uma ocorrência em cache, o GFE procura o conteúdo pela chave de cache e responde diretamente ao usuário, diminuindo o tempo de retorno e evitando que o servidor de origem processe a solicitação.
Um hit parcial ocorre quando uma solicitação é exibida parcialmente a partir do cache e parcial de um back-end. Isso pode acontecer se apenas parte do conteúdo solicitado estiver armazenado em um cache do Cloud CDN, conforme descrito em Suporte para solicitações de intervalo de bytes.
Na primeira vez que um conteúdo é solicitado, o GFE determina que ele não pode atender à solicitação do cache. Isso é chamado de ausência no cache. Quando ocorre uma falha no cache, o GFE encaminha a solicitação para o balanceador de carga de aplicativo externo. Em seguida, o balanceador de carga encaminha a solicitação para um dos servidores de origem. Quando o cache recebe o conteúdo, o GFE encaminha para o usuário.
Se a resposta do servidor de origem a essa solicitação for armazenável em cache, o Cloud CDN armazenará a resposta no próprio cache para solicitações futuras. A transferência de dados de um cache para um cliente é chamada de saída do cache. A transferência de dados para um cache é chamada de preenchimento do cache.
A Figura 2 mostra uma ocorrência em cache e uma ausência no cache:
- Servidores de origem em execução em instâncias de VM enviam respostas HTTP(S).
- O balanceador de carga de aplicativo externo distribui as respostas para o Cloud CDN.
- O Cloud CDN entrega as respostas aos usuários finais.
Para custos relacionados a ocorrências e ausências no cache, consulte Preços.
Proporção de ocorrência em cache
A proporção de ocorrência em cache é a porcentagem de vezes que um objeto solicitado é exibido a partir do cache. Se a proporção de ocorrência em cache for de 60%, isso significa que o objeto solicitado será exibido a partir do cache 60% do tempo e deve ser recuperado da origem 40% do tempo.
Para informações sobre como as chaves de cache podem afetar a proporção de ocorrência em cache, consulte Como usar chaves de cache. Para informações sobre solução de problemas, consulte A taxa de ocorrência em cache está baixa.
Ver a proporção de ocorrência em cache por um período curto
Para ver a proporção de ocorrência em cache de um curto período (os últimos minutos):
No console do Google Cloud, acesse a página do Cloud CDN.
Para cada origem, veja a coluna Proporção de ocorrência em cache.
n/a significa que o conteúdo com carga balanceada não está armazenado em cache ou não foi solicitado recentemente.
Ver a proporção de ocorrência em cache para um período mais longo
Para ver a proporção de ocorrência em cache por um período de 1 hora a 30 dias:
- No console do Google Cloud, acesse a página do Cloud CDN.
- Na coluna Nome da origem, clique no nome correspondente.
- Clique na guia Monitoramento.
- Opcional: selecione um back-end específico.
A taxa de hits da CDN é um dos gráficos de monitoramento disponíveis. Um gráfico que exibe n/a significa que o conteúdo não foi armazenado em cache ou não foi solicitado no período exibido.
É possível ajustar o período selecionando um período diferente. A imagem a seguir é um exemplo de períodos que podem ser selecionados:
Como inserir conteúdo no cache
O armazenamento em cache é reativo, isto é, o objeto será armazenado em um determinado cache se a solicitação passar por ele e se a resposta for armazenável. Um objeto armazenado em um cache não é replicado automaticamente em outros. O preenchimento de cache acontece apenas em resposta a uma solicitação iniciada pelo cliente. Não é possível pré-carregar os caches, exceto fazendo com que os caches individuais respondam às solicitações.
Quando o servidor de origem é compatível com solicitações de intervalos de bytes, o Cloud CDN pode iniciar várias solicitações de preenchimento de cache em resposta a uma única solicitação do cliente.
Como exibir conteúdo de um cache
Após ativar o Cloud CDN, o armazenamento em cache acontece automaticamente para todos os conteúdos armazenáveis. O servidor de origem usa cabeçalhos HTTP para indicar quais respostas são armazenadas em cache. Também é possível controlar a capacidade de armazenamento em cache usando os modos de cache.
Ao usar um bucket de back-end, o servidor de origem é o Cloud Storage. Ao usar instâncias de VM, o servidor de origem é o software servidor da Web executado nessas instâncias.
O Cloud CDN usa caches em vários locais pelo mundo. Devido à natureza dos caches, é impossível prever se uma determinada solicitação será exibida fora de um cache. No entanto, as solicitações comuns de conteúdo armazenável em cache serão exibidas a partir de um cache na maioria das vezes, gerando significativa redução de latência, custos e carga nos servidores de origem.
Para mais informações sobre o que o Cloud CDN armazena em cache e por quanto tempo, consulte a Visão geral do armazenamento em cache.
Para ver o que o Cloud CDN está exibindo a partir de um cache, visualize os registros.
Como remover conteúdo do cache
Para remover um item do cache, é possível invalidar o conteúdo em cache. Para mais informações, veja:
Ignorar cache
Para ignorar o Cloud CDN, é possível solicitar um objeto diretamente de um bucket do Cloud Storage ou de uma VM do Compute Engine. Por exemplo, um URL para um objeto de bucket do Cloud Storage é semelhante ao seguinte:
https://storage.googleapis.com/STORAGE_BUCKET/FILENAME
Remoção e expiração
Para o conteúdo ser disponibilizado a partir de um cache, ele precisa ter sido inserido no cache, não pode ter sido removido e não pode ter expirado.
Remoção e expiração são dois conceitos diferentes. Ambos afetam o que é exibido, mas não afetam diretamente um ao outro.
Remoção
Se você estiver testando o armazenamento em cache de conteúdo com um pequeno número de solicitações, perceberá que o conteúdo é removido.
Cada cache tem um limite de armazenamento. No entanto, o Cloud CDN adiciona conteúdo a caches mesmo depois de estarem cheios. Para inserir conteúdo em um cache completo, primeiro ele precisa remover outra coisa para liberar espaço. Isso é chamado de remoção. Em geral. os caches estão cheios, por isso estão sempre removendo conteúdo. Eles costumam remover conteúdo que não tenha sido acessado recentemente, seja qual for o prazo de validade. O conteúdo removido pode ter expirado ou não. Definir um prazo de validade não afeta a remoção.
Conteúdo incomum significa que um conteúdo não é acessado há algum tempo. Algum tempo e incomum são relativos à maioria dos outros itens no cache. Vários projetos do Google Cloud compartilham um pool de espaço de cache porque os projetos são exibidos a partir do mesmo conjunto de GFEs. A popularidade relativa do conteúdo é comparada em vários projetos, não apenas em um único projeto.
À medida que recebem mais tráfego, os caches também liberam mais conteúdo armazenado.
Como com todos os caches em grande escala, o conteúdo pode ser removido de maneira imprevisível, portanto, nenhuma solicitação particular é garantida para ser exibida a partir do cache.
Expiração
O conteúdo em caches HTTP(S) pode ter um prazo de validade configurável. O prazo de validade informa ao cache para não exibir conteúdo antigo, mesmo que ele não tenha sido removido.
Por exemplo, considere um URL de imagem da hora. Suas respostas precisam ser definidas para expirar em menos de uma hora. Caso contrário, o conteúdo exibido pode ser uma imagem antiga de um cache.
Para informações sobre como ajustar os prazos de validade, consulte Como usar configurações e modificações de TTL.
Solicitações iniciadas pelo Cloud CDN
Quando o servidor de origem tem suporte para solicitações de intervalo de bytes, o Cloud CDN pode enviar várias solicitações ao servidor de origem em reação a apenas uma solicitação do cliente. Conforme descrito em Suporte para solicitações de intervalo de bytes, o Cloud CDN pode iniciar dois tipos de solicitação: solicitações de validação e de intervalo de bytes.
Configurações de locais de dados de outros serviços do Cloud Platform
Ao usar o Cloud CDN, é possível armazenar os dados em locais de disponibilização fora da região ou da zona do servidor de origem. Esse procedimento é normal e é como o armazenamento em cache HTTP funciona na Internet. De acordo com os Termos Específicos do Serviço dos Termos de Serviço do Google Cloud Platform, a configuração de locais de dados disponível para determinados serviços do Cloud Platform não se aplica aos dados principais do cliente para o respectivo serviço quando usado com outros produtos e serviços do Google (neste caso, o serviço Cloud CDN). Se você não quiser esse resultado, não use o serviço Cloud CDN.
Suporte para certificados SSL gerenciados pelo Google
É possível usar certificados gerenciados pelo Google quando o Cloud CDN está ativado.
Google Cloud Armor com Cloud CDN
O Google Cloud Armor com Cloud CDN apresenta dois tipos de políticas de segurança:
- Políticas de segurança perimetral. Essas políticas podem ser aplicadas aos seus servidores de origem com o Cloud CDN ativado. Elas se aplicam a todo o tráfego antes da pesquisa da CDN.
- Políticas de segurança de back-end. Essas políticas são aplicadas somente para solicitações de conteúdo dinâmico, ausências no cache ou outras solicitações destinadas ao servidor de origem.
Para mais informações, consulte a documentação do Google Cloud Armor.
A seguir
- Para ativar o Cloud CDN para instâncias HTTP(S) com carga balanceada e buckets de armazenamento, consulte Como usar o Cloud CDN.
- Para usar o Cloud CDN com o Google Kubernetes Engine, consulte Configurar o Cloud CDN pelo Ingress.
- Para encontrar pontos de presença do GFE, consulte Locais de cache.