

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 conteneurs à l'aide d'Elastic Beanstalk
<a name="deploy-containers-by-using-elastic-beanstalk"></a>

*Thomas Scott et Jean-Baptiste Guillois, Amazon Web Services*

## Résumé
<a name="deploy-containers-by-using-elastic-beanstalk-summary"></a>

Sur le cloud Amazon Web Services (AWS), AWS Elastic Beanstalk prend en charge Docker en tant que plate-forme disponible, afin que les conteneurs puissent fonctionner avec l'environnement créé. Ce modèle montre comment déployer des conteneurs à l'aide du service Elastic Beanstalk. Le déploiement de ce modèle utilisera l'environnement du serveur Web basé sur la plate-forme Docker.

Pour utiliser Elastic Beanstalk pour déployer et dimensionner des applications et des services Web, vous téléchargez votre code et le déploiement est automatiquement géré. Le provisionnement des capacités, l'équilibrage de charge, le dimensionnement automatique et la surveillance de l'état de santé des applications sont également inclus. Lorsque vous utilisez Elastic Beanstalk, vous pouvez contrôler totalement les ressources AWS qu'il crée en votre nom. Elastic Beanstalk est gratuit. Vous ne payez que pour les ressources AWS utilisées pour stocker et exécuter vos applications.

Ce modèle inclut des instructions de déploiement à l'aide de l'[interface de ligne de commande AWS Elastic Beanstalk (EB CLI](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install-advanced.html)) et de l'AWS Management Console.

**Cas d’utilisation**

Les cas d'utilisation d'Elastic Beanstalk sont les suivants : 
+ Déployez un environnement prototype pour faire la démonstration d'une application frontale. (Ce modèle utilise un Dockerfile**** comme exemple.)
+ Déployez une API pour gérer les demandes d'API pour un domaine donné.
+ Déployez une solution d'orchestration à l'aide de Docker-Compose (`docker-compose.yml`ce**** modèle n'est pas utilisé comme exemple pratique).

## Conditions préalables et limitations
<a name="deploy-containers-by-using-elastic-beanstalk-prereqs"></a>

**Conditions préalables**
+ Un compte AWS
+ AWS EB CLI installée localement
+ Docker installé sur une machine locale

**Limites**
+ Le forfait gratuit impose une limite d'extraction Docker de 100 extractions par 6 heures et par adresse IP.

## Architecture
<a name="deploy-containers-by-using-elastic-beanstalk-architecture"></a>

**Pile technologique cible**
+ Instances Amazon Elastic Compute Cloud (Amazon EC2)
+ Groupe de sécurité
+ Application Load Balancer
+ Groupe Auto Scaling

**Architecture cible**

![Architecture pour le déploiement de conteneurs avec Elastic Beanstalk.](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/dfabcdc2-747f-40e2-a603-08ea31ba71d3/images/1d17ff09-1aea-4c72-adb5-eaf741601428.png)


**Automatisation et mise à l'échelle**

AWS Elastic Beanstalk peut automatiquement évoluer en fonction du nombre de demandes effectuées. Les ressources AWS créées pour un environnement incluent un Application Load Balancer, un groupe Auto Scaling et une ou plusieurs instances Amazon EC2 . 

L'équilibreur de charge se trouve devant les EC2 instances Amazon, qui font partie du groupe Auto Scaling. Amazon EC2 Auto Scaling démarre automatiquement des EC2 instances Amazon supplémentaires pour s'adapter à la charge croissante de votre application. Si la charge de votre application diminue, Amazon EC2 Auto Scaling arrête les instances, mais maintient au moins une instance en cours d'exécution.

**Déclencheurs de dimensionnement automatiques**

Le groupe Auto Scaling de votre environnement Elastic Beanstalk utilise CloudWatch deux alarmes Amazon pour lancer les opérations de dimensionnement. Les déclencheurs par défaut évoluent quand le trafic réseau sortant moyen de chaque instance est supérieur à 6 Mo ou inférieur à 2 Mo sur une période de cinq minutes. Pour utiliser Amazon EC2 Auto Scaling de manière efficace, configurez des déclencheurs adaptés à votre application, à votre type d'instance et à vos exigences de service. Vous pouvez mettre à l'échelle en fonction de plusieurs statistiques, y compris la latence, les I/O disque, l'utilisation de l'UC et le nombre de demandes. Pour plus d'informations, consultez la section [Déclencheurs Auto Scaling](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environments-cfg-autoscaling-triggers.html).

## Outils
<a name="deploy-containers-by-using-elastic-beanstalk-tools"></a>

**Services AWS**
+ [L'interface de ligne de commande AWS (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) est un outil open source qui vous permet d'interagir avec les services AWS par le biais de commandes dans votre shell de ligne de commande.
+ [L'interface de ligne de commande AWS EB (EB CLI)](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install.html) est un client de ligne de commande que vous pouvez utiliser pour créer, configurer et gérer des environnements Elastic Beanstalk.
+ [Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) répartit le trafic applicatif ou réseau entrant sur plusieurs cibles. Par exemple, vous pouvez répartir le trafic entre les instances, les conteneurs et les adresses IP d'Amazon Elastic Compute Cloud (Amazon EC2) dans une ou plusieurs zones de disponibilité.

**Autres services**
+ [Docker regroupe](https://www.docker.com/) les logiciels dans des unités standardisées appelées conteneurs qui incluent des bibliothèques, des outils système, du code et un environnement d'exécution.

**Code**

Le code de ce modèle est disponible dans le référentiel GitHub [Cluster Sample Application](https://github.com/aws-samples/cluster-sample-app).

## Épopées
<a name="deploy-containers-by-using-elastic-beanstalk-epics"></a>

### Construire avec un Dockerfile
<a name="build-with-a-dockerfile"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Clonez le référentiel distant. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containers-by-using-elastic-beanstalk.html) | Développeur d'applications, administrateur AWS, AWS DevOps | 
| Initialisez le projet Elastic Beanstalk Docker. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containers-by-using-elastic-beanstalk.html) | Développeur d'applications, administrateur AWS, AWS DevOps | 
| Testez le projet localement. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containers-by-using-elastic-beanstalk.html) | Développeur d'applications, administrateur AWS, AWS DevOps | 

### Déploiement à l'aide d'EB CLI
<a name="deploy-using-eb-cli"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Exécuter la commande de déploiement | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containers-by-using-elastic-beanstalk.html) | Développeur d'applications, administrateur AWS, AWS DevOps | 
| Accédez à la version déployée. | Une fois la commande de déploiement terminée, accédez au projet à l'aide de la `eb open` commande. | Développeur d'applications, administrateur AWS, AWS DevOps | 

### Déploiement à l'aide de la console
<a name="deploy-using-the-console"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déployez l'application à l'aide du navigateur. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-containers-by-using-elastic-beanstalk.html) | Développeur d'applications, administrateur AWS, AWS DevOps | 
| Accédez à la version déployée. | Après le déploiement, accédez à l'application déployée et choisissez l'URL fournie. | Développeur d'applications, administrateur AWS, AWS DevOps | 

## Ressources connexes
<a name="deploy-containers-by-using-elastic-beanstalk-resources"></a>
+ [Environnements de serveurs Web](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts-webserver.html)
+ [Installation de l'interface de ligne de commande EB sur macOS](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install-osx.html)
+ [Installation manuelle de l'interface de ligne de commande EB](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install-advanced.html)

## Informations supplémentaires
<a name="deploy-containers-by-using-elastic-beanstalk-additional"></a>

**Avantages de l'utilisation d'Elastic Beanstalk**
+ Provisionnement automatique de l'infrastructure
+ Gestion automatique de la plateforme sous-jacente
+ Correctifs et mises à jour automatiques pour soutenir l'application
+ Dimensionnement automatique de l'application
+ Possibilité de personnaliser le nombre de nœuds
+ Possibilité d'accéder aux composants de l'infrastructure si nécessaire
+ Facilité de déploiement par rapport aux autres solutions de déploiement de conteneurs