

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
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container"></a>

*Salih Bakir, Giuseppe Di Bella et Gustav Svalander, Amazon Web Services*

## Résumé
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-summary"></a>

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
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-prereqs"></a>

**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](https://docs.aws.amazon.com/greengrass/v2/developerguide/getting-started-prerequisites.html) 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\$164 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](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-gateway-ggv2.html#w2aac17c19c13b7) 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](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Pour des points de terminaison spécifiques, consultez [Points de terminaison de service et quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), puis choisissez le lien correspondant au service.

## Architecture
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-architecture"></a>

**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.

![\[Architecture de déploiement à l'aide d'Amazon ECS Anywhere.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/2ecf5354-40e0-4fd9-9798-086719059784/images/5ed2652e-9604-4809-8962-b167e1991658.png)


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
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-tools"></a>

**Services AWS**
+ [Amazon ECS Anywhere](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch-type-external.html) 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)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) 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](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) est un service géré de registre d'images de conteneurs sécurisé, évolutif et fiable.
+ [AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html)est 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 SiteWise](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html)vous aide à collecter, modéliser, analyser et visualiser les données des équipements industriels à grande échelle.

**Autres outils**
+ [Docker](https://www.docker.com/) 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](https://docs.docker.com/compose/) est un outil permettant de définir et d'exécuter des applications multi-conteneurs.
+ [Docker Engine](https://docs.docker.com/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](https://github.com/aws-samples/aws-iot-greengrass-docker-in-docker).

## Épopées
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-epics"></a>

### Construisez l' AWS IoT Greengrass V2 Docker-in-Docker image
<a name="build-the-gg2-docker-in-docker-image"></a>


| 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 : `git clone https://github.com/aws-samples/aws-iot-greengrass-v2-docker-in-docker.git`Pour accéder au `docker` répertoire, utilisez la commande suivante :`cd aws-iot-greengrass-v2-docker-in-docker/docker` | 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 :`docker build -t x86_64/aws-iot-greengrass:latest .`Ou, pour créer l'image Docker avec une version spécifique, exécutez la commande suivante :`docker build --build-arg GREENGRASS_RELEASE_VERSION=2.12.0 -t x86_64/aws-iot-greengrass:2.12.0 .`Pour vérifier le build, exécutez la commande suivante :`docker images \| grep aws-iot-greengrass`  | AWS DevOps, DevOps ingénieur, développeur d'applications | 
| (Facultatif) Transférez vers Amazon ECR. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Développeur d'applications, AWS DevOps, DevOps ingénieur | 

### Configurer les AWS informations d'identification
<a name="configure-aws-credentials"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Sélectionnez la méthode d'authentification. | Choisissez l’une des options suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | 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 :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Administrateur AWS | 

### Exécuter avec Docker Compose
<a name="run-with-docker-compose"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configuration `docker-compose.yml`. | Mettez à jour le `docker-compose.yml` fichier avec les variables d'environnement comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | DevOps ingénieur | 
| Démarrez et vérifiez le conteneur. | Pour commencer au premier plan, exécutez la commande suivante :`docker-compose up --build`Ou, pour démarrer en arrière-plan, exécutez la commande suivante :`docker-compose up --build -d`Pour vérifier l'état, exécutez la commande suivante :`docker-compose ps`Pour surveiller les journaux, exécutez la commande suivante :`docker-compose logs -f` | DevOps ingénieur | 

### Exécuter avec Docker CLI
<a name="run-with-docker-cli"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Exécutez le conteneur avec Docker CLI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | DevOps ingénieur | 
| Vérifiez le contenant. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | DevOps ingénieur | 

### Gérez les applications conteneurisées
<a name="manage-containerized-applications"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déployez des applications. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Développeur d’applications | 
| Accès et test Docker-in-Docker. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | DevOps ingénieur | 

### (Facultatif) Intégrer à Amazon ECS Anywhere
<a name="optional-integrate-with-ecs-anywhere"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez le cluster Amazon ECS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Administrateur AWS | 
| Déployez la tâche Amazon ECS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Administrateur AWS | 

### Arrêtez et nettoyez
<a name="stop-and-cleanup"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Arrêtez le conteneur. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | DevOps ingénieur | 

## Résolution des problèmes
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Le conteneur ne démarre pas avec des erreurs d'autorisation. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)`--privileged`accorde des privilèges étendus au conteneur. | 
| 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 :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)Assurez-vous que les autorisations IAM incluent`iot:CreateThing`,`iot:CreatePolicy`, `iot:AttachPolicy``iam:CreateRole`, et`iam:AttachRolePolicy`. | 
| Impossible de se connecter au démon Docker à l'intérieur du conteneur. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | 
| Le conteneur manque d'espace disque. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)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. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | 
| Problèmes de connectivité réseau. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)Vérifiez que le pare-feu autorise le trafic HTTPS (443) et MQTT (8883) sortant. | 
| Les composants Greengrass ne se déploient pas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)Consultez les journaux spécifiques aux composants dans le `/greengrass/v2/logs/` répertoire. | 
| Le conteneur sort immédiatement après le démarrage. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)Vérifiez que toutes les variables d'environnement requises sont correctement définies si`PROVISION=true`. Assurez-vous que le `--init` drapeau est utilisé lors du démarrage du conteneur. | 

## Ressources connexes
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-resources"></a>

**AWS resources**
+ [Amazon Elastic Container Service](https://aws.amazon.com/ecs/)
+ [Configuration du traitement des données de pointe pour les AWS IoT SiteWise modèles et les actifs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/edge-processing.html)
+ [Qu'est-ce que AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html)

**Autres ressources**
+ [Documentation Docker](https://docs.docker.com/)

## Informations supplémentaires
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-additional"></a>
+ 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.