Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Déployez des applications conteneurisées lorsqu'elles AWS IoT Greengrass V2 s'exécutent en tant que conteneur Docker
Salih Bakir, Giuseppe Di Bella et Gustav Svalander, Amazon Web Services
Résumé
AWS IoT Greengrass Version 2, lorsqu'il est déployé en tant que conteneur Docker, ne prend pas en charge nativement l'exécution de conteneurs d'applications Docker. Ce modèle vous montre comment créer une image de conteneur personnalisée basée sur la dernière version AWS IoT Greengrass V2 qui active la fonctionnalité Docker-in-Docker (DinD). Avec DinD, vous pouvez exécuter des applications conteneurisées au sein de l'environnement. AWS IoT Greengrass V2
Vous pouvez déployer ce modèle en tant que solution autonome ou l'intégrer à des plateformes d'orchestration de conteneurs telles qu'Amazon ECS Anywhere. Quel que soit le modèle de déploiement, vous conservez toutes les AWS IoT Greengrass V2 fonctionnalités, y compris les capacités de traitement AWS IoT SiteWise Edge, tout en permettant des déploiements évolutifs basés sur des conteneurs.
Conditions préalables et limitations
Conditions préalables
Un actif Compte AWS.
Pour les AWS IoT Greengrass Version 2 prérequis généraux, consultez la section Conditions préalables dans la AWS IoT Greengrass Version 2 documentation.
Docker Engine, installé et configuré sous Linux, macOS ou Windows.
Docker Compose (si vous utilisez l'interface de ligne de commande (CLI) Docker Compose pour exécuter des images Docker).
Système d'exploitation Linux.
Un hyperviseur doté d'un serveur hôte qui prend en charge la virtualisation.
Exigences du système :
2 Go de RAM (minimum)
5 Go d'espace disque disponible (minimum)
Pour AWS IoT SiteWise Edge, un processeur quadricœur x86_64 avec 16 Go de RAM et 50 Go d'espace disque disponible. Pour plus d'informations sur le traitement AWS IoT SiteWise des données, consultez la section Exigences relatives aux packs de traitement des données dans la AWS IoT SiteWise documentation.
Versions du produit
AWS IoT Greengrass Version 2 version 2.5.3 ou ultérieure
Docker-in-Docker version 1.0.0 ou ultérieure
Docker Compose version 1.22 ou ultérieure
Docker Engine version 20.10.12 ou ultérieure
Limites
Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, consultez la section AWS Services par région
. Pour des points de terminaison spécifiques, consultez Points de terminaison de service et quotas, puis choisissez le lien correspondant au service.
Architecture
Pile technologique cible
Sources de données : appareils IoT, capteurs ou équipements industriels qui génèrent des données à traiter
AWS IoT Greengrass V2— Fonctionnant comme un conteneur Docker doté de D-in-D fonctionnalités, déployé sur des infrastructures périphériques
Applications conteneurisées : applications personnalisées exécutées dans l' AWS IoT Greengrass V2 environnement sous forme de conteneurs Docker imbriqués
(Facultatif) Amazon ECS Anywhere : orchestration de conteneurs qui gère le déploiement des AWS IoT Greengrass V2 conteneurs
Autres Services AWS — AWS IoT Core AWS IoT SiteWise, et autres Services AWS pour le traitement et la gestion des données
Architecture cible
Le schéma suivant montre un exemple d'architecture de déploiement cible qui utilise Amazon ECS Anywhere, un outil de gestion de conteneurs.

Le schéma suivant illustre le flux de travail suivant :
1 : Stockage d'images de conteneurs — Amazon ECR stocke les images de AWS IoT Greengrass conteneurs et tous les conteneurs d'applications personnalisés nécessaires au traitement des bords.
2 et 3 : déploiement de conteneurs — Amazon ECS Anywhere déploie l'image du AWS IoT Greengrass conteneur depuis Amazon ECR vers l'emplacement périphérique, en gérant le cycle de vie du conteneur et le processus de déploiement.
4 : Déploiement des composants — Le AWS IoT Greengrass cœur déployé déploie automatiquement ses composants pertinents en fonction de sa configuration. Les composants incluent AWS IoT SiteWise Edge et les autres composants de traitement des bords nécessaires au sein de l'environnement conteneurisé.
5 : Ingestion des données — Une fois la configuration complète, AWS IoT Greengrass commence à ingérer les données de télémétrie et de capteurs provenant de diverses sources de données IoT situées à la périphérie.
6 : Traitement des données et intégration dans le cloud — Le AWS IoT Greengrass cœur conteneurisé traite les données localement à l'aide de ses composants déployés (y compris AWS IoT SiteWise Edge pour les données industrielles). Il envoie ensuite les données traitées aux AWS Cloud services pour une analyse et un stockage plus approfondis.
Outils
Services AWS
Amazon ECS Anywhere vous permet de déployer, d'utiliser et de gérer les tâches et les services Amazon ECS sur votre propre infrastructure.
Amazon Elastic Compute Cloud (Amazon EC2) fournit une capacité de calcul évolutive dans le AWS Cloud. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.
Amazon Elastic Container Registry (Amazon ECR) est un service géré de registre d'images de conteneurs sécurisé, évolutif et fiable.
AWS IoT Greengrassest un environnement d'exécution périphérique et un service cloud open source pour l'Internet des objets (IoT) qui vous aide à créer, déployer et gérer des applications IoT sur vos appareils.
AWS IoT SiteWisevous aide à collecter, modéliser, analyser et visualiser les données des équipements industriels à grande échelle.
Autres outils
Docker
est un ensemble de produits de plateforme en tant que service (PaaS) qui utilisent la virtualisation au niveau du système d'exploitation pour fournir des logiciels dans des conteneurs. Docker Compose
est un outil permettant de définir et d'exécuter des applications multi-conteneurs. Docker Engine
est une technologie de conteneurisation open source permettant de créer et de conteneuriser des applications.
Référentiel de code
Le code de ce modèle est disponible dans le Docker-in-Docker référentiel GitHub AWS IoT Greengrass v2
Épopées
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Clonez et naviguez vers le référentiel. | Pour cloner le dépôt, utilisez la commande suivante :
Pour accéder au
| DevOps ingénieur, AWS DevOps |
Développez l’image Docker. | Pour créer l'image Docker avec la version par défaut (la plus récente), exécutez la commande suivante :
Ou, pour créer l'image Docker avec une version spécifique, exécutez la commande suivante :
Pour vérifier le build, exécutez la commande suivante :
| AWS DevOps, DevOps ingénieur, développeur d'applications |
(Facultatif) Transférez vers Amazon ECR. |
| Développeur d'applications, AWS DevOps, DevOps ingénieur |
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Sélectionnez la méthode d'authentification. | Choisissez l’une des options suivantes :
| Administrateur AWS |
Configurez la méthode d'authentification. | Pour la méthode d'authentification que vous avez sélectionnée, suivez les instructions de configuration suivantes :
| Administrateur AWS |
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Configuration | Mettez à jour le
| DevOps ingénieur |
Démarrez et vérifiez le conteneur. | Pour commencer au premier plan, exécutez la commande suivante :
Ou, pour démarrer en arrière-plan, exécutez la commande suivante :
Pour vérifier l'état, exécutez la commande suivante :
Pour surveiller les journaux, exécutez la commande suivante :
| DevOps ingénieur |
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Exécutez le conteneur avec Docker CLI. |
| DevOps ingénieur |
Vérifiez le contenant. |
| DevOps ingénieur |
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Déployez des applications. |
| Développeur d’applications |
Accès et test Docker-in-Docker. |
| DevOps ingénieur |
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Configurez le cluster Amazon ECS. |
| Administrateur AWS |
Déployez la tâche Amazon ECS. |
| Administrateur AWS |
| Sous-tâche | Description | Compétences requises |
|---|---|---|
Arrêtez le conteneur. |
| DevOps ingénieur |
Résolution des problèmes
| Problème | Solution |
|---|---|
Le conteneur ne démarre pas avec des erreurs d'autorisation. |
Avertissement
|
Le provisionnement échoue en raison d'erreurs d'identification. | Pour vérifier que les informations d'identification sont correctement configurées, procédez comme suit :
Assurez-vous que les autorisations IAM incluent |
Impossible de se connecter au démon Docker à l'intérieur du conteneur. |
|
Le conteneur manque d'espace disque. |
Garantir un espace disque minimal : 5 Go pour les opérations de base et 50 Go pour AWS IoT SiteWise Edge |
Problèmes de construction. |
|
Problèmes de connectivité réseau. |
Vérifiez que le pare-feu autorise le trafic HTTPS (443) et MQTT (8883) sortant. |
Les composants Greengrass ne se déploient pas. |
Consultez les journaux spécifiques aux composants dans le |
Le conteneur sort immédiatement après le démarrage. |
Vérifiez que toutes les variables d'environnement requises sont correctement définies si |
Ressources connexes
AWS resources
Autres ressources
Informations supplémentaires
Pour le traitement des données AWS IoT SiteWise Edge, Docker doit être disponible dans l' AWS IoT Greengrass environnement.
Pour exécuter un conteneur imbriqué, vous devez exécuter le AWS IoT Greengrass conteneur avec des informations d'identification de niveau administrateur.