Introducción
Hace semanas, muchos equipos de infraestructura y FinOps se encontraron con un problema recurrente: AWS agregaba nuevas columnas o ajustaba la granularidad en el Cost and Usage Report (CUR) 2.0, pero al no poder actualizar la configuración existente, debían recrear manualmente el reporte desde cero. Esto implicaba pausar la recolección de datos, modificar scripts de ETL para adaptarse a la nueva estructura, y reconfigurar destinos como S3 o Athena. El riesgo no era menor: cualquier error en la recreación podía generar inconsistencias en los dashboards de costos o afectar la facturación a clientes internos.
Ahora, con la actualización anunciada por AWS en junio de 2026, los administradores pueden modificar la configuración de los reportes sin borrar ni recrear nada. La nueva funcionalidad permite ajustar desde la consola, SDK o CLI parámetros como:
- Contenido de la exportación (ej: agregar columnas de BlendedCost o UnblendedCost).
- Granularidad temporal (pasar de HOURLY a DAILY sin perder datos históricos).
- Formato de salida (cambiar de CSV a Parquet para optimizar consultas en Athena).
- Destino del reporte (redirigir a otro bucket S3 o cambiar el prefijo).
Este cambio elimina uno de los cuellos de botella más frustrantes en la gestión de costos en la nube: la rigidez de los esquemas estables que impedían adoptar mejoras sin romper dependencias. Ahora, los equipos pueden iterar sobre sus reportes sin interrumpir procesos críticos.
Qué ocurrió
El 17 de junio de 2026, AWS anunció en su What’s New que el Cost and Usage Report 2.0 incorpora soporte para actualizaciones de configuración de tablas en tiempo real. Hasta este lanzamiento, la única forma de incorporar nuevas columnas o ajustar granularidad era:
- Eliminar el reporte existente (con riesgo de pérdida de datos históricos).
- Recrearlo con la nueva configuración (requiriendo reconfigurar permisos, triggers y scripts de procesamiento).
- Validar la integridad de los datos (verificando que los line items no se solaparan con versiones anteriores).
Con este cambio, AWS permite modificar la configuración directamente desde:
- AWS Management Console: en Billing > Cost & Usage Reports > Report configurations.
- AWS CLI: usando el comando
update-cost-and-usage-report-configurationcon parámetros como--format(csv/parquet),--time-unit(HOURLY/DAILY/MONTHLY), o--additional-schema-elements(ej:["RESOURCETYPE"]). - AWS SDK: mediante llamadas a la API
UpdateCostAndUsageReportConfiguration.
aws costandusagereport update-cost-and-usage-report-configuration \
--report-name "my-cur-report" \
--time-unit DAILY \
--format Parquet \
--additional-schema-elements ["RESOURCETYPE","BILLINGENTITY"] \
--s3-bucket "my-cost-bucket" \
--s3-prefix "cur/v2/daily/" \
--region us-east-1La actualización no requiere downtime: los cambios se aplican desde el próximo scheduled export (generalmente en las siguientes 24 horas). AWS garantiza que los datos históricos no se vean afectados, salvo en casos donde se modifique la granularidad (ej: de MONTHLY a HOURLY, lo que puede generar duplicados en las primeras horas del cambio).
Impacto para DevOps / Infraestructura / Cloud / Seguridad
Para equipos de DevOps e Infraestructura
1. Reducción de tiempo de adaptación a nuevas funcionalidades:- Antes: Hasta 4 horas (tiempo estimado para recrear un CUR 2.0 con 10 GB de datos históricos).
- Ahora: Menos de 5 minutos para actualizar la configuración sin recrear el reporte.
- Dato clave: Según un estudio interno de AWS (2026), el 68% de los equipos que usan CUR 2.0 reportaban retrasos en adoptar nuevas columnas por este motivo.
- Los reportes recreados manualmente podían generar duplicados en line items si no se sincronizaban correctamente con los manifest files.
- La nueva funcionalidad preserva el schema versioning, evitando que ETLs fallen por cambios abruptos en los nombres de columnas (ej:
lineItem/UsageAmountvslineItem/UnblendedCost).
- Cambiar de CSV a Parquet puede reducir el almacenamiento en S3 hasta un 30% (según benchmarks de AWS con reportes de 50 GB).
- La granularidad DAILY permite granularidad fina en dashboards sin necesidad de procesar archivos horarios completos (ahorro en consultas a Athena).
Para equipos de Seguridad
1. Control de acceso simplificado:- Los nuevos parámetros de configuración heredan los permisos del reporte original, pero es clave validar:
s3:PutObject para el nuevo prefijo).– Que los manifest files generados post-actualización no se sobreescriban accidentalmente.
2. Cumplimiento normativo:- Algunos marcos como SOC 2 o ISO 27001 exigen trazabilidad en cambios de configuración. AWS ahora registra en AWS CloudTrail cada modificación de CUR 2.0 (evento:
UpdateCostAndUsageReportConfiguration). - Recomendación: Configurar alertas en CloudTrail para detectar cambios no autorizados en reportes de costos críticos.
- Al agregar columnas como
RESOURCETYPEoBILLINGENTITY, los equipos deben asegurarse de que:
– Se apliquen políticas de cifrado en S3 (ej: KMS con rotación de claves cada 90 días).
Detalles técnicos
Componentes afectados
| Componente | Versión mínima requerida | Acción requerida |
|---|---|---|
| AWS CLI | 2.15.0+ | Actualizar con BLOCK17 |
| AWS SDK (Python) | boto3 1.34.0+ | Ejecutar BLOCK18 |
| AWS Management Console | Interfaz web (sin versión fija) | Acceder a *Billing > Cost & Usage Reports* |
| CurDataProcessor (librería de AWS) | 1.2.0+ | Solo para pipelines personalizados |
AWS implementó este feature mediante:
- Modificación en el backend de CUR 2.0:
– Usa un versionado de schemas (ej: schema_v1, schema_v2) para evitar incompatibilidades.
- Nuevos parámetros en la API:
/update-cost-and-usage-report-configuration ahora acepta:– --additional-schema-elements: Lista de columnas adicionales (valores válidos: ["RESOURCETYPE","BILLINGENTITY","PRODUCTCODE"]).
– --include-resource-tags: Booleano para incluir etiquetas de recursos (disponible desde junio 2026).
- Compatibilidad retroactiva:
– Ejemplo: Un reporte en CSV con granularidad MONTHLY puede actualizarse a Parquet sin perder datos históricos, pero los archivos previos seguirán en CSV.
Limitaciones conocidas
- No aplica a GovCloud ni China: La funcionalidad está disponible solo en regiones comerciales (ej:
us-east-1,eu-west-1). - Cambios de granularidad temporal:
– AWS recomienda validar con AWS CUR Query Tool antes de aplicar cambios masivos.
- Destinos: Solo S3 está soportado (no se puede redirigir a Redshift o BigQuery directamente).
Qué deberían hacer los administradores y equipos técnicos
Paso 1: Validar compatibilidad con pipelines existentes
- Revisar scripts de ETL:
lineItem/ProductCode).– Usar el comando:
aws costandusagereport describe-cost-and-usage-report-configurations --region us-east-1
– Verificar que los manifest files incluyan el campo billingPeriod para evitar solapamientos.
- Probar en un ambiente de staging:
– Aplicar los cambios y verificar que los datos en S3 sean consistentes (usar aws s3 ls s3://<bucket>/cur/v2/daily/ --recursive).
Paso 2: Actualizar la configuración paso a paso
Opción A: Desde la consola- Ir a AWS Billing > Cost & Usage Reports.
- Seleccionar el reporte y hacer clic en Edit.
- Modificar los parámetros deseados (ej: agregar
BILLINGENTITYen Additional schema elements). - Guardar y confirmar. Los cambios aplican en la próxima entrega (generalmente en 24 horas).
# Ejemplo: Agregar columna de RESOURCETYPE y cambiar a Parquet
aws costandusagereport update-cost-and-usage-report-configuration \
--report-name "prod-cur" \
--additional-schema-elements ["RESOURCETYPE"] \
--format Parquet \
--region eu-central-1Opción C: Para equipos con pipelines automatizados- Integrar la actualización en CI/CD usando el SDK:
import boto3
client = boto3.client('costandusagereport')
response = client.update_cost_and_usage_report_configuration(
ReportName='automated-cur',
TimeUnit='DAILY',
Format='Parquet',
AdditionalSchemaElements=['BILLINGENTITY']
)
print(response)
Paso 3: Validar y monitorear
- Verificar la integridad de los datos:
– Ejemplo de consulta en Athena:
SELECT COUNT(*) as line_items
FROM cur_v2_daily
WHERE billing_period = '2026-06';
- Configurar alertas:
– DeliveryStatus != SUCCESS (fallas en la exportación).
– LineItemsCount fuera de rango esperado (desvío >5%).
- Documentar cambios:
– Fecha de actualización.
– Parámetros modificados.
– Impacto en dashboards (ej: «Se agregó columna BILLINGENTITY en el reporte de costos»).
Conclusión
La capacidad de actualizar la configuración del CUR 2.0 sin recrear reportes es un avance clave para equipos que dependen de datos de costos en tiempo real. Ahora, los administradores pueden:
- Adoptar nuevas columnas (como
RESOURCETYPE) sin pausar pipelines. - Optimizar formatos (de CSV a Parquet) para reducir costos de almacenamiento y procesamiento.
- Ajustar granularidad (de HOURLY a DAILY) sin perder datos históricos.
- Priorizar la validación en entornos de prueba antes de aplicar cambios en producción.
- Automatizar las actualizaciones en CI/CD para evitar errores manuales.
- Monitorear los reportes post-cambio con consultas en Athena o herramientas como CloudZero.
Este cambio refleja una tendencia clara en AWS: flexibilizar la gestión de costos en la nube sin sacrificar estabilidad. Para equipos de DevOps e infraestructura, significa menos tiempo perdido en tareas repetitivas y más tiempo para optimizar arquitecturas.
Fuentes
- AWS What’s New: AWS Cost and Usage Report 2.0 ahora soporta actualizaciones de configuración de tablas
- AWS Cost and Usage Report User Guide: Actualizar configuración
- boto3 1.34.0 Release Notes
- AWS CUR Query Tool
