¿Cuánto cuesta el object storage? Almacenamiento, solicitudes y salida

El object storage cobra por GB almacenado al mes, por solicitud (subida, descarga, listado) y por GB que sale hacia internet. En proyectos con muchas descargas, la salida suele pesar más que el almacenamiento.

Actualizado el 7 min de lectura

Objetivos de aprendizaje

Después de leer este artículo podrás:

  • Entender las tres líneas que componen la factura de un object storage
  • Estimar el costo mensual de un proyecto con una cuenta reproducible
  • Reconocer los costos ocultos: duración mínima, versiones antiguas y subidas incompletas
En esta página

El precio que aparece en la página de un object storage es el del GB almacenado, y es bajo: unos centavos de dólar al mes. Pero la factura tiene otras líneas. Cada subida, cada descarga y cada listado es una solicitud, y cada GB que sale hacia internet puede cobrarse aparte.

Los números de este artículo son hipotéticos, elegidos para facilitar la cuenta. No son precios de ningún proveedor; los valores reales cambian con el tiempo, varían por región y están en las páginas oficiales citadas en "fuentes". La cuenta completa que viene después se puede adaptar a tu proyecto. Si el concepto todavía es nuevo para ti, empieza por qué es el object storage.

Bucket de 500 GBcosto mensualSirve mediosArchivos fríosSalidamismo almacenamientoAlmacenamientoSubidasDescargasSalida
Mismo almacenamiento en los dos casos: lo que hace crecer la factura es la salida de las descargas.

¿Qué compone el costo de un object storage?#

Casi todos los proveedores cobran tres cosas:

  1. Almacenamiento: GB guardados al mes. El cobro suele ser proporcional al tiempo: 1 TB durante medio mes cuesta la mitad que 1 TB durante el mes entero.
  2. Solicitudes: operaciones en la API. Escribir (PUT, COPY, POST) y listar (LIST) suele costar más que leer (GET).
  3. Salida de datos (egress): GB transferidos del storage hacia internet o hacia otra región. La entrada, en general, no se cobra.

Algunos proveedores añaden líneas para clases de almacenamiento frías (tarifa de recuperación, duración mínima) y para funciones como la replicación entre regiones. El modelo de cobro varía mucho: hay quien cobra las tres líneas, quien no cobra solicitudes y quien no cobra la salida.

¿Cómo cobran cada línea los grandes proveedores?#

Dos referencias con modelos opuestos:

Línea Amazon S3 Standard Backblaze B2 (pay-as-you-go)
Almacenamiento Precio por GB-mes, en tramos que se abaratan con el volumen Precio por TB-mes, en general más bajo por GB
Escritura y listado Se cobran por cada 1.000 PUT, COPY, POST o LIST La mayoría de las llamadas sin cobro
Lectura Se cobra por cada 1.000 GET, más barata que la escritura La mayoría de las llamadas sin cobro
Salida hacia internet Franquicia mensual pequeña (sumando todos los servicios de AWS), después precio por GB en tramos de volumen Franquicia proporcional al volumen almacenado, después un precio bajo por GB
Duración mínima Ninguna en Standard Ninguna

En S3, tanto el precio del GB como el de la salida bajan por tramos a medida que crece el volumen. En B2, algunas llamadas menos comunes se cobran por encima de una franquicia diaria. Los precios cambian y varían por región, así que revisa las páginas oficiales de AWS y de Backblaze antes de cerrar una cuenta.

¿Cómo estimar el costo mensual de un proyecto?#

Necesitas cuatro números: GB almacenados, número de subidas, número de descargas y GB descargados al mes. Ejemplo hipotético: una app que guarda 500 GB de imágenes, recibe 1 millón de subidas y sirve 20 millones de descargas que suman 2 TB (2.000 GB) al mes.

El script de abajo hace la cuenta para un proveedor que cobra las tres líneas por separado, con precios hipotéticos. Cámbialos por los precios actuales de tu proveedor y de tu región antes de usar el resultado. Guárdalo como costo-storage.mjs y ejecútalo con node costo-storage.mjs:

javascript
// Ejemplo hipotético en US$: un proveedor que cobra las tres líneas por separado.
// No son precios de ningún proveedor; cámbialos por los de la página oficial del tuyo.
const precio = {
  almacenamientoGB: 0.02, // por GB-mes
  putPorMil: 0.01, // por 1.000 PUT, COPY, POST o LIST
  getPorMil: 0.001, // por 1.000 GET
  salidaGB: 0.1, // por GB hacia internet
  franquiciaSalidaGB: 100, // franquicia mensual de salida
};

const uso = { almacenadoGB: 500, puts: 1_000_000, gets: 20_000_000, salidaGB: 2000 };

const lineas = {
  almacenamiento: uso.almacenadoGB * precio.almacenamientoGB,
  subidas: (uso.puts / 1000) * precio.putPorMil,
  descargas: (uso.gets / 1000) * precio.getPorMil,
  salida: Math.max(0, uso.salidaGB - precio.franquiciaSalidaGB) * precio.salidaGB,
};
const total = Object.values(lineas).reduce((a, b) => a + b, 0);

for (const [nombre, valor] of Object.entries(lineas)) console.log(nombre.padEnd(15), valor.toFixed(2));
console.log("total".padEnd(15), total.toFixed(2));

La salida:

almacenamiento  10.00
subidas         10.00
descargas       20.00
salida          190.00
total           230.00

El almacenamiento es el 4% de la factura; la salida, el 83%. Ahora un proveedor que cobra US$5 por TB-mes, no cobra solicitudes y da una franquicia de salida de 2 veces el volumen almacenado, con US$0,02 por GB por encima de ella (también hipotético): el mismo escenario da US$2,50 de almacenamiento (0,5 TB), nada de solicitudes y US$20 de salida (2.000 GB menos la franquicia de 1.000 GB), US$22,50 en total. Casi toda la diferencia viene de la política de salida, no del precio del GB. El artículo sobre tarifas de salida explica cómo funciona esa línea.

Para llegar a tus números, estima el tamaño medio del archivo y multiplícalo por el número de descargas. Un archivo de 100 KB descargado 20 millones de veces son 2.000 GB.

¿Qué costos ocultos aparecen en la factura?#

  • Duración y tamaño mínimos en clases frías. S3 Standard-IA cobra menos por GB-mes que Standard, pero factura cada objeto por al menos 30 días, cobra los objetos de menos de 128 KB como si tuvieran 128 KB y añade una tarifa por GB recuperado. Un archivo borrado después de una semana paga el mes entero. Las clases de archivo tienen mínimos todavía mayores.
  • Versiones antiguas. Con el versionado activado, AWS indica que cada versión es el objeto completo y se cobra con las tarifas normales: tres versiones de un archivo cuestan como tres archivos. Sobrescribir un archivo grande cada día multiplica el almacenamiento en silencio.
  • Subidas multipart incompletas. Las partes de una subida que nunca terminó quedan guardadas hasta que se aborta. AWS recomienda una regla de lifecycle con AbortIncompleteMultipartUpload para reducir ese costo. Mira reglas de ciclo de vida.
  • Listados masivos. Las herramientas de sincronización que listan el bucket entero en cada ejecución generan miles de LIST, que S3 cobra como escritura.
  • Salida entre regiones y migración. Copiar datos a otra región, o descargarlo todo para cambiar de proveedor, es salida cobrada sobre el volumen completo.
  • Picos y hotlinking. Un archivo viral, u otro sitio que enlaza directamente tus imágenes, multiplica la salida sin que cambie nada en tu código.

¿Cómo reducir la factura de object storage?#

  1. Pon una CDN delante de los archivos públicos, con un Cache-Control largo. El archivo sale del storage una vez y el resto viene de la caché. La diferencia entre archivos públicos y privados define qué puede pasar por la CDN.
  2. Comprime y redimensiona antes de subir. Una imagen WebP de 80 KB en lugar de un JPEG de 2 MB recorta el almacenamiento y la salida al mismo tiempo.
  3. Usa reglas de lifecycle para borrar archivos temporales, versiones antiguas y subidas incompletas.
  4. Mueve a clases frías solo lo que de verdad no lees, y solo si el archivo se quedará más tiempo que la duración mínima.
  5. Elige el proveedor según tu perfil de uso. Mucho almacenamiento y pocas descargas: manda el precio del GB. Muchas descargas: manda la política de salida. Un storage compatible con S3 facilita cambiar más adelante, porque el código no cambia.

¿Cuándo es el almacenamiento la línea que pesa?#

En archivos fríos, como copias de seguridad y logs antiguos, casi no hay descargas, así que la factura es prácticamente GB por precio por GB. Aquí las clases de archivo y los proveedores con GB barato marcan una diferencia real, siempre que respetes las duraciones mínimas. Para ese caso, mira cómo guardar copias de seguridad en object storage.

En apps que sirven contenido multimedia a usuarios (fotos de perfil, adjuntos, videos), la salida domina y el precio del GB almacenado casi no importa.

Cómo hacerlo en Square Cloud#

El Blob Storage de Square Cloud es un object storage con API compatible con S3 (aws-cli, rclone, boto3, SDKs de AWS), API REST y panel. No cobra tarifa de salida ni de entrada, así que la línea que dominaba la factura del ejemplo desaparece.

Todos los planes incluyen una cuota de almacenamiento, de 5 GB a 250 GB. El plan Hobby, desde R$12,49 al mes, incluye de 5 a 15 GB de Blob. Los archivos públicos se sirven a través de una CDN global en el edge, y los archivos privados se abren con un enlace temporal de hasta 24 horas o con un enlace para compartir de hasta 30 días.

En lugar de las reglas de lifecycle, el Blob tiene reglas por carpeta (expiración, caché, limpieza automática): la regla "borrar después de N días" caduca los objetos antiguos sola, contando desde la última escritura. Acepta archivos de hasta 10 GB, y la subida multipart solo es obligatoria por encima de 100 MB. Mira las cuotas y los detalles en la página de Blob Storage.

Blob Storage

Object storage compatible con S3, sin tarifas de salida

Más información

Preguntas frecuentes

¿Cuánto cuesta guardar 1 TB en object storage?

Solo el almacenamiento es el volumen en GB por el precio por GB-mes del proveedor. Suponiendo US$0,02 por GB-mes (valor hipotético), 1 TB (1.000 GB) sale por US$20 al mes; en un proveedor que cobrara US$5 por TB-mes, también hipotético, saldría por US$5. Las solicitudes y la salida de datos se cobran aparte.

¿Por qué mi factura de storage llegó más alta de lo esperado?

Casi siempre por la salida de datos (descargas hacia internet) o por solicitudes masivas. Las versiones antiguas de objetos, las subidas multipart incompletas y las tarifas de recuperación en clases frías también suman sin aparecer en el panel principal.

¿Las clases frías como Infrequent Access siempre son más baratas?

Solo para archivos que casi nunca se leen. En S3 Standard-IA el GB almacenado cuesta menos, pero hay una tarifa por GB recuperado, un cobro mínimo de 30 días y un tamaño mínimo facturable de 128 KB por objeto.

¿Se cobran las subidas de archivos?

La transferencia de entrada desde internet suele ser gratuita, pero cada subida es una solicitud. En S3, PUT, COPY, POST y LIST se cobran por cada mil solicitudes, a una tarifa mayor que la de GET.

Siguiente artículo¿Cuánto cuesta guardar archivos e imágenes de los usuarios?Guardar uploads de usuarios cuesta almacenamiento por GB, peticiones y salida de datos. Mira cómo se cobra cada línea, una cuenta de 12 meses y cómo reducirla.

Más en Storage

Ver los 15 artículos