¿Qué es AWS Greengrass?

AWS Greengrass es la apuesta de la plataforma de Amazon, AWS IoT para delegar parte del procesamiento IoT en el edge, antes de ser enviado a plataforma. Proporciona un framework software para construir aplicaciones en los dispositivos.

En palabras de Amazon, AWS Greengrass extiende AWS a nuestros dispositivos, para que de forma local puedan actuar con los datos que generan.

Los beneficios de Greengrass son:

  • Respuesta a eventos en local de forma rápida
  • Capacidad de operar en modo offline
  • Modelo de programación simplificado en base a funciones Lambda de AWS

Con AWS Greengrass los dispositivos no funcionan de forma aislada entre sí, sino que es posible definir en campo una arquitectura de Gateway concentrador de dispositivos, para gestionar conjuntos de ellos en una red local, de manera que aunque estén desconectados de la plataforma AWS IoT, Greengrass proporcione la capacidad de mensajería MQTT (estándar de facto de la plataforma AWS IoT) y el gateway concentrador de todos los dispositivos, así como el API cliente del broker al resto:

AWS Greengrass se basa en dos componentes, para proprociar la arquitectura de Gateway concentrador de dispositivos:

  • Greengrass Core (GSC): Proporciona la funcionalidad de concentrador dando las siguientes capacidades:
  • Ejecución de funciones Lambda, incluyendo Interacción directa con otros servicios en AWS.
  • Seguridad integrada con modelo definido en la plataforma cloud AWS IoT.
  • Gestión de sombras de dispositivo. En AWS IoT, la sombra del dispositivo es el estado virtual que tiene un dispositivo en la plataforma en función del ultimo estado reportado y las modificaciones que se hayan hecho sobre él y no estén confirmadas con el dispositivo físico, de manera que cuando se realice la sincronización con el dispositivo físico, su estado tiene que ser consolidado con su sombra en la plataforma.
  • Capacidades de broker de mensajería MQTT en red local
  • SDK de AWS IoT: API que permite tanto conectar directamente con el broker MQTT de AWS IoT, como con el del nodo que hace las veces de Greengrass Core de su grupo en la red local.

En un poco más de detalle, las capacidades de AWS Greengrass para el dispositivo que hace las veces de Core (Gateway del grupo) son:

  • Local Lambda:

Son Funciones de código asociadas a eventos (de mensajería MQTT o de cambios en la sombra de un dispositivos). Pueden desarrollarse en la plataforma AWS IoT y desplegarse en desde remoto a los dispositivos en campo.

Se escriben en lenguaje Python 2.7 y permiten ejecutar lógica de negocio en local para realizar cualquier operación (lógica de control, filtrado y agregado de datos…) tanto en modo conectado como desconectado de la plataforma AWS IoT.

  • Gestión de sombras:

Ya introducido anteriormente. Se trata del mantenimiento por cada dispositivo de un documento JSON que representa el estado lógico de un dispositivo. Pueden mantenerse en local o sincronizarse con el cloud. Manteniendo el ultimo estado real conocido, el deseado en base a los cambios no confirmados por el dispositivo y el listado de cambios no confirmados

  • Mensajería MQTT

Broker de mensajería MQTT entre los dispositivos del grupo con capacidad de funcionamiento offline en la red local, sin necesidad de utilizar la mensajería del servicio AWS IoT.

  • Seguridad

Autenticación mutua entre dispositivos, tanto en modo local contra el cloud. Los certificados en los dispositivos se pueden asociar con las credenciales del proceso Signature V4 de AWS en servidor para autenticar peticiones.

 

Como funciona AWS Greengrass: Este video es bastante clarificador (https://www.youtube.com/watch?v=1rLxPOxVJoQ&feature=youtu.be). En resumen:

La gestión integral se hace mediante la plataforma cloud AWS IoT, donde se tienen que dar de alta los dispositivos y conjuntos de dispositivos que conforman un grupo Greengrass.

Un grupo tiene que tener en el cloud de AWS IoT una configuración (definición de grupo):

  • El primer paso para crear un grupo Greengrass es definir el dispositivo que hace las veces de Greengrass core del grupo en su configuración en el cloud de AWS IoT. Todos los grupos necesitan tener un Greengrass core, siendo este, el dispositivo físico donde se instala el software de Greengrass.
  • Una vez instalado el software de Greengrass core en el dispositivo, este ya se puede conectar al cloud de AWS IoT.
  • A continuación se continua definiendo el grupo en cloud en AWS IoT dando de alta el resto de dispositivos y/o las funciones Lambda a ejecutar en el dispositivo que tiene el Greengrass core, que se despliegan de forma remota en el dispositivo core

Así que a grandes rasgos Greengass nos proporciona un nodo concentrador, cuyo software (funciones Lambda) y configuración se ha hecho en servidor, que proporciona un broker MQTT para centraliza el tráfico del resto de dispositivos del grupo, y hace de pasarela a AWS IoT:

image021

 

 

image022

 

¿Es posible utilizar Greengrass core como solución Edge para otras plataformas?

No hemos encontrado nada al respecto en la documentación, pero parece difícil, ya que todos los conceptos, como grupo de dispositivos, sombra, funciones lambda, políticas de seguridad… están muy ligados al cloud de AWS IoT y al resto de productos de AWS. Pej: Desde las funciones Lambda ejecutadas en edge se pueden invocar servicios del resto de la suite de AWS sin pasar por las reglas del broker de AWS IoT.

Ademas, los dispositivos y grupos de dispositivos son conceptos gestionados en el cloud ee AWS IoT:

Para crear un grupo

aws greengrass create-group –name “GreengrassGroupName”

Para registrar un device:

aws iot describe-thing –thing name pump1

No obstante, el modelo de precios para Greengrass es por dispositivos y no por mensajes procesados, por lo que tal vez podría plantearse un modelo hibrido que solo contemplase en AWS la gestión de dispositivos:

Anuncios

Un comentario en “¿Qué es AWS Greengrass?

  1. Pingback: Comparativa solución Edge Sofia2 – AWS IoT – Blog de Sofia2 IoT Platform

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s