Imagen de Molnia
Al administrar buckets de Amazon S3, contar con métricas precisas de almacenamiento es clave para la gestión de costos y la planificación de capacidad. Sin embargo, pueden aparecer discrepancias en los tamaños reportados que generan confusión y posibles errores en la estimación de costos. Este artículo analiza un caso real de uno de nuestros clientes en el que distintas herramientas de AWS reportaban tamaños muy distintos para el mismo bucket de S3, y propone una solución para calcular con precisión el consumo real de almacenamiento.
Uno de nuestros clientes detectó una diferencia importante al revisar las métricas de almacenamiento de un bucket específico:
- Métricas de S3 y CloudWatch: reportaban más de 220TB de almacenamiento
- AWS CLI y la opción Calculate total size de S3: mostraban menos de 8TB
Esta diferencia de 27 veces en el tamaño reportado encendió alarmas inmediatas sobre la precisión de los datos y sus posibles implicaciones de costos.
Al investigar, encontramos la siguiente configuración del bucket:
- Storage Class: todos los objetos estaban en S3 Standard
- Versioning: no estaba habilitado en el bucket
- Lifecycle Rule: configurada para eliminar objetos después de 45 días
En un principio, esta configuración no explicaba la enorme diferencia entre los tamaños reportados, lo que motivó un análisis más profundo.
Para confirmar la discrepancia, primero revisamos el bucket de S3 y las métricas de CloudWatch:
- Consola de S3: revisamos las métricas de almacenamiento del bucket
- CloudWatch: examinamos las métricas correspondientes al bucket
Ambas fuentes reportaban de manera consistente que el bucket almacenaba más de 200TB de datos.

Métricas del bucket de S3

Métricas de CloudWatch
Para profundizar en la discrepancia, usamos dos métodos adicionales para medir el almacenamiento del bucket:
- La función Calculate Total Size de S3 en la Consola
- El comando de AWS CLI para listar el contenido del bucket
Tanto Calculate total size como el comando de AWS CLI mostraron que el bucket tenía 7.5TB de almacenamiento con más de 6 millones de objetos.

Uso de Calculate total size en el bucket de S3.

Resultado de S3 Calculate Total
Comando de AWS CLI para calcular el tamaño del bucket:
aws s3 ls — summarize — human-readable — recursive s3://
Este comando lista todos los objetos del bucket especificado y entrega un resumen del tamaño total.

Salida de AWS CLI
El fuerte contraste entre los tamaños reportados planteaba un misterio: ¿cómo podía el mismo bucket mostrar volúmenes de datos tan dispares? La discrepancia ameritaba un análisis más profundo, ya que podía afectar de forma significativa la gestión de costos y la planificación del almacenamiento. Para resolver el enigma, seguimos estos pasos:
- Habilitar S3 Storage Lens: recomendamos al cliente activar Amazon S3 Storage Lens, una potente función de analítica para almacenamiento en la nube. Esta herramienta entrega visibilidad a nivel organizacional sobre el uso del almacenamiento de objetos y las tendencias de actividad.
- Esperar la recopilación de datos: hay que tener en cuenta que S3 Storage Lens puede tardar hasta 24 horas en recopilar y publicar métricas.
- Analizar los resultados: una vez que los datos estuvieron disponibles, revisamos con detalle el dashboard de S3 Storage Lens. La información que entregó esta herramienta resultó invaluable para la investigación.

S3 Storage Lens mostrando el tamaño total de Incomplete Multipart Upload.
S3 Storage Lens nos mostró que la causa de la discrepancia estaba relacionada con los S3 Incomplete Multipart Uploads.
Los S3 Incomplete Multipart Uploads son partes de objetos que se cargaron parcialmente, pero nunca se completaron. Lo importante es que estas cargas incompletas ocupan espacio de almacenamiento y generan cargos, aunque no aparezcan en los listados estándar del bucket.
El tamaño de los Incomplete Multipart Uploads superaba los 200TB. La diferencia entre las herramientas se debe a que la operación "Calculate total size" en la consola de S3 y el AWS CLI no toman en cuenta los Incomplete Multipart Uploads.
Al identificar este problema, pudimos explicar la enorme diferencia entre los tamaños reportados y trazar un camino para optimizar el uso del almacenamiento en S3 del cliente.
Para ayudar al cliente a limpiar el bucket, configuramos la lifecycle rule de S3 'delete-incomplete-mpu-7-days' para eliminar los Incomplete Multipart Uploads.

Lifecycle Rule de S3 para eliminar Incomplete Multipart Uploads
Tras dejar correr la lifecycle rule 'delete-incomplete-mpu-7-days' durante algunos días y esperar a que las métricas de CloudWatch se actualizaran, volvimos a revisar las métricas del bucket. Comprobamos que la lifecycle rule funcionó y eliminó todos los Incomplete Multipart Uploads. Luego revisamos las métricas de almacenamiento con las mismas herramientas y ya no reportaban valores distintos para el bucket.

Métricas del bucket de S3 tras aplicar la lifecycle rule

Métricas de CloudWatch tras aplicar la lifecycle rule
Uso de S3 Calculate total size tras aplicar la lifecycle rule de S3 'delete-incomplete-mpu-7-days'.

Uso de Calculate total size en el bucket de S3.

S3 Calculate total size tras aplicar la lifecycle rule de S3

Script con AWS CLI para calcular el tamaño del bucket tras aplicar la lifecycle rule de S3
Este caso es solo un ejemplo de los retos complejos que enfrentan las empresas al gestionar sus entornos de AWS. Gracias a nuestra experiencia en los servicios de AWS y a nuestra capacidad para analizar e interpretar métricas de la nube, dimos con la causa raíz de la discrepancia y entregamos una solución efectiva. Esto no solo resolvió el problema inmediato, sino que además le dio al cliente una visión más profunda del uso y los costos de su almacenamiento en S3.
En DoiT International nos especializamos en ayudar a las empresas a moverse con soltura en las complejidades de la nube, resolver problemas y optimizar su infraestructura de AWS. Si estás enfrentando discrepancias similares en métricas de almacenamiento u otros retos en la nube, nuestro equipo de expertos está listo para ayudarte. No dejes que la complejidad de la nube frene la operación de tu negocio. Contacta a DoiT hoy mismo y conversemos sobre cómo podemos ayudarte a llevar al máximo la eficiencia y la rentabilidad de tu entorno en la nube, para que saques el mayor valor posible de tu inversión en AWS.