La historia se repite en todos los foros. Alguien entra a AWS (Amazon Web Services) a aprender, deja algo prendido, y semanas después le llega una factura de cuatro o cinco cifras.
Ya dijimos en el artículo de introducción la regla que explica el susto: AWS no tiene un tope duro de gasto. No existe una casilla de "apágame todo al llegar a 20 dólares".
Lo que casi nadie cuenta es que sí hay frenos. Son cuatro, se arman en una tarde, y cada uno tapa un hueco distinto. También hay cosas que cobran mientras tú juras que no estás usando nada, y esas valen la pena conocerlas antes de prender el primer servidor.
Primero, por qué te enteras tarde
Antes de los candados hay que entender de dónde sale el susto, porque no es que AWS te esconda el gasto. Es que el gasto tarda en aparecer.
AWS Budgets, el sistema de presupuestos, se actualiza hasta tres veces al día. Entre una actualización y la siguiente pasan típicamente de 8 a 12 horas. La documentación lo dice sin adornos: puedes rebasar tu umbral y seguir gastando antes de que te llegue la notificación.
Cost Explorer, el explorador de costos, trae hasta 24 horas de retraso. Y la detección de anomalías, que se apoya en esos datos, hereda el mismo retraso.
Ahí está la explicación de las facturas de terror nocturnas. Si a las 11 de la noche un bot empieza a prender servidores con tus llaves robadas, el aviso puede llegarte cuando ya amaneciste. La vigilancia sirve, pero llega con horas de atraso, así que la estrategia no puede ser solo enterarse. Tiene que incluir frenar.
Candado 1: un presupuesto con alertas
Es el primero porque es el que cubre todo y no cuesta nada. El monitoreo de AWS Budgets no se cobra.
Creas un presupuesto de costo con un monto mensual, digamos 10 dólares, y le pones umbrales de aviso. Lo que muchos no configuran es que hay dos tipos de alerta, y los dos sirven para cosas distintas:
- Costo real: te avisa cuando ya gastaste ese porcentaje. Llega tarde por definición.
- Costo proyectado: te avisa cuando AWS calcula que vas a acabar el mes rebasando el presupuesto, aunque hoy lleves poquito. Esta es la que de verdad te salva, porque se dispara antes de que el daño esté hecho.
Una configuración razonable para una cuenta de aprendizaje es avisar al 50%, 80% y 100% del gasto real, más un aviso al 80% del proyectado. Los avisos pueden ir a tu correo o a un tema de Amazon SNS (Simple Notification Service), que es el servicio de notificaciones y es lo que te permite mandarlos a Slack o a una aplicación de chat.
Y un detalle práctico: el presupuesto también puede ser de uso, no solo de dinero. Si lo que te preocupa es pasarte de los límites de la capa gratuita, un presupuesto de uso es más directo que uno de costo.
Candado 2: la alarma de facturación
Esta vive en otro lado y por eso se salta tanto: no está en Budgets, está en CloudWatch, el servicio de monitoreo.
Tiene tres peculiaridades que valen oro y que casi ningún tutorial menciona:
- Hay que prenderla primero. En las preferencias de facturación existe una casilla que dice recibir alertas de facturación en CloudWatch. Si no la activas, la métrica ni siquiera existe. Después de activarla, tarda unos 15 minutos en aparecer.
- Solo vive en Virginia. Los datos de facturación se guardan en la región
us-east-1y representan los cargos de todo el mundo. Si creas la alarma parada en otra región, no vas a encontrar la métrica y vas a pensar que está descompuesto. - No proyecta. Se dispara cuando el cargo real ya pasó el número que pusiste, sin adivinar a dónde va el mes.
¿Para qué la quieres si ya tienes un presupuesto? Porque es un segundo aviso por otro camino, con otra configuración y otra lista de correos. Cuando lo que está en juego es tu tarjeta, la redundancia se agradece.
Candado 3: el freno que sí frena
Este es el que casi nadie conoce y el que cambia la conversación, porque es la respuesta concreta a "la alarma solo avisa".
AWS Budgets tiene acciones de presupuesto. Al cruzar un umbral, además de mandarte correo, puede ejecutar algo por ti:
- Aplicar una política de denegación de IAM (Identity and Access Management, el sistema de permisos) a un usuario, grupo o rol, para que no pueda seguir creando recursos.
- Aplicar una SCP (service control policy, política de control de servicios), que es la versión que aplica a toda una cuenta dentro de una organización.
- Apagar máquinas específicas de Amazon EC2 (Elastic Compute Cloud, los servidores) o de Amazon RDS (el servicio de bases de datos).
Y puede hacerlo de dos formas: automática, o previa aprobación tuya. La automática es la que de verdad frena a las 3 de la mañana.
Sobre el costo: los primeros dos presupuestos con acciones son gratis cada mes, sin importar cuántas acciones configures en cada uno. A partir del tercero, cuestan 0.10 dólares por día cada uno.
Ahora la letra chiquita, porque esto no es un tope duro y prometerlo sería mentir:
- Llega con el mismo retraso que todo lo demás, así que frena a las horas, no al segundo.
- Una política de denegación evita que se creen recursos nuevos, pero no apaga lo que ya estaba corriendo. Por eso conviene combinar la política con apagar máquinas.
- Si el gasto viene de un servicio que no estás limitando, la acción no lo toca.
Aun así, la diferencia entre una noche mala y una factura impagable suele ser justo esto.
Candado 4: detección de anomalías
Los tres anteriores vigilan un número que tú pusiste. Este vigila tu patrón de gasto, que es distinto.
La detección de anomalías de costos usa modelos de aprendizaje automático para aprender cómo gastas normalmente, incluida la estacionalidad (que gastes más los lunes, por ejemplo), y te avisa cuando algo se sale de lo normal. Además te muestra la causa probable, desglosada por servicio, cuenta, región o tipo de uso.
Corre aproximadamente tres veces al día. Hereda el retraso de hasta 24 horas de Cost Explorer, y para un servicio que acabas de estrenar necesita unos 10 días de historia antes de poder detectarle algo raro.
Sirve para el caso que los presupuestos no ven: cuando el total del mes todavía se ve normal, pero un servicio que siempre costaba centavos de pronto cuesta cientos.
Lo que cobra aunque no lo estés usando
Esta sección es la que más dinero le ahorra a la gente que está aprendiendo, porque son cargos que no se sienten como "uso".
Las direcciones IP públicas. Desde el 1 de febrero de 2024, AWS cobra 0.005 dólares por hora por cada dirección IPv4 pública, y aquí está el detalle: cobra estén en uso o no. Una dirección apartada y olvidada cuesta lo mismo que una trabajando. Son unos 3.65 dólares al mes por dirección si la dejas todo el mes.
Los discos de una máquina apagada. Cuando detienes una máquina virtual dejas de pagar por su uso, eso es cierto. Pero el disco sigue existiendo y el disco sí se cobra. La documentación de AWS lo dice textual: no te cobran uso ni transferencia mientras está detenida, y sí te cobran el almacenamiento de los volúmenes de Amazon EBS (Elastic Block Store, los discos).
Ahí está la trampa clásica del tutorial: "apaga tu instancia para no gastar". Apagarla detiene lo caro, no detiene todo.
Y las llaves de acceso, que siguen siendo la causa número uno de las facturas absurdas. Una llave subida a un repositorio público la encuentran bots en minutos, y lo que sigue es minería de criptomonedas pagada por ti. Eso se previene del lado de los permisos, y lo cubrimos en el artículo de IAM.
La rutina de diez minutos
Si vas a crear tu cuenta hoy, este es el orden que tiene sentido. Todo esto va antes de prender el primer servidor:
- Crea un presupuesto de pocos dólares, con avisos de gasto real al 50, 80 y 100%, y uno de gasto proyectado al 80%.
- Prende la casilla de alertas de facturación en las preferencias, espera 15 minutos, y crea la alarma parada en la región de Virginia.
- Configura una acción en tu presupuesto al 100%: que aplique una política de denegación y apague las máquinas de prueba que tengas.
- Revisa tus direcciones IP apartadas y suelta las que no uses.
- Borra lo que dejes de usar. Detener una máquina no borra su disco, y el disco cobra.
La nube es maravillosa porque crece sola cuando la necesitas. Ese mismo superpoder es el que te cobra de más si nadie la está viendo. No es para tenerle miedo, es para entrar con el cinturón puesto.
Fuentes
- AWS, administrar costos con AWS Budgets: actualización hasta tres veces al día con 8 a 12 horas entre una y otra, tipos de presupuesto, alertas de gasto real y proyectado, y el aviso sobre el retraso
- AWS, configurar acciones de presupuesto: política de IAM, SCP, instancias de EC2 y RDS, ejecución automática o con aprobación
- AWS Budgets, precios: los dos primeros presupuestos con acciones sin costo al mes y 0.10 dólares por día a partir del tercero
- AWS, crear una alarma de facturación en CloudWatch: activar las alertas en preferencias, los 15 minutos de espera, los datos guardados en
us-east-1y que la alarma no usa proyecciones - AWS, detección de anomalías de costos: modelos de aprendizaje automático, tres ejecuciones al día, retraso de hasta 24 horas y los 10 días de historia para un servicio nuevo
- AWS, nuevo cargo por direcciones IPv4 públicas: 0.005 dólares por hora desde el 1 de febrero de 2024, en uso o inactivas
- AWS, estados de una instancia de EC2 y su facturación: una instancia detenida no genera cargos de uso, y los volúmenes de EBS sí se cobran