Detección de anomalías de costes - Descubrimiento temprano de gastos inesperados con AWS Cost Anomaly Detection

Se explica la detección automática de anomalías de costes con AWS Cost Anomaly Detection. Se presentan la detección de anomalías basada en ML, la configuración de monitores, las notificaciones SNS/Slack y la elección entre este servicio y Budgets.

La necesidad de la detección de anomalías de costes

En la gestión de costes en la nube, las alertas basadas en umbrales de Budgets son eficaces, pero no pueden capturar todas las anomalías. Por ejemplo, supongamos un entorno con un presupuesto mensual de 10,000 USD en el que un gasto que normalmente ronda los 300 USD al día salta de repente a 800 USD un día. En situaciones como esta, hay casos en los que se quiere detectar el problema antes de que se active la alerta de exceso de presupuesto de fin de mes. AWS Cost Anomaly Detection es un servicio que aprende los patrones de costes pasados con un modelo de ML y detecta automáticamente las variaciones del gasto que se apartan de lo normal. Como juzga con una línea base dinámica en lugar de un umbral fijo, permite una detección de anomalías de alta precisión que tiene en cuenta las variaciones estacionales (como el aumento del procesamiento por lotes a fin de mes) y las tendencias (un uso que aumenta gradualmente). Mientras que Budgets notifica con un umbral predefinido como «se ha alcanzado el 80% del presupuesto», Cost Anomaly Detection notifica con un juicio dinámico como «se ha desviado del patrón normal». Ambos son complementarios, y se recomienda usarlos de forma conjunta.

Configuración de monitores y suscripciones

Cost Anomaly Detection se compone de dos elementos: los monitores (qué se supervisa) y las suscripciones (cómo se notifica). Los monitores son de cuatro tipos según la dimensión que supervisan, a saber, servicios de AWS, cuentas vinculadas, etiquetas de asignación de costes y categorías de costes, y cada uno se crea con uno de dos métodos, «administrado por AWS» o «administrado por el cliente». Un monitor administrado por AWS realiza un seguimiento automático de los valores de una dimensión y mantiene la cobertura sin configuración adicional aunque se añadan nuevas cuentas, valores de etiqueta o categorías. Evalúa de forma individual hasta 5,000 valores por dimensión (si hay más de 5,000 valores, realiza el seguimiento de los 5,000 principales), y se recomienda un monitor administrado por AWS para las dimensiones principales en las que se quiere supervisar toda la organización de forma integral. Por otro lado, en un monitor administrado por el cliente (antes llamado monitor personalizado) se seleccionan manualmente hasta 10 valores que se quieren supervisar (solo un valor en el caso de las categorías de costes). Los valores seleccionados se agrupan en un único grupo y se evalúan de forma sumada. Es adecuado cuando se quiere cambiar el umbral para cada valor o cuando se quiere supervisar solo un pequeño número de cuentas / equipos específicos. El monitor de servicios de AWS supervisa de forma individual los costes de todos los servicios y detecta anomalías en servicios específicos. Es el más versátil y el monitor que debe configurarse en primer lugar (los servicios de AWS solo se ofrecen con el método administrado por AWS). Con el método administrado por AWS, el monitor de cuentas vinculadas evalúa de forma individual cada una de las cuentas miembro de Organizations, y las cuentas nuevas también se incorporan automáticamente a la supervisión (solo puede crearse en la cuenta de administración). Con el método administrado por el cliente, evalúa la suma del gasto de hasta 10 cuentas seleccionadas manualmente, por lo que se utiliza cuando se quiere vigilar en conjunto un proyecto o un entorno específico. El monitor de etiquetas de asignación de costes supervisa los costes agrupados por los valores de una etiqueta específica (Environment, Project, etc.), y el monitor de categorías de costes supervisa los costes de los grupos definidos en Cost Categories.

# Crear un monitor de servicios
aws ce create-anomaly-monitor \
  --anomaly-monitor '{"MonitorName":"all-services","MonitorType":"DIMENSIONAL","MonitorDimension":"SERVICE"}' \
  --region us-east-1

# Crear una suscripción (notificación)
aws ce create-anomaly-subscription \
  --anomaly-subscription '{
    "SubscriptionName": "cost-alerts",
    "MonitorArnList": ["arn:aws:ce::123:anomalymonitor/xxxx"],
    "Subscribers": [{"Type": "SNS", "Address": "arn:aws:sns:us-east-1:123:cost-anomaly"}],
    "Frequency": "DAILY",
    "ThresholdExpression": {"Dimensions": {"Key": "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "Values": ["100"], "MatchOptions": ["GREATER_THAN_OR_EQUAL"]}}
  }' \
  --region us-east-1

En la suscripción se pueden configurar la frecuencia de notificación (inmediata, diaria, semanal) y un umbral del importe del impacto (por ejemplo, notificar solo las anomalías de 100 USD o más).

Análisis de causa raíz y respuesta

Cuando Cost Anomaly Detection detecta una anomalía, ejecuta automáticamente un análisis de causa raíz (Root Cause Analysis). Se identifican el servicio, la cuenta, la región y el tipo de uso que causaron la anomalía, y se incluyen en la notificación. Por ejemplo, se proporciona información concreta como «el uso de RunInstances de EC2 en la región ap-northeast-1 aumentó a 3 veces lo normal». También se calcula el importe del impacto de la anomalía (el exceso sobre la línea base normal), por lo que se puede juzgar la prioridad de la respuesta. Gracias a la integración con Cost Explorer, se puede profundizar en el desglose de costes del periodo en que se detectó la anomalía y consultar los detalles. Entre las causas típicas de las anomalías se encuentran los recursos olvidados en entornos de desarrollo, el escalado horizontal imprevisto de Auto Scaling, el aumento repentino del volumen de transferencia de datos, los cargos por probar servicios nuevos y la creación de recursos mediante accesos no autorizados. Cuando se detecta una anomalía, primero se identifica la causa; si se trata de un cambio intencionado (como el lanzamiento de una nueva función), se archiva la anomalía, y si es un cambio no intencionado, se toman medidas.

Elección entre este servicio y Budgets, y operación

Cost Anomaly Detection y Budgets son complementarios, y usarlos de forma conjunta es lo más eficaz. Budgets gestiona los costes con un umbral absoluto como «notificar si es probable que se superen los 10,000 USD al mes», y evita los excesos de presupuesto. Cost Anomaly Detection detecta de forma temprana las variaciones inesperadas con un juicio relativo como «detectar el gasto que se desvía del patrón normal». Por ejemplo, supongamos que en un entorno con un presupuesto mensual de 10,000 USD se produce a principios de mes un gasto anómalo de 500 USD al día. En ese caso, la alerta del 80% de Budgets (8,000 USD) se activa en la segunda mitad del mes, pero Cost Anomaly Detection detecta la anomalía y la notifica ya al día siguiente. Como buena práctica de operación, se recomienda empezar creando un monitor de servicios de AWS que supervise todos los servicios, con una configuración que notifique a diario las anomalías con un impacto de 100 USD o más. Cost Anomaly Detection se puede usar de forma totalmente gratuita y se configura a través de la API de Cost Explorer (región us-east-1).

Ajuste para reducir los falsos positivos

Para operar la detección de anomalías de costes de forma práctica, es importante ajustarla para que las notificaciones se mantengan con una frecuencia adecuada. Si el umbral es demasiado bajo, las alertas saltan con frecuencia incluso ante variaciones normales y, con el tiempo, se acaban ignorando. Por el contrario, si es demasiado alto, se pasan por alto las anomalías reales. Al dividir adecuadamente el objeto de supervisión en unidades como servicios, cuentas y categorías de costes, se puede lograr una detección de alta precisión que tiene en cuenta el contexto de las variaciones. Cuando se produce una detección, se analiza en retrospectiva si se trataba de una anomalía real o de una variación prevista, y el resultado se refleja en la revisión de la configuración. Ajustar de forma continua la precisión de la detección y mantener un estado en el que solo se notifiquen las variaciones del gasto que realmente requieren atención es la clave para que la operación no se convierta en una mera formalidad.

Resumen - Pautas para aprovechar Cost Anomaly Detection

AWS Cost Anomaly Detection es un servicio que descubre de forma temprana las variaciones inesperadas de los costes mediante una detección de anomalías dinámica basada en ML. Como detecta las desviaciones respecto a los patrones pasados en lugar de usar umbrales fijos, ofrece alertas de alta precisión que tienen en cuenta las variaciones estacionales y las tendencias. Sus principales puntos fuertes son la identificación de la causa mediante el análisis de causa raíz, las alertas inmediatas mediante notificaciones SNS y el análisis detallado gracias a la integración con Cost Explorer. Se puede usar de forma totalmente gratuita y su configuración se completa en unos minutos, por lo que se recomienda activarlo en todas las cuentas de AWS. Al usarlo de forma conjunta con Budgets, se puede construir un sistema doble de supervisión de costes basado en umbrales y basado en ML.

Referencias (recursos oficiales de AWS)

Las fuentes primarias de esta página son el sitio web y la documentación oficiales de AWS. Consulta las páginas oficiales siguientes para conocer las especificaciones y los precios más recientes.

Si esta página y la documentación oficial difieren, prevalece la documentación oficial.

Compartir