Costos de CDN: comparación de eficiencia para desarrolladores
Comienza a comparar costos de CDN con los bytes y las solicitudes mensuales; luego comprueba qué planes pueden servir tu contenido. Para la carga de trabajo del sitio web que se detalla a continuación, el subtotal de entrega de CloudFront con precios por uso es de 71,28 $, mientras que su plan Pro de tarifa fija cuesta 15 $. Esa diferencia hace que comparar ofertas específicas sea tan importante como comparar proveedores.
Define una carga de trabajo mensual
Este es un ejemplo elaborado para presupuestar, no una factura de cliente ni una prueba de rendimiento. Modela un sitio web público que sirve HTML, CSS, JavaScript e imágenes complementarias de tamaño moderado, sin video, descargas de archivos grandes, subidas ni transformaciones de imágenes.
| Datos mensuales | Norteamérica, servidos en EE. UU. | Europa | Total |
|---|---|---|---|
| Bytes de respuesta al usuario, después de la compresión e incluidos los encabezados HTTP | 1.200.000.000.000 | 800.000.000.000 | 2.000.000.000.000 |
| Solicitudes HTTPS GET exitosas | 3 millones | 2 millones | 5 millones |
Supón un dominio y una distribución o servicio, un mes de facturación completo, cuotas gratuitas sin consumir y ningún otro uso en la cuenta. Aquí la distribución regional es 60/40 para ambas medidas; recopila los bytes y las solicitudes por separado a partir de tus propios registros. Asigna el tráfico a las regiones de facturación de cada proveedor, en lugar de suponer que el país de un visitante siempre identifica la ubicación desde la que se sirve el contenido.
Todos los precios y las cuotas que se indican a continuación se verificaron el 22 de septiembre de 2026. Los importes están en USD antes de impuestos y se basan en precios públicos, sin descuentos negociados ni créditos promocionales. La comparación excluye el alojamiento del origen, el almacenamiento, las solicitudes y la transferencia del origen, el cómputo opcional en el borde, las transformaciones, los destinos de registros y la seguridad o el soporte adicionales de pago. Las funciones incluidas en cada paquete siguen incluidas; estas ofertas no tienen conjuntos de funciones idénticos.
Compara las ofertas reales de CDN
| Oferta | Base publicada para esta carga de trabajo | Estimación mensual de entrega o tarifa publicada del plan |
|---|---|---|
| Cloudflare Free / Pro para sitios web | Free incluye CDN; Pro cuesta 25 $ con facturación mensual, o 20 $/mes con facturación anual. Aquí se usa la facturación mensual. | 0 $ / 25 $, sujeto a los requisitos de contenido |
| CloudFront de pago por uso | 1 TB de transferencia y 10 millones de solicitudes HTTP/S gratis cada mes; el siguiente tramo de transferencia cuesta 0,085 $ por GB de AWS en ambas regiones seleccionadas. | 71,28 $ por la entrega al usuario |
| CloudFront Pro de tarifa fija | 15 $ por distribución/mes; incluye 50 TB y 10 millones de solicitudes. | 15 $, si sus funciones se ajustan a tus necesidades |
| Fastly Full Site Delivery, precios por uso actuales | Tramos regionales: los primeros 100 GB y 1 millón de solicitudes son gratis; después, 0,12 $/GB en Norteamérica y Europa, más 0,01 $ por cada 10.000 solicitudes. | 219 $ por la entrega al usuario |
| Paquete Basic de Fastly Network Services | Precio publicado de 1.500 $/mes con 100 millones de solicitudes y soporte Standard. | Tarifa publicada de 1.500 $; solicita las condiciones del contrato |
Cloudflare Free es una opción real si sus funciones son suficientes; no es necesario comprar Pro solo para usar su CDN. El plan de tarifa fija de 0 $ de CloudFront tiene cuotas menores, de 100 GB y 1 millón de solicitudes, por lo que esta carga de trabajo las supera. Su nivel gratuito de pago por uso es una oferta independiente, no una cuota adicional que se pueda sumar a Pro. AWS presenta los niveles de tarifa fija por separado.
Las filas con precios por uso suponen que no hay compromiso de permanencia. Los planes de tarifa fija de CloudFront no requieren un compromiso anual. El compromiso del paquete de Fastly, las condiciones de ancho de banda y el tratamiento del uso excedente requieren una cotización; un precio mensual publicado no establece esas condiciones. Su tabla de tarifas actual también enlaza precios heredados por separado para cuentas en línea creadas antes del 4 de noviembre de 2025.
Comprueba los requisitos de elegibilidad y las funciones necesarias
Los planes para sitios web de Cloudflare no autorizan de forma general la entrega de contenido multimedia. Sus condiciones de CDN exigen servicios de pago adecuados para video y otros archivos grandes fuera de Enterprise, y permiten imponer límites a la entrega desproporcionada de imágenes, audio o archivos grandes. Calcula por separado el precio de un servicio de video o imágenes si eso describe tu carga de trabajo.
Las restricciones de los paquetes de Fastly se orientan a páginas web y API, excluyen el streaming y limitan al 10 % el tráfico que se origina en las regiones de facturación de África, India o Corea del Sur. Nuestro ejemplo de EE. UU. y Europa evita esa restricción regional, pero no demuestra que cumpla todas las condiciones del paquete.
La cuota de transferencia de CloudFront Pro cubre este ejemplo, pero las políticas de caché personalizadas y un SLA de tiempo de actividad están disponibles a partir de Business. Un sitio que necesite esas funciones debe reconsiderar la fila de 15 $. Los planes de tarifa fija cubren una distribución y hasta un dominio raíz; un exceso de uso considerable y sostenido puede provocar ajustes en la entrega, aunque no haya cargos por excedentes. Consulta las reglas sobre funciones y cuotas, incluidos los requisitos de elegibilidad según el uso histórico. AWS también exige una cuenta elegible en lugar de una cuenta Free Tier.
Antes de considerar dos precios como alternativas, anota los controles de caché, las reglas de WAF, la protección contra bots, la retención de registros, la respuesta del soporte y el compromiso de disponibilidad que necesitas. Un subtotal de entrega bajo no contempla el costo de los requisitos que faltan.
Reproduce el cálculo de entrega
Conserva el recuento original de bytes al comparar unidades. Fastly usa GB decimales, por lo que esta carga de trabajo equivale a 2.000 GB. AWS describe la transferencia de CloudFront en GB binarios, que aquí denominamos GiB: los mismos bytes equivalen a aproximadamente 1.862,645149 GiB, con una cuota gratuita de 1.024 GiB. Consulta las medidas de facturación de Fastly y la explicación de las unidades de AWS, en portugués.
Para CloudFront, resta la cuota una sola vez para toda la cuenta:
max(0, 2,000,000,000,000 / 1,073,741,824 − 1,024) × $0.085 = $71.28.
Ambas regiones tienen la misma tarifa de transferencia para este volumen, por lo que la distribución
entre ellas no cambia ese resultado. Los cinco millones de solicitudes caben en la cuota
independiente de solicitudes.
Para Fastly, aplica los tramos regionales gratuitos publicados una vez por región de facturación:
| Componente | Cálculo | USD |
|---|---|---|
| Transferencia de Norteamérica | (1.200 − 100) GB × 0,12 $ | 132,00 |
| Transferencia de Europa | (800 − 100) GB × 0,12 $ | 84,00 |
| Solicitudes de Norteamérica | (3.000.000 − 1.000.000) / 10.000 × 0,01 $ | 2,00 |
| Solicitudes de Europa | (2.000.000 − 1.000.000) / 10.000 × 0,01 $ | 1,00 |
| Subtotal de entrega al usuario | 132 + 84 + 2 + 1 | 219,00 |
La siguiente calculadora sin conexión reproduce esos dos subtotales. Acepta deliberadamente solo Norteamérica y Europa, un máximo combinado de 10 terabytes decimales y un máximo combinado de 10 millones de solicitudes. Esos límites la mantienen dentro de los tramos de transferencia anteriores y de la cuota gratuita de solicitudes de CloudFront. Las cargas de trabajo mayores necesitan más tramos de precios, no que se elimine la validación de límites.
Guarda esto como un archivo nuevo llamado cdn-cost.ts. Necesita Node.js con
soporte nativo para TypeScript y ningún paquete; el ejemplo se probó con Node.js 26.8.1 en Linux.
Imprime estimaciones, no realiza solicitudes de red ni escribe archivos de salida, por lo que
volver a ejecutarlo deja intactos los archivos 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)}`)
}
Ejecútalo desde el directorio que contiene el archivo:
node cdn-cost.ts
Salida esperada:
cloudFrontPayg: USD 71.28
fastlyBandwidth: USD 216.00
fastlyRequests: USD 3.00
fastlyDelivery: USD 219.00
Edita los dos totales regionales para examinar un mes diferente dentro de los límites indicados. Por ejemplo, 100 GB y un millón de solicitudes en cada región dan un subtotal por uso de cero para ambos proveedores. Concentrar ese mismo tráfico en una región hace que el subtotal de Fastly sea de 13 $, porque solo se aplican los tramos gratuitos de una región. Estas son comprobaciones aritméticas de este modelo de tarifas, no facturas verificadas.
Fastly también factura el ancho de banda de la CDN al origen y, cuando está habilitado, el tráfico de la capa de protección al borde. Los 219 $ de este ejemplo excluyen esas rutas; incluso un GET envía encabezados de solicitud al origen. Súmalas según la definición de facturación de Fastly antes de estimar una factura completa. Ninguno de los subtotales por uso incluye la factura del proveedor del origen.
Separa los aciertos de caché del tráfico hacia los usuarios
Un acierto de caché en el borde sigue entregando la respuesta al usuario. Por lo tanto, mejorar la tasa de aciertos en el borde no reduce los bytes ni las solicitudes de los usuarios en este cálculo si las respuestas solicitadas siguen siendo las mismas. Las respuestas más pequeñas y la caché del navegador pueden reducir el tráfico hacia los usuarios; una mejor caché en el borde cambia principalmente lo que llega al origen.
Registra dos proporciones diferentes: la tasa de aciertos por solicitud cuenta las solicitudes respondidas desde la caché, mientras que la tasa de aciertos por byte pondera los aciertos según el tamaño de la respuesta. En un modelo simplificado donde cada fallo de caché obtiene del origen una respuesta completa del mismo tamaño:
- Con una tasa de aciertos por solicitud del 90 %, cinco millones de solicitudes de usuarios implican 500.000 solicitudes al origen.
- Con una tasa de aciertos por byte del 80 %, 2.000 GB entregados a los usuarios implican 400 GB obtenidos del origen.
- Aumentar solo la tasa de aciertos por byte al 95 % reduce ese volumen del origen a 100 GB, una reducción de 300 GB. La entrega al usuario sigue siendo de 2.000 GB.
Estos son cálculos hipotéticos de tráfico. La revalidación, la consolidación de solicitudes, el uso de una capa de protección y una compresión diferente en la conexión al origen pueden cambiar el tráfico real del origen. La documentación de análisis de caché de Cloudflare ilustra por qué una revalidación puede contactar al origen sin volver a descargar el cuerpo de la respuesta. Mide ese tráfico por separado antes de atribuirle ahorros. La transferencia desde un origen en AWS a CloudFront ya es gratuita según sus precios publicados, así que no le atribuyas un ahorro inventado en la salida de datos del origen; los costos de solicitudes o cómputo del origen sí pueden cambiar.
Contrasta la estimación con tu aplicación
Usa un mes de bytes y solicitudes por región de facturación para reemplazar el ejemplo y luego calcula por separado el costo del trabajo en el origen y de los extras necesarios. Mantén las transformaciones de imágenes, el procesamiento de video y la ejecución de funciones en el borde como partidas distintas. Si una función reduce el tamaño de las respuestas, compara su cargo con el cambio resultante en el tráfico hacia los usuarios y el origen, en lugar de suponer que se amortiza por sí sola.
Mide el TTFB p95, el comportamiento de carga de las páginas y las tasas de error para los usuarios y estados de caché que importan a tu aplicación. Una tabla de precios no puede determinar qué red les ofrece el mejor rendimiento. Mantén comparables las cargas útiles y la configuración de caché al evaluar alternativas.
Antes de comprometerte, concilia el modelo con una factura existente o una estimación del proveedor, y verifica cómo se comparten las cuotas gratuitas, las unidades de facturación y las condiciones de la cuenta elegida. Registra cualquier diferencia sin explicación como un costo pendiente de resolver, no como cero. Así tendrás un presupuesto que podrás revisar cuando cambien el tráfico o los requisitos.
