fbpx

O que é o Amazon CloudFront ?

Compartilhar no facebook
Compartilhar no linkedin
Compartilhar no twitter
Compartilhar no whatsapp
Compartilhar no telegram

Amazon CloudFront

 

O Amazon CloudFront é um serviço global CDN (Content Delivery Network). Ele se integra a outros produtos da AWS para oferecer aos desenvolvedores e empresas uma maneira fácil de distribuir conteúdo para usuários finais com baixa latência, altas velocidades de transferência de dados e sem compromissos mínimos de uso.

Uma rede de entrega de conteúdo (CDN) é uma rede distribuída globalmente de servidores de cache que acelera o download de páginas da web e outros conteúdos.

As CDNs usam a localização geográfica do DNS (Sistema de Nomes de Domínio) para determinar a localização geográfica de cada solicitação de uma página da web ou outro conteúdo e, em seguida, veiculam esse conteúdo nos servidores de cache de borda mais próximos a esse local, em vez do servidor da web original.

Uma CDN permite aumentar a escalabilidade de um site ou aplicação móvel facilmente em resposta a picos de tráfego de pico. Na maioria dos casos, o uso de uma CDN é totalmente transparente para os usuários finais simplesmente experimentam um melhor desempenho do site, enquanto a carga no site original é reduzida.

O Amazon CloudFront é o CDN da AWS. Ele pode ser usado para entregar seu conteúdo da web usando a rede global de pontos de presença da Amazon. Quando um usuário solicita o conteúdo que você está exibindo com o Amazon CloudFront, ele é roteado para o local da borda que fornece a menor latência (atraso de tempo), para que o conteúdo seja entregue com o melhor desempenho possível.

Se o conteúdo já estiver no local de borda com a menor latência, o Amazon CloudFront o entregará imediatamente. Se o conteúdo não estiver atualmente naquele local de borda, o Amazon CloudFront o recuperará do servidor de origem, como um bucket do Amazon Simple Storage Service (Amazon S3) ou um servidor da Web, que armazena as versões definitivas originais dos seus arquivos.

O Amazon CloudFront é otimizado para trabalhar com outros serviços de nuvem da AWS como servidor de origem, incluindo buckets do Amazon S3, sites estáticos do Amazon S3, Amazon Elastic Compute Cloud (Amazon EC2) e Elastic Load Balancing.

O Amazon CloudFront também funciona perfeitamente com qualquer servidor de origem que não seja da AWS, como um servidor da Web local existente. O Amazon CloudFront também se integra ao Amazon Route 53.

O Amazon CloudFront suporta todo o conteúdo que pode ser exibido por HTTP ou HTTPS. Isso inclui todos os arquivos estáticos populares que fazem parte do seu aplicativo Web, como arquivos HTML, imagens, JavaScript e arquivos CSS, além de áudio, vídeo, arquivos de mídia ou downloads de software.

O Amazon CloudFront também oferece suporte à exibição de páginas da web dinâmicas, para que possa realmente ser usado para entregar todo o site. Por fim, o Amazon CloudFront oferece suporte ao streaming de mídia, usando HTTP e RTMP.

 

Noções Básicas do Amazon CloudFront

Há três conceitos principais que você precisa entender para começar a usar o CloudFront: distribuições, origens e controle de cache. Com esses conceitos, você pode facilmente usar o CloudFront para acelerar a entrega de conteúdo estático de seus sites.

 

Distribuições

Para usar o Amazon CloudFront, comece criando uma distribuição, identificada por um nome de domínio DNS, como d111111abcdef8.cloudfront.net.

Para veicular arquivos do Amazon CloudFront, basta usar o nome de domínio de distribuição no lugar do nome de domínio do seu site; o restante dos caminhos do arquivo permanece inalterado. Você pode usar o nome de domínio de distribuição do Amazon CloudFront como está ou criar um nome DNS fácil de usar em seu próprio domínio, criando um registro CNAME no Amazon Route 53 ou outro serviço DNS.

O CNAME é redirecionado automaticamente para o seu nome de domínio de distribuição do Amazon CloudFront.

 

Origens

Ao criar uma distribuição, você deve especificar o nome de domínio DNS da origem – o bucket do Amazon S3 ou o servidor HTTP – do qual deseja que o Amazon CloudFront obtenha a versão definitiva dos seus objetos (arquivos da web). Por exemplo:

  • Bucket do Amazon S3: meubucket.s3.amazonaws.com
  • Instância do Amazon EC2: ec2–203–0–113–25.compute 1.amazonaws.com
  • Balanceador de carga elástico: my-load-balancer-1234567890.us-west- 2.elb.amazonaws.com
  • URL do site: meuservidorweb.meudominio.com

 

Controle de Cache

Uma vez solicitados e veiculados a partir de um local de borda, os objetos permanecem no cache até expirarem ou serem despejados para liberar espaço para o conteúdo solicitado com mais frequência.

Por padrão, os objetos expiram no cache após 24 horas. Quando um objeto expira, a próxima solicitação resulta no Amazon CloudFront encaminhando a solicitação para a origem para verificar se o objeto está inalterado ou buscar uma nova versão se ela tiver sido alterada.

Opcionalmente, você pode controlar por quanto tempo os objetos ficam no cache do Amazon CloudFront antes de expirar. Para fazer isso, você pode optar por usar os cabeçalhos de controle de cache definidos pelo servidor de origem ou pode definir o tempo de vida (TTL) mínimo, máximo e padrão para objetos na distribuição do Amazon CloudFront.

Você também pode remover cópias de um objeto de todos os locais de borda do Amazon CloudFront a qualquer momento chamando a API (Application Program Interface) de invalidação.

Esse recurso remove o objeto de todos os locais de borda do Amazon CloudFront, independentemente do período de expiração definido para esse objeto no servidor de origem.

O recurso de invalidação foi projetado para ser usado em circunstâncias inesperadas, como corrigir um erro ou fazer uma atualização imprevista em um site, não como parte do seu fluxo de trabalho diário.

Em vez de invalidar objetos manual ou programaticamente, é uma prática recomendada usar um identificador de versão como parte do nome do caminho do objeto (arquivo). Por exemplo:

Arquivo antigo: assets / v1 / css / narrow.css

Novo arquivo: assets / v2 / css / narrow.css

Ao usar o controle de versão, os usuários sempre veem o conteúdo mais recente no Amazon CloudFront quando você atualiza o site sem usar a invalidação. As versões antigas expiram do cache automaticamente.

 

Recursos avançados do Amazon CloudFront

O CloudFront pode fazer muito mais do que simplesmente servir arquivos da Web estáticos.

Para começar a usar os recursos avançados do CloudFront, você precisará entender como usar comportamentos de cache e como restringir o acesso a conteúdo confidencial.

Conteúdo dinâmico, várias origens e comportamentos de servir cache em ativos estáticos, como descrito anteriormente, é uma maneira comum de usar uma CDN. Uma distribuição do Amazon CloudFront, no entanto, pode ser facilmente configurada para veicular conteúdo dinâmico, além de conteúdo estático e usar mais de um servidor de origem.

Você controla quais solicitações são atendidas por qual origem e como as solicitações são armazenadas em cache usando um recurso chamado comportamentos de cache.

Um comportamento de cache permite configurar uma variedade de funcionalidades do Amazon CloudFront para um determinado padrão de caminho da URL para arquivos em seu site.

A funcionalidade que você pode configurar para cada comportamento de cache inclui o seguinte:

  • O padrão do caminho
  • Qual origem encaminhar suas solicitações para
  • Se encaminhar as strings de consulta para sua origem
  • Se o acesso aos arquivos especificados requer URLs assinados
  • Exigir acesso HTTPS

A quantidade de tempo que esses arquivos permanecem no cache do Amazon CloudFront (independentemente do valor de qualquer cabeçalho de controle de cache que sua origem adiciona aos arquivos)

Os comportamentos de cache são aplicados em ordem; se uma solicitação não corresponder ao primeiro padrão de caminho, ela desce para o próximo padrão de caminho. Normalmente, o último padrão de caminho especificado é * para corresponder a todos os arquivos.

 

Site inteiro

Usando comportamentos de cache e várias origens, você pode usar facilmente o Amazon CloudFront para servir todo o site e oferecer suporte a comportamentos diferentes para diferentes dispositivos clientes.

 

Conteúdo Privado

Em muitos casos, convém restringir o acesso ao conteúdo no Amazon CloudFront apenas para solicitantes selecionados, como assinantes pagos ou aplicativos ou usuários na rede da sua empresa.

O Amazon CloudFront fornece vários mecanismos para permitir que você possa pservir conteúdo privado. Esses incluem:

 

URLs Assinados

Use URLs válidos apenas entre determinados horários e, opcionalmente, de determinados endereços IP.

 

Cookies Assinados

Requer autenticação através de pares de chaves públicas e privadas.

 

Identidades de acesso de origem (OAI)

Restrinja o acesso a um bucket do Amazon S3 apenas a um usuário especial do Amazon CloudFront associado à sua distribuição. Essa é a maneira mais fácil de garantir que o conteúdo de um bucket seja acessado apenas pelo Amazon CloudFront.

 

Casos de Uso

Existem vários casos de uso em que o Amazon CloudFront é uma excelente opção, incluindo, entre outros:

 

Atendendo os ativos estáticos de sites populares

Os ativos estáticos, como imagens, CSS e JavaScript, compõem tradicionalmente a maior parte das solicitações para sites típicos. O uso do Amazon CloudFront acelerará a experiência do usuário e reduzirá a carga no próprio site.

 

Como veicular um site inteiro ou aplicativo da Web

O Amazon CloudFront pode veicular um site inteiro contendo conteúdo dinâmico e estático usando várias origens, comportamentos de cache e TTLs curtos para conteúdo dinâmico.

 

Exibição de conteúdo a usuários geograficamente amplamente distribuídos

O Amazon CloudFront aprimora o desempenho do site, especialmente para usuários distantes, e reduz a carga no servidor de origem.

 

Distribuição de software ou outros arquivos grandes

O Amazon CloudFront ajudará a acelerar o download desses arquivos para os usuários finais.

 

Exibição de mídia de streaming

O Amazon CloudFront ajuda a exibir mídia de streaming, como áudio e vídeo.

 

Também há casos de uso em que o CloudFront não é apropriado, incluindo:

 

Todas ou a maioria das solicitações vêm de um único local

Se todas ou a maioria de suas solicitações vierem de um único local geográfico, como um grande campus corporativo, você não aproveitará os vários locais de borda.

Todas ou a maioria das solicitações são feitas por meio de uma VPN corporativa

Da mesma forma, se os usuários se conectarem por meio de uma VPN (Rede virtual privada) corporativa, mesmo que sejam distribuídos, as solicitações de usuários aparecerão no CloudFront como originárias de um ou alguns locais.

 

Esses casos de uso geralmente não são beneficiados pelo uso do Amazon CloudFront.