Visão geral

Além dos benefícios de performance, segurança e disponibilidade da sua aplicação Web, o CloudFront pode ser usado para reduzir os custos dessa aplicação. Primeiro, o modelo de preços do CloudFront pode reduzir seus custos de origem. Segundo, você pode configurar seu CloudFront e arquitetar sua aplicação para reduzir seus custos. Para obter orientações mais gerais sobre a otimização de custos usando os serviços da AWS, considere o Pilar Otimização de custos da AWS Well-Architected Framework. Para monitorar e entender seus custos, use o Explorador de Custos da AWS e o AWS Budgets.

Preços do CloudFront

O modelo de preços do CloudFront inclui várias dimensões, sendo as duas mais dominantes:

  • A Transferência de dados de saída (DTO) regional para a Internet, que representa a quantidade de GBs servidos pelo CloudFront aos usuários na Internet. Observe que esse preço depende da região dos usuários. Ele é medido usando gigabytes binários (ou seja, 1 GB = 1024 MB) e inclui apenas a carga HTTP (por exemplo, excluindo a transferência de dados de handshake de TLS).
  • As taxas de solicitação, que representam o número de solicitações HTTP(S) atendidas pelo CloudFront. Também depende da região dos usuários.

Por padrão, o CloudFront usa toda a sua rede para veicular conteúdo com a melhor performance possível. Considere configurar as opções de Classe de preço no CloudFront se estiver disposto a fazer uma compensação com os custos de entrega.

O CloudFront tem um nível gratuito sempre ativo, que inclui 1 TB de DTO por mês e 10 milhões de solicitações HTTP(S). Se você estiver usando o AWS WAF em combinação com o CloudFront, considere um compromisso inicial com o Pacote Promocional de Segurança do CloudFront para economizar até 30% nas cobranças do CloudFront. Para volumes maiores (mais de 10 TB), entre em contato para obter mais reduções em troca de um maior compromisso financeiro, assinando um contrato de preços privado. Observe que o desconto que você pode obter é maior quando seu tráfego geral tem um tamanho médio maior de objetos HTTP entregues. Como consequência, é recomendável usar o CloudFront para várias workloads (entrega de API e entrega de arquivos estáticos) para aumentar o desconto geral que você pode obter em um contrato de preços privado.

É importante observar que, quando usado com uma origem baseada na AWS, a DTO do CloudFront substitui a DTO da origem. Dessa forma, você não paga a Transferência de dados de saída (DTO) da origem.

Por fim, analise e otimize seu uso dos atributos opcionais do CloudFront, que podem gerar custos extras, como invalidação de conteúdo.

Otimização do custo de invalidações no CloudFront

De acordo com os preços do CloudFront, você pode usar 1.000 caminhos para invalidação por mês sem custo adicional. Além desse limite, o preço é de USD 0,005 por caminho solicitado para invalidação. Observação: um caminho listado na sua solicitação de invalidação representa o URL (ou vários URLs, se o caminho contém um caractere curinga) dos objetos que você deseja invalidar no cache do CloudFront.

Considere as dicas a seguir para otimizar o custo das invalidações usando o CloudFront:

  • Conte com os mecanismos de controle de cache HTTP (por exemplo, cabeçalho Cache-Control, versionamento de URL, solicitações condicionais) por padrão e prefira invalidações baseadas em CDN para cenários de emergência. Para obter mais detalhes, leia este blog.
  • Use um curinga nas suas invalidações quando aplicável para invalidar vários arquivos com uma única solicitação de invalidação. Por exemplo, use /stories/sports/worldcup * para invalidar todos os artigos relacionados ao evento da Copa do Mundo, em vez de invalidá-los um por um.

Você pode monitorar seu uso de invalidações e definir alarmes usando o AWS Budgets.

Usar o CloudFront para reduzir os custos das suas aplicações Web

O CloudFront reduz de forma nativa os custos da sua aplicação Web, descarregando sua origem. Primeiro, o CloudFront atende a solicitações armazenáveis em cache a partir de seu próprio cache, o que reduz os custos de ajuste de escala da sua origem. Você pode otimizar sua configuração do CloudFront para descarregar ainda mais a origem aumentando a taxa de acertos de cache (por exemplo, habilitando o Origin Shield). Segundo, o CloudFront reutiliza conexões TCP/TLS com sua origem para solicitações dinâmicas (por exemplo, chamadas de API), o que reduz o número de novas conexões que precisam ser tratadas pela origem e a quantidade de certificados TLS que saem da origem. Isso reduz os custos de origens, como ALBs, porque o consumo de LCU diminui graças ao número reduzido de conexões recém-estabelecidas por segundo e ao número de bytes processados.

Você pode configurar o CloudFront para reduzir ainda mais seus custos de diferentes maneiras. Por exemplo, compacte arquivos de texto usando o GZIP ou o Brotli para reduzir a DTO. Outro exemplo, quando sua aplicação precisa de funções de borda, prefira usar o CloudFront Functions quando aplicável, pois é mais barato que o Lambda@Edge. Leia sobre as melhores práticas para otimizar suas funções de borda e reduzir os custos.

Por fim, prefira usar o cabeçalho Cache-Control padrão para controlar a atualização do cache em vez de usar invalidações como parte de suas operações normais. O mecanismo de controle de cache é mais confiável, pode controlar o armazenamento em cache no navegador e não tem custos (comparado às invalidações do CloudFront, além das cotas de 1.000 invalidações por mês). Use invalidações para cenários de emergência.

Otimização do AWS WAF

O componente dominante no custo do AWS WAF geralmente são as tarifas de solicitação. É possível reduzir esse custo de diferentes maneiras:

  • Habilite o AWS WAF exclusivamente na distribuição do CloudFront que exige proteção de acordo com sua modelagem de ameaças. Por exemplo, se seu conteúdo estático hospedado no S3 não exigir proteção WAF, mova-o para um domínio separado (por exemplo, static.example.com) em uma distribuição separada do CloudFront e habilite somente o AWS WAF na distribuição principal (por exemplo, www.example.com) que está servindo seus arquivos HTML.
  • Quando você assina o Shield Avançado, as tarifas de solicitações do AWS WAF são incluídas nos preços do Shield Avançado. O Shield Avançado cobra uma assinatura mensal e uma taxa premium sobre a Transferência de dados de saída da sua aplicação. Se a sua aplicação exige muitas solicitações (alta solicitação por segundo com baixa carga média, por exemplo, com APIs), a ativação do Shield Avançado pode ajudar você a reduzir os custos gerais com o WAF.
  • Finalmente, algumas regras do AWS WAF têm custos adicionais, como CATPCHA, Controle de Bots da AWS ou regras gerenciadas por fornecedores no AWS Marketplace. Otimize esses custos definindo essas regras de acordo com condições específicas (por exemplo, somente IPs suspeitos do CAPTCHA ou aplicando apenas o Controle de Bots em solicitações HTML) e usando no final da WebACL, dando a chance de regras gratuitas anteriores bloquearem solicitações mal-intencionadas sem custo adicional. Leia este blog para obter uma explicação mais detalhada das otimizações de custos de regras do WAF.

Otimização do nível da aplicação

Há técnicas no nível da aplicação que você pode implementar para reduzir os custos de entrega do CloudFront. Considere as seguintes técnicas:

  • Aproveite o armazenamento em cache do navegador para reduzir a quantidade de solicitações entregues pelo CloudFront
  • Implemente ETags nos seus objetos para habilitar solicitações condicionais. Atualizações de objetos com respostas 304 Não modificado são mais baratas de entregar em comparação com buscas completas.
  • Implemente a otimização de imagens para compactar imagens usando formatos modernos, como WebP e Avif. Além disso, carregue lentamente imagens no seu site para evitar o download de imagens que não são renderizadas por navegadores.
  • Implemente o streaming de taxa de bits adaptável para entrega de vídeo. Considere a codificação de vídeo QVBR. Considere fornecer uma escada de reprodução otimizada de acordo com os tipos de dispositivos. Este blog explica o conceito, mas ele foi escrito usando o Lambda@Edge antes do lançamento do CloudFront Functions.
  • Use uma política de mesma origem, se possível, para chamadas de API, o que elimina o custo das solicitações anteriores de CORS OPTION. Leia este blog para obter mais detalhes.
  • Considere todas as opções de registro em log e selecione a mais econômica para você. Logs de acesso padrão do CloudFront são fornecidos sem custos adicionais, mas são aplicáveis a todo o seu tráfego. Pelo contrário, os logs em tempo real do CloudFront são configurados granularmente pelo Comportamento de cache do CloudFront e pelo campo obrigatório para uma cobrança incremental. O WAF oferece várias opções de registro em log, sendo a mais econômica a baseada no Kinesis Firehose. Observe que você pode filtrar solicitações registradas com base em dimensões como ação da regra ou rótulo emitido.

Recursos

Esta página foi útil para você?