Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Implemente aplicaciones en contenedores si se AWS IoT Greengrass V2 ejecutan como un contenedor Docker
Salih Bakir, Giuseppe Di Bella y Gustav Svalander, Amazon Web Services
Resumen
AWS IoT Greengrass Version 2, cuando se implementa como un contenedor de Docker, no admite la ejecución de contenedores de aplicaciones de Docker de forma nativa. Este patrón le muestra cómo crear una imagen de contenedor personalizada basada en la última versión AWS IoT Greengrass V2 que habilite la funcionalidad Docker-in-Docker (DiND). Con DiND, puede ejecutar aplicaciones en contenedores dentro del entorno. AWS IoT Greengrass V2
Puede implementar este patrón como una solución independiente o integrarlo con plataformas de organización de contenedores como Amazon ECS Anywhere. En cualquiera de los dos modelos de implementación, mantiene todas las AWS IoT Greengrass V2 funciones, incluidas las capacidades de procesamiento AWS IoT SiteWise perimetral, al tiempo que permite implementaciones escalables basadas en contenedores.
Requisitos previos y limitaciones
Requisitos previos
Un activo. Cuenta de AWS
Para conocer AWS IoT Greengrass Version 2 los requisitos previos generales, consulte los requisitos previos en la AWS IoT Greengrass Version 2 documentación.
Docker Engine, instalado y configurado en Linux, macOS o Windows.
Docker Compose (si utiliza la interfaz de línea de comandos (CLI) de Docker Compose para ejecutar imágenes de Docker).
Un sistema operativo Linux.
Un hipervisor con un servidor host que admite la virtualización.
Requisitos del sistema:
2 GB de RAM (mínimo)
5 GB de espacio disponible en disco (mínimo)
Para AWS IoT SiteWise Edge, una CPU x86_64 de cuatro núcleos con 16 GB de RAM y 50 GB de espacio disponible en disco. Para obtener más información sobre el procesamiento de AWS IoT SiteWise datos, consulte los requisitos del paquete de procesamiento de datos en la documentación. AWS IoT SiteWise
Versiones de producto
AWS IoT Greengrass Version 2 versión 2.5.3 o posterior
Docker-in-Docker versión 1.0.0 o posterior
Docker Compose versión 1.22 o posterior
Docker Engine, versión 20.10.12 o posterior
Limitaciones
Algunas Servicios de AWS no están disponibles en todas las versiones. Regiones de AWS Para obtener información sobre la disponibilidad en regiones, consulte AWS Services by Region
. Para ver los puntos de conexión específicos, consulte Service endpoints and quotas y elija el enlace del servicio.
Arquitectura
Pila de tecnología de destino
Fuentes de datos: dispositivos de IoT, sensores o equipos industriales que generan datos para su procesamiento
AWS IoT Greengrass V2— Funciona como un contenedor Docker con D-in-D capacidades, implementado en infraestructuras perimetrales
Aplicaciones en contenedores: aplicaciones personalizadas que se ejecutan en el AWS IoT Greengrass V2 entorno como contenedores Docker anidados
(Opcional) Amazon ECS Anywhere: organización de contenedores que gestiona la implementación de AWS IoT Greengrass V2 contenedores
Otros Servicios de AWS: AWS IoT Core AWS IoT SiteWise, y otros Servicios de AWS para el procesamiento y la administración de datos
Arquitectura de destino
El siguiente diagrama muestra un ejemplo de arquitectura de implementación de destino que utiliza Amazon ECS Anywhere, que es una herramienta de administración de contenedores.

En el diagrama, se muestra el siguiente flujo de trabajo:
1: Almacenamiento de imágenes de contenedores: Amazon ECR almacena las imágenes del AWS IoT Greengrass contenedor y cualquier contenedor de aplicaciones personalizadas necesario para el procesamiento perimetral.
2 y 3: Despliegue de contenedores: Amazon ECS Anywhere despliega la imagen del AWS IoT Greengrass contenedor desde Amazon ECR en la ubicación perimetral, gestionando el ciclo de vida del contenedor y el proceso de despliegue.
4: Despliegue de componentes: el AWS IoT Greengrass núcleo implementado despliega automáticamente sus componentes relevantes en función de su configuración. Los componentes incluyen AWS IoT SiteWise Edge y otros componentes de procesamiento perimetral necesarios dentro del entorno contenerizado.
5: Ingesta de datos: una vez que esté completamente configurado, AWS IoT Greengrass comienza a ingerir datos de telemetría y sensores de varias fuentes de datos de IoT en la ubicación perimetral.
6: Procesamiento de datos e integración en la nube: el AWS IoT Greengrass núcleo contenerizado procesa los datos de forma local mediante sus componentes desplegados (incluido AWS IoT SiteWise Edge para datos industriales). Luego, envía los datos procesados a los Nube de AWS servicios para su posterior análisis y almacenamiento.
Tools (Herramientas)
Servicios de AWS
Amazon ECS Anywhere le ayuda a implementar, usar y gestionar las tareas y los servicios de Amazon ECS en su propia infraestructura.
Amazon Elastic Compute Cloud (Amazon EC2) proporciona una capacidad informática escalable en el Nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.
Amazon Elastic Container Registry (Amazon ECR) es un servicio de registro de imágenes de contenedor administrado que es seguro, escalable y fiable.
AWS IoT Greengrass es un servicio en la nube y de tiempo de ejecución en la periferia de Internet de las cosas (IoT) de código abierto que ayuda a crear, implementar y administrar aplicaciones de IoT en los dispositivos.
AWS IoT SiteWise lo ayuda a recopilar, modelar, analizar y visualizar datos de equipos industriales a escala.
Otras herramientas
Docker
es un conjunto de productos de plataforma como servicio (PaaS) que utiliza la virtualización a nivel del sistema operativo para entregar software en contenedores. Docker Compose
es una herramienta para definir y ejecutar aplicaciones de varios contenedores. Docker Engine
es una tecnología de contenerización de código abierto para crear y contenedorizar aplicaciones.
Repositorio de código
Epics
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Clona y navega hasta el repositorio. | Para clonar el repositorio, utilice el siguiente comando:
Para navegar hasta el
| DevOps ingeniero, AWS DevOps |
Cree la imagen de Docker. | Para crear la imagen de Docker con la versión predeterminada (la más reciente), ejecute el siguiente comando:
O bien, para crear la imagen de Docker con una versión específica, ejecute el siguiente comando:
Para verificar la compilación, ejecuta el siguiente comando:
| AWS DevOps, DevOps ingeniero, desarrollador de aplicaciones |
(Opcional) Empuje a Amazon ECR. |
| Desarrollador de aplicaciones, AWS DevOps, DevOps ingeniero |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Seleccione el método de autenticación. | Elija una de las siguientes opciones:
| Administrador de AWS |
Configure el método de autenticación. | Para el método de autenticación que ha seleccionado, utilice las siguientes instrucciones de configuración:
| Administrador de AWS |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Configuración | Actualice el
| DevOps ingeniero |
Inicie y verifique el contenedor. | Para empezar en primer plano, ejecute el siguiente comando:
O bien, para empezar en segundo plano, ejecute el siguiente comando:
Para comprobar el estado, ejecute el siguiente comando:
Para supervisar los registros, ejecute el siguiente comando:
| DevOps ingeniero |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Ejecute el contenedor con la CLI de Docker. |
| DevOps ingeniero |
Verifica el contenedor. |
| DevOps ingeniero |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Implemente aplicaciones. |
| Desarrollador de aplicaciones |
Acceda y pruébelo Docker-in-Docker. |
| DevOps ingeniero |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Configure el clúster de Amazon ECS. |
| Administrador de AWS |
Implemente la tarea Amazon ECS. |
| Administrador de AWS |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Detenga el contenedor. |
| DevOps ingeniero |
Resolución de problemas
| Problema | Solución |
|---|---|
El contenedor no se inicia debido a errores de permiso. |
aviso
|
El aprovisionamiento falla debido a errores de credenciales. | Para comprobar que las credenciales están configuradas correctamente, siga estos pasos:
Asegúrese de que los permisos de IAM incluyan |
No se puede conectar al daemon de Docker dentro del contenedor. |
|
El contenedor se queda sin espacio en disco. |
Garantice un espacio mínimo en disco: 5 GB para las operaciones básicas y 50 GB para Edge AWS IoT SiteWise |
Problemas de compilación. |
|
Problemas de conectividad de red. |
Compruebe que el firewall permita el tráfico saliente de HTTPS (443) y MQTT (8883). |
Los componentes de Greengrass no se despliegan. |
Compruebe los registros específicos de los componentes en el |
El contenedor sale inmediatamente después del inicio. |
Compruebe que todas las variables de entorno requeridas estén configuradas correctamente si |
Recursos relacionados
AWS resources
Otros recursos
Información adicional
Para el procesamiento de datos de AWS IoT SiteWise Edge, Docker debe estar disponible en el AWS IoT Greengrass entorno.
Para ejecutar un contenedor anidado, debe ejecutarlo con credenciales de AWS IoT Greengrass nivel de administrador.