Déploiement d'applications Elastic Beanstalk à partir de conteneurs Docker - AWS Elastic Beanstalk

Déploiement d'applications Elastic Beanstalk à partir de conteneurs Docker

Elastic Beanstalk prend en charge le déploiement d'applications web à partir de conteneurs Docker. Les conteneurs Docker vous permettent de définir votre propre environnement d'exécution. Vous pouvez choisir votre propre plateforme, votre langage de programmation et toutes les dépendances d'application (comme les gestionnaires de package ou les outils) qui ne sont pas pris en charge par d'autres plateformes. Les conteneurs Docker sont indépendants, et incluent toutes les informations de configuration et les logiciels dont votre application web a besoin pour fonctionner. Toutes les variables d'environnement définies dans la console Elastic Beanstalk sont transmises aux conteneurs.

L'utilisation de Docker avec Elastic Beanstalk vous permet de bénéficier d'une infrastructure qui gère automatiquement les détails de l'allocation de la capacité, l'équilibrage de charge, le dimensionnement et la surveillance de l'état de l'application. Vous pouvez gérer votre application web dans un environnement qui prend en charge les différents services intégrés dans Elastic Beanstalk, notamment VPC, RDS et IAM. Pour plus d'informations sur Docker, y compris sur la façon de l'installer, les logiciels nécessaires et la façon d'utiliser les images Docker pour lancer des conteneurs Docker, accédez à Docker : le moteur de conteneurs Linux.

Note

Si un conteneur Docker en cours d'exécution dans un environnement Elastic Beanstalk se bloque ou est désactivé pour une raison ou une autre, Elastic Beanstalk le redémarre automatiquement.

Les rubriques de ce chapitre supposent une certaine connaissance des environnements Elastic Beanstalk. Si vous n'avez jamais utilisé Elastic Beanstalk, essayez le didacticiel de mise en route pour acquérir les bases.

Famille de plateformes Docker

La famille de plateformes Docker pour Elastic Beanstalk comporte deux plateformes génériques (Docker et Docker multi-conteneurs) et plusieurs conteneurs préconfigurés.

Pour de plus amples informations sur la version de plateforme actuellement prise en charge pour chaque plateforme Docker, veuillez consulter la page Plateformes prises en charge dans le document Plateformes AWS Elastic Beanstalk.

Docker

La plateforme Docker peut être utilisée pour déployer une image Docker (décrite dans une définition Dockerfile ou Dockerrun.aws.json) et le code source dans des instances EC2 s'exécutant dans un environnement Elastic Beanstalk. Utilisez la plateforme Docker lorsque vous n'avez besoin d'exécuter qu'un conteneur par instance.

Pour obtenir des exemples et de l'aide à démarrer avec un environnement Docker, veuillez consulter Utilisation de la plateforme Docker. Pour plus d'informations sur les formats de définition des conteneurs et leur utilisation, consultez Configuration Docker.

Docker multi-conteneurs

L'autre plateforme générique, Docker multi-conteneurs, utilise Amazon Elastic Container Service pour coordonner un déploiement de plusieurs conteneurs Docker dans un cluster Amazon ECS d'un environnement Elastic Beanstalk. Chacune des instances de l'environnement exécute le même ensemble de conteneurs, qui sont définis dans un fichier Dockerrun.aws.json. Utilisez la plateforme multi-conteneurs lorsque vous devez déployer plusieurs conteneurs Docker dans chaque instance.

Pour plus d'informations sur la plateforme Docker multi-conteneurs et son utilisation, consultez Environnements Docker multi-conteneurs. La rubrique Configuration Docker multi-conteneurs contient des informations détaillées sur la version 2 du format Dockerrun.aws.json, qui est similaire à la version utilisée avec la plateforme Docker (mais pas compatible avec elle). Vous pouvez également accéder à un didacticiel qui décrit comment déployer, de A à Z, un environnement multiconteneurs exécutant un site web PHP avec un proxy nginx exécuté face à lui, dans un conteneur distinct.

Conteneurs Docker préconfigurés

Outre les deux plateformes Docker génériques, il existe plusieurs versions de plateforme Docker préconfigurées, que vous pouvez utiliser pour exécuter votre application dans une pile de logiciels couramment utilisée, telle que Java avec Glassfish ou Python avec uWSGI. Utilisez un conteneur préconfiguré s'il correspond au logiciel utilisé par votre application.

Note

Toutes les branches de la plateforme Docker préconfigurées utilisent le système d'exploitation Amazon Linux AMI (avant Amazon Linux 2). Pour migrer votre application GlassFish vers Amazon Linux 2, utilisez la plateforme Docker générique et déployez GlassFish et votre code d'application vers une image Amazon Linux 2 Docker. Pour plus d'informations, consultez Déploiement d'une application GlassFish sur la plateforme Docker.

Pour plus d'informations, consultez Conteneurs Docker préconfigurés.