AWS IoT Greengrass
Runtime IoT que ejecuta procesamiento local, inferencia de machine learning y mensajería en dispositivos edge, integrándose de forma transparente con la nube
Descripción general
AWS IoT Greengrass es un runtime IoT que permite ejecutar funciones AWS Lambda, contenedores y modelos de machine learning de forma local en dispositivos edge. Los dispositivos continúan operando de forma autónoma incluso en entornos con conectividad de red inestable, sincronizando datos con la nube cuando se restablece la conexión. Greengrass V2 adopta una arquitectura basada en componentes que permite gestionar la distribución de software a los dispositivos en unidades de componentes individuales. Ofrece de forma integral las funcionalidades necesarias para edge computing, incluyendo componentes de inferencia ML que despliegan modelos entrenados con SageMaker en el edge, y funcionalidad IPC que media la mensajería Pub/Sub entre dispositivos locales.
Arquitectura basada en componentes y gestión de distribución
El núcleo de Greengrass V2 es un modelo de gestión de software basado en componentes. Cada funcionalidad (recopilación de logs, inferencia ML, conversión de protocolos, etc.) se empaqueta como un componente independiente que puede desplegarse, actualizarse y revertirse individualmente en los dispositivos. Las recetas de componentes (YAML/JSON) definen de forma declarativa scripts de ciclo de vida, dependencias y parámetros de configuración, distribuyéndose a grupos de dispositivos objetivo mediante la funcionalidad de despliegue en la nube de IoT Core. La resolución de dependencias se realiza automáticamente: si el componente A depende del componente B y B no está instalado, se instala automáticamente. Se adopta versionado semántico para la gestión de versiones, previniendo impactos en despliegues existentes al incrementar la versión mayor para cambios incompatibles. El propio Nucleus (runtime central) se gestiona como un componente y puede actualizarse vía OTA.
Inferencia ML en el edge y procesamiento de streams
El componente de inferencia ML de Greengrass proporciona un mecanismo para ejecutar modelos compilados con SageMaker Neo o modelos TensorFlow Lite en dispositivos edge. Elimina la ida y vuelta a la nube en casos de uso que requieren baja latencia, como detección de objetos en video de cámaras, detección de anomalías en sensores de vibración y detección de palabras clave en audio. Usando el componente Stream Manager, los resultados de inferencia y datos de sensores se almacenan en buffer localmente y se exportan a la nube con priorización según el ancho de banda disponible. Los destinos de exportación incluyen Kinesis Data Streams, IoT Analytics y S3, manteniendo los datos en almacenamiento local durante interrupciones de red. Libros relacionados con Edge AI (Amazon) permiten aprender patrones de diseño de inferencia en el edge.
Diseño de seguridad y operación de flotas a gran escala
La seguridad de los dispositivos Greengrass se basa en autenticación TLS mutua mediante certificados X.509. Para el aprovisionamiento de dispositivos, Fleet Provisioning permite grabar certificados temporales en la línea de fabricación y emitir automáticamente certificados de producción en la primera conexión, un flujo adecuado para despliegues a gran escala. La comunicación entre componentes locales se realiza mediante IPC (Inter-Process Communication), con políticas de autorización que restringen los temas y recursos accesibles por cada componente. En operaciones de flotas de decenas de miles de dispositivos, los dispositivos se clasifican en grupos thing y el riesgo se controla mediante despliegues graduales (10% → 50% → 100%). Se recomienda un diseño que monitorice la salud del despliegue con métricas de IoT Device Defender y active rollback automático ante detección de anomalías. El footprint de memoria de Nucleus es de aproximadamente 35MB, operando de forma estable incluso en dispositivos de clase Raspberry Pi.