Eficiência de custos de CDN: uma comparação para desenvolvedores
Comece uma comparação de custos de CDN pelos bytes e requisições mensais e, depois, verifique quais planos podem servir o seu conteúdo. Para a carga de trabalho de site abaixo, o subtotal de entrega do CloudFront com preço por uso é de $71,28, enquanto o plano Pro de tarifa fixa custa $15. Essa diferença torna a comparação de ofertas específicas tão importante quanto a comparação de provedores.
Defina uma carga de trabalho mensal
Este é um exemplo de orçamento construído, não uma fatura de cliente nem um benchmark de desempenho. Ele modela um site público que serve HTML, CSS, JavaScript e imagens de apoio modestas, sem vídeo, downloads de arquivos grandes, uploads ou transformações de imagem.
| Dado mensal | América do Norte, servida nos EUA | Europa | Total |
|---|---|---|---|
| Bytes de resposta ao visitante, após compressão e incluindo cabeçalhos HTTP | 1.200.000.000.000 | 800.000.000.000 | 2.000.000.000.000 |
| Requisições HTTPS GET bem-sucedidas | 3 milhões | 2 milhões | 5 milhões |
Assuma um domínio e uma distribuição ou serviço, um mês de cobrança completo, franquias gratuitas não utilizadas e nenhum outro uso na conta. A divisão regional aqui é de 60/40 para as duas medidas; colete bytes e requisições separadamente a partir dos seus próprios logs. Mapeie o tráfego para as regiões de cobrança de cada provedor, em vez de presumir que o país de um visitante sempre identifica o local de atendimento.
Todos os preços e franquias abaixo foram verificados em 22 de setembro de 2026. Os valores estão em USD antes de impostos, usando preços públicos sem descontos negociados nem créditos promocionais. A comparação exclui hospedagem da origem, armazenamento, requisições e transferência da origem, edge compute opcional, transformações, destinos de logs e segurança ou suporte pagos adicionais. Recursos incluídos nos pacotes continuam incluídos; essas ofertas não oferecem conjuntos de recursos idênticos.
Compare as ofertas reais de CDN
| Oferta | Base publicada para esta carga | Estimativa mensal de entrega ou taxa listada do plano |
|---|---|---|
| Cloudflare para sites Free / Pro | O Free inclui CDN; o Pro custa $25 com cobrança mensal, ou $20/mês com cobrança anual. Aqui, use a cobrança mensal. | $0 / $25, sujeito à elegibilidade do conteúdo |
| CloudFront com pagamento por uso | 1 TB de transferência e 10 milhões de requisições HTTP/S gratuitos por mês; a faixa de transferência seguinte custa $0,085 por GB da AWS nas duas regiões selecionadas. | $71,28 pela entrega ao visitante |
| CloudFront Pro de tarifa fixa | $15 por distribuição/mês; 50 TB e 10 milhões de requisições incluídos. | $15, se os recursos atenderem |
| Fastly Full Site Delivery, preços atuais por uso | Faixas regionais: os primeiros 100 GB e 1 milhão de requisições são gratuitos; depois, $0,12/GB na América do Norte e na Europa, mais $0,01 a cada 10.000 requisições. | $219 pela entrega ao visitante |
| Pacote Basic do Fastly Network Services | Listado a $1.500/mês com 100 milhões de requisições e suporte Standard. | Taxa listada de $1.500; obtenha os termos contratuais |
O Cloudflare Free é uma opção real se os recursos dele forem suficientes; não é necessário comprar o Pro apenas para usar a CDN. O plano de tarifa fixa de $0 do CloudFront tem franquias menores, 100 GB e 1 milhão de requisições, então esta carga de trabalho o excede. O nível gratuito do pagamento por uso é uma oferta separada, não uma franquia extra para somar ao Pro. A AWS lista os níveis de tarifa fixa separadamente.
As linhas com preço por uso não pressupõem compromisso de prazo. Os planos de tarifa fixa do CloudFront não exigem compromisso anual. O compromisso do pacote da Fastly, os termos de largura de banda e o tratamento do uso excedente exigem uma cotação; um preço mensal de tabela não estabelece esses termos. A tabela de preços atual também traz um link para preços legados separados, aplicáveis a contas online criadas antes de 4 de novembro de 2025.
Verifique a elegibilidade e os recursos necessários
Os planos de site da Cloudflare não são uma franquia irrestrita para entrega de mídia. Os termos da CDN exigem serviços pagos adequados para vídeo e outros arquivos grandes fora do Enterprise e permitem limites para entrega desproporcional de imagens, áudio ou arquivos grandes. Precifique separadamente um serviço de vídeo ou de imagem se isso descrever a sua carga de trabalho.
As restrições de pacote da Fastly miram páginas web e APIs, excluem streaming e limitam a 10% o tráfego originado nas regiões de cobrança da África, da Índia ou da Coreia do Sul. Nosso exemplo com EUA/Europa evita essa restrição regional, mas não comprova a elegibilidade para todos os termos do pacote.
A franquia de transferência do CloudFront Pro atende a este exemplo, mas políticas de cache personalizadas e um SLA de disponibilidade só começam no Business. Um site que precise desses recursos deve reconsiderar a linha de $15. Os planos de tarifa fixa cobrem uma distribuição e até um domínio apex; um uso excedente substancial e contínuo pode causar ajustes na entrega, apesar de não haver cobrança por excedente. Confira as regras de recursos e franquias, incluindo a elegibilidade com base no histórico de uso. A AWS também exige uma conta elegível, e não uma conta do Free Tier.
Antes de tratar dois preços como alternativas, anote os controles de cache, as regras de WAF, a proteção contra bots, a retenção de logs, o tempo de resposta do suporte e o compromisso de disponibilidade de que você precisa. Um subtotal de entrega baixo não precifica requisitos ausentes.
Reproduza o cálculo de entrega
Mantenha a contagem original de bytes ao comparar unidades. A Fastly usa GB decimal, então esta carga de trabalho equivale a 2.000 GB. A AWS descreve a transferência do CloudFront em GB binário, que aqui chamamos de GiB: os mesmos bytes equivalem a aproximadamente 1.862,645149 GiB, com uma franquia gratuita de 1.024 GiB. Veja as medições de cobrança da Fastly e a explicação da AWS sobre as unidades, em português.
No CloudFront, subtraia a franquia uma única vez para toda a conta:
max(0, 2,000,000,000,000 / 1,073,741,824 − 1,024) × $0.085 = $71.28.
As duas regiões têm a mesma tarifa de transferência nesse volume, então a divisão entre elas não
altera esse resultado. Os cinco milhões de requisições cabem integralmente na franquia separada de
requisições.
Na Fastly, aplique as faixas gratuitas regionais publicadas uma vez por região de cobrança:
| Componente | Cálculo | USD |
|---|---|---|
| Transferência na América do Norte | (1.200 − 100) GB × $0,12 | 132,00 |
| Transferência na Europa | (800 − 100) GB × $0,12 | 84,00 |
| Requisições na América do Norte | (3.000.000 − 1.000.000) / 10.000 × $0,01 | 2,00 |
| Requisições na Europa | (2.000.000 − 1.000.000) / 10.000 × $0,01 | 1,00 |
| Subtotal de entrega ao visitante | 132 + 84 + 2 + 1 | 219,00 |
A calculadora offline a seguir reproduz esses dois subtotais. Ela aceita deliberadamente apenas América do Norte e Europa, no máximo 10 terabytes decimais combinados e no máximo 10 milhões de requisições combinadas. Esses limites a mantêm dentro das faixas de transferência acima e da franquia gratuita de requisições do CloudFront. Cargas de trabalho maiores precisam de mais faixas de preço, não da remoção dessa proteção.
Salve isto como um novo arquivo chamado cdn-cost.ts. Ele precisa do Node.js com
suporte nativo a TypeScript e de nenhum pacote; o exemplo foi testado com Node.js 26.8.1 no Linux.
Ele imprime estimativas, não faz requisições de rede e não grava arquivos de saída, então executá-lo
novamente não altera os arquivos existentes.
interface Usage {
bytes: number
requests: number
}
const workload: Record<'northAmerica' | 'europe', Usage> = {
northAmerica: { bytes: 1_200_000_000_000, requests: 3_000_000 },
europe: { bytes: 800_000_000_000, requests: 2_000_000 },
}
function estimate(traffic: typeof workload): Record<string, number> {
if (Object.keys(traffic).some((region) => region !== 'northAmerica' && region !== 'europe')) {
throw new Error('Only North America and Europe are priced')
}
const regions = [traffic.northAmerica, traffic.europe]
for (const region of regions) {
for (const value of [region.bytes, region.requests]) {
if (!Number.isSafeInteger(value) || value < 0) {
throw new Error('Use nonnegative whole bytes and request counts')
}
}
}
const bytes = regions.reduce((sum, region) => sum + region.bytes, 0)
const requests = regions.reduce((sum, region) => sum + region.requests, 0)
if (bytes > 10_000_000_000_000 || requests > 10_000_000) {
throw new Error('This example stops at 10 TB and 10 million requests')
}
const fastlyBandwidth = regions.reduce(
(sum, region) => sum + Math.max(0, region.bytes / 1_000_000_000 - 100) * 0.12,
0,
)
const fastlyRequests = regions.reduce(
(sum, region) => sum + (Math.max(0, region.requests - 1_000_000) / 10_000) * 0.01,
0,
)
return {
cloudFrontPayg: Math.max(0, bytes / 2 ** 30 - 1_024) * 0.085,
fastlyBandwidth,
fastlyRequests,
fastlyDelivery: fastlyBandwidth + fastlyRequests,
}
}
for (const [name, cost] of Object.entries(estimate(workload))) {
console.log(`${name}: USD ${cost.toFixed(2)}`)
}
Execute-o a partir do diretório que contém o arquivo:
node cdn-cost.ts
Saída esperada:
cloudFrontPayg: USD 71.28
fastlyBandwidth: USD 216.00
fastlyRequests: USD 3.00
fastlyDelivery: USD 219.00
Edite os dois totais regionais para inspecionar outro mês dentro dos limites informados. Por exemplo, 100 GB e um milhão de requisições em cada região resultam em um subtotal de uso zero para os dois provedores. Concentrar esse mesmo tráfego em uma única região faz o subtotal da Fastly chegar a $13, porque só se aplicam as faixas gratuitas de uma região. Essas são verificações aritméticas deste modelo de tabela de preços, não faturas verificadas.
A Fastly também cobra a largura de banda da CDN para a origem e, quando ativado, o tráfego do shield para a edge. Os $219 aqui excluem esses caminhos; até um GET envia cabeçalhos de requisição em direção à origem. Adicione-os usando a definição de cobrança da Fastly antes de estimar uma fatura completa. Nenhum dos subtotais de uso inclui a conta do provedor de origem.
Separe os cache hits do tráfego dos visitantes
Um cache hit na edge ainda entrega a resposta ao visitante. Portanto, melhorar a taxa de hit na edge não reduz os bytes nem as requisições dos visitantes neste cálculo quando as respostas solicitadas continuam as mesmas. Respostas menores e cache no navegador podem reduzir o tráfego dos visitantes; um cache melhor na edge muda principalmente o que chega à origem.
Acompanhe duas taxas diferentes: a taxa de hit por requisição conta as requisições respondidas pelo cache, enquanto a taxa de hit por byte pondera os hits pelo tamanho da resposta. Em um modelo simplificado em que cada miss busca na origem uma resposta completa do mesmo tamanho:
- Com uma taxa de hit por requisição de 90%, cinco milhões de requisições de visitantes implicam 500.000 requisições à origem.
- Com uma taxa de hit por byte de 80%, 2.000 GB entregues aos visitantes implicam 400 GB buscados na origem.
- Elevar apenas a taxa de hit por byte para 95% reduz esse volume da origem para 100 GB, uma redução de 300 GB. A entrega aos visitantes continua em 2.000 GB.
Esses são cálculos hipotéticos de tráfego. Revalidação, colapso de requisições, shielding e uma compressão diferente na conexão com a origem podem alterar o tráfego real da origem. A documentação de análise de cache da Cloudflare ilustra por que uma revalidação pode contatar a origem sem baixar novamente o corpo da resposta. Meça esse tráfego separadamente antes de atribuir economias. A transferência de origens na AWS para o CloudFront já é gratuita segundo os preços publicados, então não associe a ela uma economia inventada de egress da origem; os custos de requisição ou de computação na origem ainda podem mudar.
Compare a estimativa com a sua aplicação
Use um mês de bytes e requisições por região de cobrança para substituir o exemplo e, depois, precifique separadamente o trabalho da origem e os extras necessários. Mantenha transformações de imagem, processamento de vídeo e execução de funções na edge como linhas distintas. Se um recurso reduzir o tamanho das respostas, compare a cobrança dele com a mudança resultante no tráfego dos visitantes e da origem, em vez de presumir que ele se paga sozinho.
Meça o TTFB p95, o comportamento de carregamento das páginas e as taxas de erro para os usuários e estados de cache que importam para a sua aplicação. Uma tabela de preços não consegue estabelecer qual rede tem o melhor desempenho para eles. Mantenha payloads e configuração de cache comparáveis ao avaliar alternativas.
Antes de assumir um compromisso, concilie o modelo com uma conta existente ou uma estimativa do provedor, verificando o compartilhamento das franquias gratuitas, as unidades de cobrança e os termos da conta escolhida. Registre qualquer diferença sem explicação como um custo não resolvido, e não como zero. Assim, você tem um orçamento que pode revisar quando o tráfego ou os requisitos mudarem.
