Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Distribuisci applicazioni containerizzate in AWS IoT Greengrass V2 esecuzione come contenitore Docker
Salih Bakir, Giuseppe Di Bella e Gustav Svalander, Amazon Web Services
Riepilogo
AWS IoT Greengrass Version 2, se distribuito come contenitore Docker, non supporta nativamente l'esecuzione di contenitori di applicazioni Docker. Questo modello mostra come creare un'immagine del contenitore personalizzata basata sull'ultima versione AWS IoT Greengrass V2 che abilita la funzionalità Docker-in-Docker (DiND). Con DiND, puoi eseguire applicazioni containerizzate all'interno dell'ambiente. AWS IoT Greengrass V2
Puoi implementare questo modello come soluzione autonoma o integrarlo con piattaforme di orchestrazione dei container come Amazon ECS Anywhere. In entrambi i modelli di implementazione, mantieni la piena AWS IoT Greengrass V2 funzionalità, comprese le funzionalità di elaborazione AWS IoT SiteWise Edge, abilitando al contempo implementazioni scalabili basate su contenitori.
Prerequisiti e limitazioni
Prerequisiti
Un attivo. Account AWS
Per i AWS IoT Greengrass Version 2 prerequisiti generali, vedere Prerequisiti nella AWS IoT Greengrass Version 2 documentazione.
Docker Engine, installato e configurato su Linux, macOS o Windows.
Docker Compose (se utilizzi l'interfaccia a riga di comando (CLI) di Docker Compose per eseguire immagini Docker).
Un sistema operativo Linux.
Un hypervisor con un server host che supporta la virtualizzazione.
Requisiti di sistema:
2 GB di RAM (minimo)
5 GB di spazio disponibile su disco (minimo)
Per AWS IoT SiteWise Edge, una CPU quad-core x86_64 con 16 GB di RAM e 50 GB di spazio disponibile su disco. Per ulteriori informazioni sull'elaborazione AWS IoT SiteWise dei dati, consulta Requisiti del pacchetto di elaborazione dati nella documentazione. AWS IoT SiteWise
Versioni del prodotto
AWS IoT Greengrass Version 2 versione 2.5.3 o successiva
Docker-in-Docker versione 1.0.0 o successiva
Docker Compose versione 1.22 o successiva
Docker Engine versione 20.10.12 o successiva
Limitazioni
Alcuni Servizi AWS non sono disponibili in tutti. Regioni AWS Per la disponibilità regionale, vedi AWS Servizi per regione
. Per endpoint specifici, consulta Service endpoints and quotas e scegli il link relativo al servizio.
Architecture
Stack tecnologico Target
Fonti di dati: dispositivi IoT, sensori o apparecchiature industriali che generano dati per l'elaborazione
AWS IoT Greengrass V2— Funzionamento come contenitore Docker con D-in-D funzionalità, distribuito su infrastrutture periferiche
Applicazioni containerizzate: applicazioni personalizzate eseguite all'interno dell'ambiente come contenitori Docker annidati AWS IoT Greengrass V2
(Facoltativo) Amazon ECS Anywhere: orchestrazione dei container che gestisce la distribuzione dei container AWS IoT Greengrass V2
Altro Servizi AWS — AWS IoT Core e altro Servizi AWS per AWS IoT SiteWise l'elaborazione e la gestione dei dati
Architettura Target
Il diagramma seguente mostra un esempio di architettura di distribuzione di destinazione che utilizza Amazon ECS Anywhere, uno strumento di gestione dei container.

Il diagramma mostra il flusso di lavoro seguente:
1: Archiviazione delle immagini dei container: Amazon ECR archivia le immagini dei AWS IoT Greengrass container e tutti i contenitori di applicazioni personalizzati necessari per l'elaborazione edge.
2 e 3: Implementazione dei container: Amazon ECS Anywhere distribuisce AWS IoT Greengrass l'immagine del contenitore da Amazon ECR all'edge location, gestendo il ciclo di vita del contenitore e il processo di distribuzione.
4: Distribuzione dei componenti: il AWS IoT Greengrass core distribuito distribuisce automaticamente i componenti pertinenti in base alla configurazione. I componenti includono AWS IoT SiteWise Edge e altri componenti necessari per l'elaborazione dei bordi all'interno dell'ambiente containerizzato.
5: Inserimento dei dati: dopo la configurazione completa, AWS IoT Greengrass inizia a importare dati di telemetria e sensori da varie fonti di dati IoT presso l'edge location.
6: Elaborazione dei dati e integrazione nel cloud: il AWS IoT Greengrass core containerizzato elabora i dati localmente utilizzando i componenti implementati (incluso Edge per i dati industriali). AWS IoT SiteWise Quindi, invia i dati elaborati ai Cloud AWS servizi per ulteriori analisi e archiviazione.
Tools (Strumenti)
Servizi AWS
Amazon ECS Anywhere ti aiuta a distribuire, utilizzare e gestire attività e servizi Amazon ECS sulla tua infrastruttura.
Amazon Elastic Compute Cloud (Amazon EC2) fornisce capacità di elaborazione scalabile in. Cloud AWS Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
Amazon Elastic Container Registry (Amazon ECR) è un servizio di registro di immagini di container gestito sicuro, scalabile e affidabile.
AWS IoT Greengrassè un servizio cloud e runtime edge open source per l'Internet of Things (IoT) che ti aiuta a creare, implementare e gestire applicazioni IoT sui tuoi dispositivi.
AWS IoT SiteWiseti aiuta a raccogliere, modellare, analizzare e visualizzare i dati delle apparecchiature industriali su larga scala.
Altri strumenti
Docker
è un insieme di prodotti Platform as a Service (PaaS) che utilizzano la virtualizzazione a livello di sistema operativo per fornire software in container. Docker Compose è uno strumento per definire ed eseguire
applicazioni multi-contenitore. Docker Engine
è una tecnologia di containerizzazione open source per la creazione e la containerizzazione di applicazioni.
Archivio di codice
Il codice per questo pattern è disponibile nel repository GitHub AWS IoT Greengrass v2 Docker-in-Docker
Epiche
| Operazione | Description | Competenze richieste |
|---|---|---|
Clona e accedi al repository. | Per clonare il repository, usa il seguente comando:
Per accedere alla
| DevOps ingegnere, AWS DevOps |
Creazione dell'immagine Docker. | Per creare l'immagine Docker con la versione predefinita (più recente), esegui il seguente comando:
Oppure, per creare l'immagine Docker con una versione specifica, esegui il seguente comando:
Per verificare la build, esegui il comando seguente:
| AWS DevOps, DevOps ingegnere, sviluppatore di app |
(Facoltativo) Invia ad Amazon ECR. |
| Sviluppatore di app, AWS DevOps, DevOps ingegnere |
| Operazione | Description | Competenze richieste |
|---|---|---|
Seleziona il metodo di autenticazione. | Scegli una delle seguenti opzioni:
| Amministratore AWS |
Configura il metodo di autenticazione. | Per il metodo di autenticazione selezionato, utilizza la seguente guida alla configurazione:
| Amministratore AWS |
| Operazione | Description | Competenze richieste |
|---|---|---|
Configurare | Aggiorna il
| DevOps ingegnere |
Avvia e verifica il contenitore. | Per iniziare in primo piano, esegui il seguente comando:
Oppure, per iniziare in background, esegui il seguente comando:
Per verificare lo stato, esegui il comando seguente:
Per monitorare i log, esegui il comando seguente:
| DevOps ingegnere |
| Operazione | Description | Competenze richieste |
|---|---|---|
Esegui il contenitore con la CLI Docker. |
| DevOps ingegnere |
Verifica il contenitore. |
| DevOps ingegnere |
| Operazione | Description | Competenze richieste |
|---|---|---|
Distribuisci applicazioni. |
| Sviluppatore di app |
Accesso e test Docker-in-Docker. |
| DevOps ingegnere |
| Operazione | Description | Competenze richieste |
|---|---|---|
Configura il cluster Amazon ECS. |
| Amministratore AWS |
Implementa attività Amazon ECS. |
| Amministratore AWS |
| Operazione | Description | Competenze richieste |
|---|---|---|
Fermare il contenitore. |
| DevOps ingegnere |
risoluzione dei problemi
| Problema | Soluzione |
|---|---|
Il contenitore non si avvia con errori di autorizzazione. |
avvertimento
|
Il provisioning fallisce a causa di errori nelle credenziali. | Per verificare che le credenziali siano configurate correttamente, attenersi alla seguente procedura:
Assicurati che le autorizzazioni IAM includano |
Impossibile connettersi al demone Docker all'interno del contenitore. |
|
Il contenitore esaurisce lo spazio su disco. |
Garantire uno spazio minimo su disco: 5 GB per le operazioni di base e 50 GB per Edge AWS IoT SiteWise |
Crea problemi. |
|
Problemi di connettività di rete. |
Verificate che il firewall consenta il traffico HTTPS (443) e MQTT (8883) in uscita. |
I componenti Greengrass non vengono distribuiti. |
Controlla i log specifici dei componenti nella directory. |
Il contenitore esce immediatamente dopo l'avvio. |
Verifica che tutte le variabili di ambiente richieste siano impostate correttamente se. |
Risorse correlate
AWS resources
Altre risorse
Informazioni aggiuntive
Per l'elaborazione dei dati AWS IoT SiteWise Edge, Docker deve essere disponibile all'interno dell' AWS IoT Greengrass ambiente.
Per eseguire un contenitore annidato, è necessario eseguire il AWS IoT Greengrass contenitore con credenziali di amministratore.