
Cloudflare R2 o Amazon S3: ahorrar la salida puede costar velocidad de carga

Cloudflare R2 suele resultar más económico que Amazon S3 Standard cuando los mismos archivos se descargan muchas veces directamente a internet: R2 no cobra esa transferencia, aunque sí el almacenamiento y las operaciones que excedan su cuota incluida. S3 puede convenir si la aplicación depende de funciones de AWS, utiliza otra clase de almacenamiento o necesita priorizar la velocidad de carga observada en una configuración comparable.
La diferencia de velocidad merece entrar en la decisión desde el principio. En el ensayo europeo de AIMultiple, un objeto de 1 GB se cargó a 77,92 MB/s en S3 y a 25,61 MB/s en R2; la latencia de carga fue de 28,45 y 171,58 ms, respectivamente. La prueba usó un bucket de S3 en Fráncfort y accedió a R2 mediante su API compatible con S3. Esas cifras describen las rutas ensayadas, no la velocidad que obtendrá cualquier usuario en España o Latinoamérica.
Almacenamiento, solicitudes y transferencia
En R2 Standard, la tarifa de Cloudflare establece 0,015 USD por GB-mes almacenado, 4,50 USD por millón de operaciones de clase A y 0,36 USD por millón de clase B. Cada mes incluye 10 GB-mes, un millón de operaciones A y diez millones B sin cargo. Las escrituras y los listados pertenecen a la clase A; las lecturas de objetos, a la B. La salida directa a internet es gratuita en ambas clases de almacenamiento de R2, pero Infrequent Access añade un cargo por recuperación y no recibe la cuota gratuita de Standard.
Los precios de Amazon S3 separan almacenamiento, solicitudes, recuperación y transferencia según la clase y la región. AWS incluye los primeros 100 GB mensuales de salida a internet, compartidos entre sus servicios y regiones salvo las excepciones indicadas en su tarifa. La transferencia desde S3 hacia CloudFront tampoco se factura como salida de S3; servir el contenido mediante CloudFront exige calcular los cargos de ese servicio. Por tanto, los ejemplos de salida directa no representan una distribución mediante CDN.
Para mantener una base común, las cuentas siguientes usan S3 Standard en Fráncfort. Un desglose de tarifas obtenido de la lista de precios de AWS fija allí 0,0245 USD por GB-mes para S3 Standard y 0,0043 USD por cada 10.000 GET. Los ejemplos adoptan además 0,09 USD por GB de salida directa, la tarifa empleada en la comparación europea citada. Son supuestos mensuales con unidades facturables redondeadas para facilitar la comparación; excluyen impuestos, nuevas escrituras y otros servicios. También suponen que ningún otro consumo de AWS ha agotado la cuota compartida de salida.
Tres patrones de uso, tres facturas
Copias de seguridad con pocas restauraciones. Supongamos 1.000 GB almacenados durante todo el mes, 100 GB descargados y 1.000 GET. En R2 Standard se facturarían 990 GB-mes tras la cuota incluida: 14,85 USD. Las lecturas cabrían en la cuota de operaciones B. En S3 Standard, el almacenamiento costaría 24,50 USD y los GET añadirían menos de un céntimo; toda la salida quedaría dentro de la cuota compartida asumida. La diferencia entre ambos es modesta frente a la que aparece cuando el mismo volumen se descarga repetidamente. Una clase de S3 para acceso infrecuente podría alterar esta comparación, pero habría que añadir sus reglas de duración, recuperación y solicitudes.
Vídeo servido directamente. Con 1.000 GB almacenados, 5.000 GB entregados durante el mes y 100.000 GET, R2 Standard seguiría en 14,85 USD bajo las cuotas supuestas. En S3, los 4.900 GB de salida que exceden la cuota sumarían 441 USD; almacenamiento y GET llevarían la cuenta a unos 465,54 USD. En este caso manda la relación entre datos guardados y datos enviados. Si los espectadores reciben el vídeo desde una CDN, la salida del bucket y la factura de distribución cambian, de modo que estos importes dejan de describir esa arquitectura.
Archivos de una web. Supongamos 100 GB almacenados, 500 GB entregados directamente a visitantes y cinco millones de GET. R2 Standard quedaría en unos 1,35 USD: se cobrarían 90 GB-mes de almacenamiento y las lecturas permanecerían dentro de su cuota. S3 Standard sumaría aproximadamente 40,60 USD: 2,45 de almacenamiento, 2,15 de GET y 36 de salida tras la cuota compartida. Una caché que responda a parte de las visitas reduciría las solicitudes al bucket; por eso el tráfico recibido por los visitantes no equivale necesariamente al tráfico facturado en el origen.
Qué rendimiento se obtiene a cambio
La carga más lenta observada en R2 pesa especialmente si los archivos grandes deben entrar en una ventana de tiempo limitada: ingestión de vídeo, recepción de originales o creación de copias. Si un objeto se escribe una vez y se entrega muchas veces, el ahorro de transferencia puede compensar ese tiempo adicional. La elección depende de cuántas escrituras se hacen, cuánto ocupan y qué retraso admite el proceso, además de los bytes descargados.
El ensayo también registró una descarga del objeto grande más rápida desde S3 que desde R2 mediante las rutas probadas. En archivos pequeños importa más el tiempo previo a transferir datos; con archivos grandes gana peso el caudal sostenido. La concurrencia introduce otra dimensión: varias solicitudes pueden aprovechar la conexión de forma distinta a una transferencia aislada. Ninguno de esos resultados equivale a medir un archivo público servido desde una caché cercana al visitante. Para público latinoamericano, la distancia, la ruta de red y la ubicación efectiva de los datos pueden cambiar tanto la latencia como el orden práctico de prioridades.
Compatibilidad y funciones que afectan la elección
R2 permite utilizar clientes de la API de S3, pero una migración exige revisar las operaciones concretas de la aplicación. La matriz de compatibilidad de Cloudflare incluye GetObject y PutObject entre las operaciones implementadas, mientras que marca como no compatibles determinadas opciones de Object Lock y cabeceras de cifrado asociadas a AWS KMS. Una copia sujeta a retención inmutable o un flujo que necesite esas cabeceras no se resuelve cambiando únicamente el destino del cliente.
También influye dónde termina cada petición. Para contenido público con muchas descargas directas, el cargo por transferencia favorece a R2 en los escenarios calculados. Para un sistema ya integrado con funciones de AWS o con cargas intensivas en escritura, S3 puede justificar un coste mayor de salida. La comparación útil toma los GET que llegan al almacenamiento, los bytes que realmente salen de él y el tiempo de carga aceptable para los archivos propios; después aplica las tarifas de la región y la ruta de entrega elegidas.
Lee también:
Artículos relacionados


Storage Intelligence detecta cuatro anomalías: el diagnóstico exige permisos

REST o GraphQL: ahorrar solicitudes puede aumentar la complejidad

Cloudflare Workers o Vercel: el SSR rápido puede costar más al escalar

Cloudflare Workers o AWS Lambda: la latencia rápida impone límites distintos

Más de la mitad del tráfico ya es automático: el coste oculto para la web
Suscríbete a nuestro boletín
Reciba las últimas noticias sobre Web3, IA y criptomonedas directamente en su bandeja de entrada.