← Volver al blog

Cómo evitar que AWS te cobre una millonada

// en este artículo

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:

  1. 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.
  2. Solo vive en Virginia. Los datos de facturación se guardan en la región us-east-1 y 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.
  3. 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:

  1. Crea un presupuesto de pocos dólares, con avisos de gasto real al 50, 80 y 100%, y uno de gasto proyectado al 80%.
  2. 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.
  3. 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.
  4. Revisa tus direcciones IP apartadas y suelta las que no uses.
  5. 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

También te puede interesar

Zonas de disponibilidad, o cómo tu app sobrevive a que se caiga un edificio

Leer →

AWS sacó una certificación de IA que no te pide programar

Leer →

Regiones de AWS, y por qué ahora hay una en Querétaro

Leer →