Cloud, DevOps e IoT en español

AWS IoT Core: qué es, cómo funciona y cuándo usarlo en tu proyecto

15 de octubre de 2026 · Steven Carvajal

Código de este artículo en GitHub →

AWS IoT Core es el servicio de Amazon Web Services para conectar dispositivos a la nube. En la práctica es un broker MQTT administrado con todo lo que un proyecto serio necesita alrededor: identidad por dispositivo, permisos finos, estado guardado aunque el dispositivo esté apagado y reglas para enviar los datos a otros servicios.

En esta guía te explico sus piezas, cómo encajan y qué cuesta, con ejemplos prácticos con ESP32.

Para qué sirve

Imagina que tienes un ESP32 en casa y quieres controlarlo desde el celular, estés donde estés. Necesitas:

  1. un punto en internet al que el ESP32 se conecte y se mantenga conectado;
  2. una forma de que solo tu ESP32 pueda conectarse como tal;
  3. una forma de enviarle órdenes y saber si las cumplió;
  4. que, si estaba apagado, al volver sepa qué se le pidió.

AWS IoT Core resuelve las cuatro sin que mantengas ningún servidor.

Las piezas principales

PiezaQué hace
Device gateway y broker de mensajesRecibe las conexiones de los dispositivos (MQTT, MQTT sobre WebSocket o HTTPS) y reparte los mensajes por tópicos
Things (registro)La representación de cada dispositivo en la nube
Certificados X.509La identidad de cada dispositivo: así se autentica, sin usuario ni contraseña
Políticas de IoTQué puede hacer cada certificado: conectarse con qué nombre, publicar y suscribirse a qué tópicos
Device ShadowUn documento JSON por dispositivo con el estado deseado y el estado reportado
ReglasConsultas tipo SQL sobre los mensajes para enviarlos a Lambda, DynamoDB, S3 y otros servicios
JobsTareas para flotas de dispositivos, como actualizaciones de firmware
Device DefenderAuditoría de configuración y detección de comportamientos anómalos

Cómo se conecta un dispositivo

Un ESP32 se conecta por MQTT sobre TLS (puerto 8883) al endpoint de tu cuenta. En lugar de usuario y contraseña, presenta su certificado X.509 y su llave privada. AWS comprueba el certificado y aplica la política adjunta.

Una buena política solo permite lo mínimo: conectarse con su propio nombre y usar los tópicos de su propio Shadow. Nada de "Resource": "*", que permitiría a quien robe el certificado publicar en cualquier tópico de tu cuenta.

El paso a paso completo, con la política mínima y el código para Arduino, está en la parte 3 de la serie de domótica.

Los navegadores y las apps se conectan de otra forma: por MQTT sobre WebSocket con una URL firmada con SigV4, el esquema de firma de AWS. Las credenciales suelen venir de Cognito, o de una Lambda que firma la URL; lo explico en la parte 10.

El Device Shadow: el estado que sobrevive

El Device Shadow es la pieza que más trabajo ahorra. Es un documento JSON que AWS guarda por cada dispositivo:

{
  "state": {
    "desired":  { "led": "on" },
    "reported": { "led": "off" }
  }
}

Cuando no coinciden, AWS publica un delta en un tópico reservado; el dispositivo lo recibe, actúa y reporta. Si estaba desconectado, al volver pide el documento completo y se pone al día. Con tópicos propios, un mensaje enviado mientras el dispositivo estaba apagado simplemente se perdería.

Los Shadows con nombre permiten separar documentos, por ejemplo el estado de las luces y la configuración (parte 5).

Reglas: llevar los datos a otros servicios

Una regla es una consulta tipo SQL sobre los mensajes que llegan:

SELECT temperatura, humedad, timestamp() AS ts
FROM 'casa/+/sensores'
WHERE temperatura > 30

Y una acción que se ejecuta con cada resultado: invocar una Lambda, guardar en DynamoDB, escribir en S3, enviar a una cola, etc. Sirve para guardar históricos, generar alertas o integrar con otros sistemas sin código en el dispositivo.

Con qué se combina en un proyecto real

AWS IoT Core rara vez va solo. Lo habitual es combinarlo con:

Cuánto cuesta

AWS IoT Core cobra por uso, en varias dimensiones:

ConceptoReferencia (us-east-1)
Conexión~0,08 USD por millón de minutos conectados
Mensajes~1 USD por millón de mensajes, medidos en bloques de 5 KB
Device Shadow y registro~1,25 USD por millón de operaciones
ReglasPor regla ejecutada y por acción

Un dispositivo conectado todo el mes son unos 43.200 minutos: menos de medio centavo de dólar. Para un proyecto doméstico el costo es casi nulo; cómo estimarlo para tu proyecto, también para miles de casas, está en la parte 22. Los precios cambian: revisa la página oficial antes de decidir.

Límites que conviene conocer

Alternativas

Google retiró su servicio equivalente, Cloud IoT Core, en 2023.

Preguntas frecuentes

¿Necesito AWS IoT Core para controlar un ESP32 por internet?

No es la única forma, pero sí una de las más seguras y sin mantenimiento: identidad por dispositivo, permisos finos y estado guardado sin servidores propios.

¿Qué pasa si el dispositivo pierde la conexión?

El Shadow conserva el estado deseado. Al reconectarse, el dispositivo pide el documento y se pone al día. Conviene que lo pida siempre al conectar, en lugar de depender de recibir un delta.

¿Puedo usar PubSubClient con AWS IoT Core?

Mucha gente lo hace. En mi caso, con un ESP32-S3, las publicaciones se perdían aunque la librería reportara éxito, y la librería MQTT de 256dpi lo resolvió.

¿Por qué AWS cierra la conexión de mi dispositivo?

Casi siempre es la política: el dispositivo se conecta con un client ID no permitido, o publica o se suscribe a un tópico que no tiene autorizado. Suscríbete a $aws/events/presence/# en el cliente de prueba de la consola para ver cuándo y por qué se desconecta (parte 5).

Todos los artículos sobre AWS IoT y serverless

Sigue leyendo