DEV Community

Cover image for Cuánto cuesta un proyecto IoT en AWS: cómo estimarlo
Steven Carvajal
Steven Carvajal

Posted on Originally published at iot.gripe

Cuánto cuesta un proyecto IoT en AWS: cómo estimarlo

Publicado originalmente en iot.gripe, como parte 22 de la serie "Domótica con ESP32 y AWS desde cero".

"¿Cuánto cuesta tener todo eso en AWS?" es la pregunta que aparece al final de cualquier proyecto en la nube. Para una casa, la respuesta corta es centavos de dólar al mes. La respuesta útil es saber qué cobra cada servicio, qué supuestos cambian la cuenta y cómo evitar sorpresas.

En esta última parte de la serie hacemos la estimación del proyecto de ejemplo con los supuestos a la vista, para que la adaptes al tuyo.

Antes de empezar: los precios de AWS cambian y dependen de la región. Las cifras son referencias aproximadas para us-east-1 al momento de escribir. Revisa la página de precios de cada servicio, o la AWS Pricing Calculator, antes de decidir.

Qué cobra cada servicio

Servicio Qué cobra Referencia aproximada
IoT Core: conexión Minutos que cada dispositivo está conectado ~0,08 USD por millón de minutos
IoT Core: mensajes Cada mensaje publicado o entregado (en bloques de 5 KB) ~1 USD por millón
IoT Core: Device Shadow Cada operación sobre un Shadow (en bloques de 1 KB) ~1,25 USD por millón
IoT Core: reglas Cada regla disparada y cada acción ejecutada ~0,15 USD por millón de cada una
Cognito Usuarios activos al mes, no sesiones Capa gratuita de miles de usuarios
Lambda Invocaciones y tiempo de ejecución 1 millón de invocaciones al mes gratis
DynamoDB bajo demanda Escrituras, lecturas y almacenamiento Fracciones de dólar por millón de operaciones; 25 GB gratis
Hosting de la web app Un sitio estático 0 en planes gratuitos

Los supuestos del proyecto de ejemplo

  • 1 hub conectado a AWS las 24 horas; los nodos hablan con él por ESP-NOW y no se conectan a AWS (parte 1).
  • 50 órdenes al día entre la app y la voz.
  • 1 sensor que envía una lectura cada minuto, guardada en DynamoDB con una regla (parte 14).
  • 3 usuarios en la casa.

La cuenta para una casa

Conexión: un mes tiene unos 43.200 minutos. Un dispositivo conectado todo el mes: 43.200 × 0,08 / 1.000.000 ≈ 0,004 USD.

Órdenes: cada orden genera unas pocas operaciones de Shadow (la app escribe desired, el hub reporta) y unos pocos mensajes (el delta al hub, las confirmaciones a la app). Con unas 6 por orden: 50 × 30 × 6 = 9.000 al mes ≈ 0,01 USD.

Telemetría: una lectura por minuto son 43.200 mensajes al mes, más 43.200 reglas disparadas, 43.200 acciones y 43.200 escrituras en DynamoDB:

Concepto Cálculo Costo aproximado
Mensajes 43.200 × 1 USD / millón 0,043 USD
Reglas y acciones 86.400 × 0,15 USD / millón 0,013 USD
Escrituras en DynamoDB 43.200 escrituras bajo demanda ~0,03 USD

Cognito, Lambda y hosting: dentro de las capas gratuitas.

Total: alrededor de 0,10 USD al mes por casa. Y fíjate en la proporción: la telemetría es más de la mitad del costo, aunque las órdenes son lo que el usuario ve.

Haz tu propia estimación

Cambia los supuestos (dispositivos, frecuencia de lecturas, órdenes) y mira cómo cambia cada partida. También está como página aparte en la calculadora de costos de AWS.

Qué dispara el costo

  • La frecuencia de la telemetría. Pasar de una lectura por minuto a una cada 10 segundos multiplica esa parte por 6. Pregúntate si de verdad necesitas tanta resolución, o si basta con enviar cuando el valor cambia.
  • Cada dispositivo conectado directamente. Con 20 dispositivos conectados a AWS en lugar de un hub, la conexión se multiplica por 20 (sigue siendo poco, pero se suma a mensajes de cada uno).
  • Mensajes grandes. Se cobran en bloques de 5 KB: un mensaje de 6 KB cuenta como dos.
  • Sondeo innecesario. Una app que pide el Shadow cada pocos segundos en lugar de suscribirse a los cambios.
  • Registros de depuración olvidados. Los registros de AWS IoT en nivel DEBUG en CloudWatch pueden costar más que todo lo demás.
  • Funciones que se llaman a sí mismas por error, o una regla que republica en su propio tópico: un bucle puede generar millones de invocaciones.

Y con mil casas

Casi todo escala de forma lineal: mil casas como la del ejemplo serían del orden de 100 USD al mes. Algunos detalles a esa escala:

  • Cognito sigue gratis hasta varios miles de usuarios activos; después cobra por usuario.
  • Los precios de IoT Core bajan por volumen en los tramos altos.
  • Aparecen costos de operación: registros, alarmas, quizá Fleet Indexing para un panel de administración.

Cómo vigilarlo

  1. Crea un presupuesto en AWS Budgets con un límite bajo (por ejemplo, 5 USD) y aviso por correo al 80 %. Es la defensa más simple contra un error caro.
  2. Activa Cost Explorer y revisa el desglose por servicio después del primer mes.
  3. Etiqueta los recursos del proyecto (por ejemplo, proyecto=casa-demo) para ver su costo por separado.
  4. Revisa los registros de CloudWatch: el nivel de detalle y el tiempo de retención.

Preguntas frecuentes

¿La capa gratuita de AWS cubre todo esto?

En gran parte. Cognito, Lambda y DynamoDB tienen capas gratuitas que no vencen. AWS IoT Core tuvo una capa gratuita de 12 meses para cuentas nuevas; revisa las condiciones actuales, que han cambiado.

¿Es más barato un servidor propio con Mosquitto?

Un servidor pequeño cuesta varios dólares al mes, siempre, y tienes que mantenerlo. Para pocos dispositivos, AWS IoT Core sale más barato. Con muchos dispositivos y mucha telemetría, la cuenta puede cambiar: lo comparo en Mosquitto vs AWS IoT Core.

¿Qué pasa si un dispositivo se vuelve loco y publica sin parar?

Con una política de mínimo privilegio, solo puede publicar en sus tópicos, pero cada mensaje cuenta. Un presupuesto con alarma te avisa a tiempo, y Device Defender puede detectar comportamientos anómalos como un pico de mensajes.

Fin de la serie

Con esta parte termina la serie. Repasamos la arquitectura, el hardware, la conexión con AWS, ESP-NOW, el Shadow, la base de datos, las APIs, la web app, la seguridad y los costos. El índice completo está en la página de la serie.

Top comments (0)