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 également 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 généralement 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 les détails de l'allocation de la capacité, l'équilibrage de charge, la mise à l'échelle et la surveillance de l'état de l'application. Vous pouvez facilement gérer votre application web dans un environnement qui prend en charge les différents services intégrés dans Elastic Beanstalk. Ces environnements incluent, mais sans s'y limiter, VPC, RDS et IAM. Pour obtenir de plus amples 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 les conteneurs Docker, veuillez accéder au site consacré à Docker: the Linux container engine.

Les rubriques de ce chapitre supposent que vous avez 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 comprend plusieurs plateformes. La plateforme Docker qui s'exécute sur Amazon Linux 2 offre le plus d'avantages, par exemple le support à long terme. Les sections qui suivent détaillent les plateformes Docker proposées par Elastic Beanstalk et les chemins de migration recommandés vers Amazon Linux 2.

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

La plateforme Docker

Elastic Beanstalk peut déployer une image Docker et un code source sur des instances EC2 exécutant la plateforme Docker Elastic Beanstalk. La plateforme offre une prise en charge de plusieurs conteneurs (et d'un seul conteneur). Vous pouvez également tirer parti de l'outil Docker Compose sur la plateforme Docker pour simplifier la configuration, les tests et le déploiement de votre application.

Cette plateforme Docker Amazon Linux 2 offre les avantages suivants :

  • Support à long terme. La plateforme Docker sur Amazon Linux 2 bénéficie d'un support à long terme, offrant des mises à jour pour la sécurité et les fonctionnalités.

  • Fonctionnalités Docker Compose. Cette plateforme vous permettra de tirer parti des fonctionnalités fournies par l'outil Docker Compose pour définir et exécuter plusieurs conteneurs. Vous pouvez inclure le fichier docker-compose.yml à déployer sur Elastic Beanstalk.

  • Utilisation d'images de l'application provenant de référentiels publics ou privés. Elastic Beanstalk appelle l'interface de ligne de commande Docker Compose. Pour cela, il traite le fichier docker-compose.yml pour extraire les images de l'application et les exécuter en tant qu'applications conteneurisées.

  • Créez des images de conteneur pendant le déploiement. Vous n'avez pas besoin de prégénérer vos images d'application avant de les déployer pour qu'elles s'exécutent en tant que conteneurs. Pendant le déploiement, vous pouvez générer les images de conteneur à partir de zéro en spécifiant les dépendances dans le Dockerfile.

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

Les sections suivantes sont pertinentes pour les environnements Docker Elastic Beanstalk qui utilisent la version antérieure de la plateforme AMI Amazon Linux (antérieure à Amazon Linux 2).

La plateforme Docker basée sur des AMI Elastic Beanstalk 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 Amazon Linux. Cette plateforme Docker exécute un seul conteneur pour chaque instance.

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

Note

Cette plateforme prend seulement en charge le système d'exploitation AMI Amazon Linux (la version antérieure à Amazon Linux 2). La plateforme Docker fournit la fonctionnalité Docker multiconteneurs avec Amazon Linux 2.

L'autre plateforme générique, Docker multiconteneurs, utilise Amazon Elastic Container Service (Amazon ECS) 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. Si votre environnement Elastic Beanstalk utilise une version de plateforme AMI Amazon Linux (antérieure à Amazon Linux 2), utilisez la plateforme multiconteneurs pour déployer plusieurs conteneurs Docker sur chaque instance.

Pour de plus amples informations sur la plateforme Docker multiconteneurs et son utilisation, veuillez consulter Utilisation de la plateforme Docker multiconteneurs (Amazon Linux AMI). 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 qui n'est pas compatible avec cette version. Il existe également un didacticiel qui vous guide tout au long du déploiement d'un environnement multiconteneurs à partir de zéro. L'environnement décrit exécute un site web PHP avec un proxy NGINX qui s'exécute devant lui dans un conteneur séparé.

Outre les deux plateformes Docker génériques, il existe plusieurs branches de plateforme Docker préconfigurées, que vous pouvez utiliser pour exécuter votre application dans l'une des piles de logiciels couramment utilisées, telles 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 AMI Amazon Linux (version antérieure à 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 de plus amples informations à ce sujet, veuillez consulter Déploiement d'une application GlassFish sur la plateforme Docker : un chemin de migration vers Amazon Linux 2.

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