Déployez des conteneurs à l'aide d'Elastic Beanstalk - Recommandations AWS

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

Créé par Thomas Scott (AWS) et Jean-Baptiste Guillois () AWS

Dépôt de code : Cluster Sample App

Environnement : Production

Technologies : Conteneurs et microservices CloudNative ; Modernisation

AWSservices : AWS Elastic Beanstalk

Récapitulatif

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 AWS contrôler totalement les ressources qu'il crée en votre nom. Elastic Beanstalk est gratuit. Vous ne payez que pour les AWS ressources utilisées pour stocker et exécuter vos applications.

Ce modèle inclut des instructions de déploiement à l'aide de l'AWSinterface de ligne de commande CLI (EB) d'Elastic Beanstalk et de la console de gestion. AWS

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 un API pour traiter les API demandes relatives à un domaine donné.

  • Déployez une solution d'orchestration à l'aide de Docker-Compose (docker-compose.ymlce modèle n'est pas utilisé comme exemple pratique).

Conditions préalables et limitations

Prérequis

  • Un AWS compte

  • AWSInstallation CLI locale d'EB

  • 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

Pile technologique cible

  • Instances Amazon Elastic Compute Cloud (AmazonEC2)

  • Groupe de sécurité

  • Application Load Balancer

  • Groupe Auto Scaling

Architecture cible

Architecture pour le déploiement de conteneurs avec Elastic Beanstalk.

Automatisation et évolutivité

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

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 effectuer une mise à l'échelle en fonction de plusieurs statistiques, notamment la latence, les E/S du disque, CPU l'utilisation et le nombre de demandes. Pour plus d'informations, consultez la section Déclencheurs Auto Scaling.

Outils

AWSservices

  • AWSL'interface de ligne de commande (AWSCLI) est un outil open source qui vous permet d'interagir avec les AWS services par le biais de commandes dans votre interface de ligne de commande.

  • AWSL'interface de ligne de commande EB (EBCLI) 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 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 (AmazonEC2) dans une ou plusieurs zones de disponibilité.

Autres services

  • Docker regroupe 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.

Épopées

TâcheDescriptionCompétences requises

Clonez le référentiel distant.

  • Pour cloner le dépôt, exécutez la commandegit clone https://github.com/aws-samples/cluster-sample-app.git. < /p >

Développeur d'applications, AWS administrateur, AWS DevOps

Initialisez le projet Elastic Beanstalk Docker.

  1. Créez un fichier appelé aws.json à la racine.

  2. Dans le aws.json fichier, ajoutez le code suivant.

    {    "AWSEBDockerrunVersion":"1",    "Image":{       "Name":"cluster-sample-app"    },    "Ports":[       {          "ContainerPort":80,          "HostPort":8080       }    ] }
  3. Exécutez la commande eb init -p docker à la racine du projet.

Développeur d'applications, AWS administrateur, AWS DevOps

Testez le projet localement.

  1. Exécutez la commande eb local run à la racine du projet.

  2. Testez l'application en accédant à. http://localhost

Développeur d'applications, AWS administrateur, AWS DevOps
TâcheDescriptionCompétences requises

Exécuter la commande de déploiement

  1. Exécutez la commande eb create docker-sample-cluster-app à la racine du projet.

Développeur d'applications, AWS administrateur, 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, AWS administrateur, AWS DevOps
TâcheDescriptionCompétences requises

Déployez l'application à l'aide du navigateur.

  1. Ouvrez la console.

  2. Accédez à la console Elastic Beanstalk.

  3. Choisissez Create Application.

  4. Pour le nom de l'application, entrez Cluster-Sample-App.

  5. Choisissez Docker comme plateforme.

  6. Choisissez Importer votre code.

  7. Choisissez votre fichier .zip local (à la racine du projet cloné) ou un Amazon Simple Storage Service (Amazon S3) public. URL

Développeur d'applications, AWS administrateur, AWS DevOps

Accédez à la version déployée.

Après le déploiement, accédez à l'application déployée et choisissez celle qui est URL fournie.

Développeur d'applications, AWS administrateur, AWS DevOps

Ressources connexes

Informations supplémentaires

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