Utilisation de la branche de plateforme Docker ECS gérée dans Elastic Beanstalk - AWS Elastic Beanstalk

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.

Utilisation de la branche de plateforme Docker ECS gérée dans Elastic Beanstalk

Cette rubrique fournit des informations sur les branches de la plateforme Docker ECS gérées pour Amazon Linux 2 et Amazon Linux 2023. Cela s'applique également à la branche de plateforme multiconteneur Docker on AL1 (également ECS gérée) retirée, si vous prévoyez de la migrer vers l'une des branches de plate-forme prises en charge.

Note

Le 18 juillet 2022, Elastic Beanstalk a défini le statut de toutes les branches de la plateforme basées sur Amazon AMI Linux () comme étant retirées. AL1

Migration depuis Docker multi-conteneurs sur AL1

Si vous utilisez actuellement le Docker multi-conteneurs retiré qui s'exécute sur la branche de AL1 plate-forme, vous pouvez migrer vers la dernière branche de plate-forme ECSRunning on AL2 023. La dernière branche de plateforme prend en charge toutes les fonctions de la branche de plateforme abandonnée. Aucune modification du code source n'est requise. Pour de plus amples informations, veuillez consulter Migration de votre ECS application Elastic Beanstalk d'un Docker multi-conteneurs géré vers Amazon Linux 2023 AL1 ECS.

ECSprésentation de la plateforme Docker gérée

Elastic Beanstalk utilise Amazon Elastic Container Service ECS (Amazon) pour coordonner les déploiements de conteneurs ECS dans les environnements Docker gérés. Amazon ECS fournit des outils pour gérer un cluster d'instances exécutant des conteneurs Docker. Elastic Beanstalk prend en charge les tâches Amazon, notamment la création ECS de clusters, la définition et l'exécution des tâches. Chacune des instances de l'environnement exécute le même ensemble de conteneurs, qui sont définis dans un fichier Dockerrun.aws.json v2. Afin de tirer le meilleur parti de Docker, Elastic Beanstalk vous permet de créer un environnement dans lequel vos instances EC2 Amazon exécutent plusieurs conteneurs Docker côte à côte.

Le schéma suivant montre un exemple d'environnement Elastic Beanstalk configuré avec trois conteneurs Docker exécutés sur EC2 chaque instance Amazon d'un groupe Auto Scaling :

Elastic Beanstalk environment with load balancer, auto scaling group, and containerized tasks.
Note

Elastic Beanstalk offre des fonctionnalités d'extensibilité pour toutes ses platesformes que vous pouvez utiliser pour personnaliser le déploiement et l'exécution de vos applications. En ce qui concerne l'ECSexécution sur la branche de plateforme Amazon Linux 2, la mise en œuvre de ces fonctionnalités dans le flux de travail de déploiement des instances varie par rapport aux autres plateformes. Pour de plus amples informations, veuillez consulter Flux de travail de déploiement d'instances pour une ECS exécution sur Amazon Linux 2 et versions ultérieures.

ECSRessources Amazon créées par Elastic Beanstalk

Lorsque vous créez un environnement à l'aide de la plateforme Docker ECS gérée, Elastic Beanstalk crée et configure automatiquement plusieurs ressources Amazon Elastic Container Service lors de la création de l'environnement. Ce faisant, il crée les conteneurs nécessaires sur chaque EC2 instance Amazon.

  • Amazon ECS Cluster — Les instances de conteneur d'Amazon ECS sont organisées en clusters. Lorsqu'il est utilisé avec Elastic Beanstalk, un cluster est toujours créé ECS pour chaque environnement Docker géré.

  • Définition de ECS tâche Amazon — Elastic Beanstalk Dockerrun.aws.json utilise la version v2 dans votre projet pour générer la définition de tâche ECS Amazon qui est utilisée pour configurer les instances de conteneur dans l'environnement.

  • Amazon ECS Task — Elastic Beanstalk communique ECS avec Amazon pour exécuter une tâche sur chaque instance de l'environnement afin de coordonner le déploiement des conteneurs. Dans un environnement évolutif, Elastic Beanstalk lance une nouvelle tâche chaque fois qu'une instance est ajoutée au cluster. Dans de rares cas, vous devrez peut-être accroître la quantité d'espace réservée aux conteneurs et aux images. Pour en savoir plus, reportez-vous à la section Configuration des environnements Elastic Beanstalk Docker.

  • Amazon ECS Container Agent : l'agent s'exécute dans un conteneur Docker sur les instances de votre environnement. L'agent interroge le ECS service Amazon et attend qu'une tâche soit exécutée.

  • Amazon ECS Data Volumes — Elastic Beanstalk insère les définitions de volumes (en plus des volumes que vous Dockerrun.aws.json définissez dans la version 2) dans la définition des tâches afin de faciliter la collecte des journaux.

    Elastic Beanstalk crée des volumes de fichiers journaux sur l'instance de conteneur (un pour chaque conteneur), à l'emplacement /var/log/containers/containername. Ces volumes sont nommés awseb-logs-containername et sont fournis pour être montés par les conteneurs. Pour de plus amples informations sur la façon de les monter, veuillez consulter Format des définitions de conteneur.

Dockerrun.aws.jsonfichier v2

Les instances de conteneur nécessitent un fichier de configuration nomméDockerrun.aws.json. Les instances de conteneur font référence aux EC2 instances Amazon exécutant un Docker ECS géré dans un environnement Elastic Beanstalk. Ce fichier est propre à Elastic Beanstalk. Il peut être utilisé seul ou combiné au code source et au contenu d'un bundle de fichiers source afin de créer un environnement sur une plateforme Docker.

Note

Le format version 2 Dockerrun.aws.json ajoute la prise en charge de plusieurs conteneurs par EC2 instance Amazon et ne peut être utilisé qu'avec une plateforme Docker ECS gérée. Le format est très différent des autres versions de fichiers de configuration qui prennent en charge les branches de la plateforme Docker qui ne sont pas gérées parECS.

Consultez le Dockerrun.aws.json v2 pour plus de détails sur le format mis à jour et un exemple de fichier.

Images Docker

La plateforme Docker ECS gérée pour Elastic Beanstalk nécessite que les images soient préconstruites et stockées dans un référentiel d'images en ligne public ou privé avant de créer un environnement Elastic Beanstalk.

Note

La création d'images personnalisées lors du déploiement avec un n'Dockerfileest pas prise en charge par la plateforme Docker ECS gérée sur Elastic Beanstalk. Créez vos images et déployez-les dans un référentiel en ligne avant de créer un environnement Elastic Beanstalk.

Spécifiez des images par nom dans Dockerrun.aws.json v2.

Pour configurer Elastic Beanstalk afin qu'il s'authentifie auprès d'un référentiel privé, incluez le paramètre authentication dans votre fichier Dockerrun.aws.json v2.

Échec de déploiements de conteneurs

Si une ECS tâche Amazon échoue, un ou plusieurs conteneurs de votre environnement Elastic Beanstalk ne démarreront pas. Elastic Beanstalk ne rétablit pas les environnements multi-conteneurs en raison de l'échec d'une tâche Amazon. ECS Si le démarrage d'un conteneur échoue dans votre environnement, redéployez la version actuelle ou une version de travail précédente à partir de la console Elastic Beanstalk.

Pour déployer une version existante
  1. Ouvrez la console Elastic Beanstalk dans la région de votre environnement.

  2. Cliquez sur Actions à droite du nom de votre application, puis cliquez sur View application versions (Afficher les versions de l'application).

  3. Sélectionnez une version de votre application, puis cliquez sur Déploiement.