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 gérée par ECS dans Elastic Beanstalk
Cette rubrique fournit une vue d'ensemble des branches de la plateforme Docker gérées par Elastic Beanstalk ECS pour Amazon Linux 2 et Amazon Linux 2023. Il fournit également des informations de configuration spécifiques à la plate-forme gérée Docker ECS.
Migration depuis Docker multi-conteneurs sur AL1
Le 18 juillet 2022, Elastic Beanstalk a défini le statut de toutes les branches de la plateforme sur la base de l'AMI Amazon Linux () comme étant supprimées. AL1 Bien que ce chapitre fournisse des informations de configuration pour cette plate-forme retirée, nous vous recommandons vivement de migrer vers la dernière branche de plate-forme prise en charge. 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 ECS Running 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.
Présentation de la plateforme Docker gérée par ECS
Elastic Beanstalk utilise Amazon Elastic Container Service (Amazon ECS) pour coordonner les déploiements de conteneurs vers des environnements Docker gérés par ECS. Amazon ECS fournit des outils permettant de gérer un cluster d'instances exécutant des conteneurs Docker. Elastic Beanstalk prend en charge les tâches Amazon ECS, y compris la création 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 :

Ressources Amazon ECS créées par Elastic Beanstalk
Lorsque vous créez un environnement via la plateforme Docker gérée par ECS, Elastic Beanstalk crée et configure automatiquement plusieurs ressources Amazon Elastic Container Service tout en créant l'environnement. Ce faisant, il crée les conteneurs nécessaires sur chaque EC2 instance Amazon.
-
Cluster Amazon ECS – Dans Amazon ECS, les instances de conteneur sont organisées en clusters. En cas d'utilisation avec Elastic Beanstalk, un cluster est toujours créé pour chaque environnement Docker géré par ECS. Un cluster ECS contient également des fournisseurs de capacité de groupe Auto Scaling et d'autres ressources.
-
Définition de tâche Amazon ECS : Elastic Beanstalk utilise le fichier
Dockerrun.aws.json
v2 dans votre projet pour générer la définition de tâche Amazon ECS qui est utilisée pour configurer les instances de conteneur dans l'environnement. -
Tâche Amazon ECS – Elastic Beanstalk communique avec Amazon ECS pour exécuter une tâche sur chaque instance de l'environnement afin de coordonner le déploiement de conteneur. Dans un environnement évolutif, Elastic Beanstalk lance une nouvelle tâche chaque fois qu'une instance est ajoutée au cluster.
-
Agent de conteneur Amazon ECS – L'agent s'exécute dans un conteneur Docker sur les instances de votre environnement. L'agent interroge Amazon ECS service et attend l'exécution d'une tâche.
-
Amazon ECS Data Volumes — Outre les volumes que vous définissez dans la
Dockerrun.aws.json
version v2, Elastic Beanstalk insère des définitions de volumes 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/
. Ces volumes sont nomméscontainername
awseb-logs-
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.containername
Pour plus d'informations sur les ressources Amazon ECS, consultez le guide du développeur Amazon Elastic Container Service.
Dockerrun.aws.json
fichier 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 Docker géré par ECS 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 gérée par ECS. 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 par ECS.
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 gérée par ECS 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 pendant le déploiement via un Dockerfile
n'est pas prise en charge par la plateforme Docker gérée par ECS 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
En cas d'échec d'une tâche Amazon ECS, un ou plusieurs conteneurs de votre environnement Elastic Beanstalk ne démarreront pas. Elastic Beanstalk ne restaure pas les environnements multiconteneurs suite à 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
-
Ouvrez la console Elastic Beanstalk dans la région de votre environnement.
-
Cliquez sur Actions à droite du nom de votre application, puis cliquez sur View application versions (Afficher les versions de l'application).
-
Sélectionnez une version de votre application, puis cliquez sur Déploiement.
Extension des plateformes Docker basées sur ECS pour Elastic Beanstalk
Elastic Beanstalk propose des fonctionnalités d'extensibilité qui vous permettent d'appliquer vos propres commandes, scripts, logiciels et configurations à vos déploiements d'applications. Le flux de travail de déploiement pour les branches des plateformes ECS AL2 et AL2 023 varie légèrement par rapport aux autres plateformes basées sur Linux. 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.