QuickStart: Déployer une application Docker sur Elastic Beanstalk - AWS Elastic Beanstalk

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.

QuickStart: Déployer une application Docker sur Elastic Beanstalk

Ce QuickStart didacticiel explique le processus de création d'une application Docker et de son déploiement dans un AWS Elastic Beanstalk environnement.

Note

Ce QuickStart didacticiel est destiné à des fins de démonstration. N'utilisez pas l'application créée dans ce didacticiel pour le trafic de production.

Votre AWS compte

Si vous n'êtes pas encore AWS client, vous devez créer un AWS compte. L'inscription vous permet d'accéder à Elastic Beanstalk AWS et aux autres services dont vous avez besoin.

Si vous avez déjà un AWS compte, vous pouvez passer àPrérequis.

Inscrivez-vous pour un Compte AWS

Si vous n'en avez pas Compte AWS, procédez comme suit pour en créer un.

Pour vous inscrire à un Compte AWS
  1. Ouvrez https://portal.aws.amazon.com/billing/signup.

  2. Suivez les instructions en ligne.

    Dans le cadre de la procédure d‘inscription, vous recevrez un appel téléphonique et vous saisirez un code de vérification en utilisant le clavier numérique du téléphone.

    Lorsque vous vous inscrivez à un Compte AWS, un Utilisateur racine d'un compte AWSest créé. Par défaut, seul l‘utilisateur racine a accès à l‘ensemble des AWS services et des ressources de ce compte. La meilleure pratique en matière de sécurité consiste à attribuer un accès administratif à un utilisateur et à n'utiliser que l'utilisateur root pour effectuer les tâches nécessitant un accès utilisateur root.

AWS vous envoie un e-mail de confirmation une fois le processus d'inscription terminé. Vous pouvez afficher l‘activité en cours de votre compte et gérer votre compte à tout moment en accédant à https://aws.amazon.com/ et en choisissant Mon compte.

Création d'un utilisateur doté d'un accès administratif

Une fois que vous vous êtes inscrit à un utilisateur administratif Compte AWS, que vous Utilisateur racine d'un compte AWS l'avez sécurisé AWS IAM Identity Center, que vous l'avez activé et que vous en avez créé un, afin de ne pas utiliser l'utilisateur root pour les tâches quotidiennes.

Sécurisez votre Utilisateur racine d'un compte AWS
  1. Connectez-vous en AWS Management Consoletant que propriétaire du compte en choisissant Utilisateur root et en saisissant votre adresse Compte AWS e-mail. Sur la page suivante, saisissez votre mot de passe.

    Pour obtenir de l‘aide pour vous connecter en utilisant l‘utilisateur racine, consultez Connexion en tant qu‘utilisateur racine dans le Guide de l‘utilisateur Connexion à AWS .

  2. Activez l‘authentification multifactorielle (MFA) pour votre utilisateur racine.

    Pour obtenir des instructions, consultez la section Activer un périphérique MFA virtuel pour votre utilisateur Compte AWS root (console) dans le guide de l'utilisateur IAM.

Création d'un utilisateur doté d'un accès administratif
  1. Activez IAM Identity Center.

    Pour obtenir des instructions, consultez Activation d’ AWS IAM Identity Center dans le Guide de l’utilisateur AWS IAM Identity Center .

  2. Dans IAM Identity Center, accordez un accès administratif à un utilisateur.

    Pour un didacticiel sur l'utilisation du Répertoire IAM Identity Center comme source d'identité, voir Configurer l'accès utilisateur avec la valeur par défaut Répertoire IAM Identity Center dans le Guide de AWS IAM Identity Center l'utilisateur.

Connectez-vous en tant qu'utilisateur disposant d'un accès administratif
  • Pour vous connecter avec votre utilisateur IAM Identity Center, utilisez l‘URL de connexion qui a été envoyée à votre adresse e-mail lorsque vous avez créé l‘utilisateur IAM Identity Center.

    Pour obtenir de l'aide pour vous connecter en utilisant un utilisateur d'IAM Identity Center, consultez la section Connexion au portail AWS d'accès dans le guide de l'Connexion à AWS utilisateur.

Attribuer l'accès à des utilisateurs supplémentaires
  1. Dans IAM Identity Center, créez un ensemble d'autorisations conforme aux meilleures pratiques en matière d'application des autorisations du moindre privilège.

    Pour obtenir des instructions, voir Création d'un ensemble d'autorisations dans le guide de AWS IAM Identity Center l'utilisateur.

  2. Affectez des utilisateurs à un groupe, puis attribuez un accès d'authentification unique au groupe.

    Pour obtenir des instructions, consultez la section Ajouter des groupes dans le guide de AWS IAM Identity Center l'utilisateur.

Prérequis

Pour suivre les procédures décrites dans ce guide, vous aurez besoin d'un shell ou d'un terminal de ligne de commande pour exécuter des commandes. Dans les listes, les commandes sont précédées d'un symbole d'invite ($) et du nom du répertoire actuel, le cas échéant.

~/eb-project$ this is a command this is output

Sous Linux et macOS, vous pouvez utiliser le shell et le gestionnaire de package de votre choix. Sur Windows, vous pouvez installer le sous-système Windows pour Linux afin d'obtenir une version intégrée à Windows d'Ubuntu et de Bash.

INTERFACE DE LIGNE DE COMMANDE (CLI) EB

Ce tutoriel utilise également l'interface de ligne de commande Elastic Beanstalk (CLI EB). Pour de plus amples informations sur l'installation et la configuration de la CLI EB, veuillez consulter Installation de l'interface de ligne de commande EB et Configuration de l'interface de ligne de commande EB.

Docker

Pour suivre ce didacticiel, vous aurez besoin d'une installation locale fonctionnelle de Docker. Pour de plus amples informations, veuillez consulter Get Docker (Obtenir Docker) sur le site web de documentation de Docker.

Vérifiez que le daemon Docker est en cours d'exécution en exécutant la commande suivante.

~$ docker info

Étape 1 : créer une application et un conteneur Docker

Dans cet exemple, nous créons une image Docker de l'exemple d'application Flask qui est également référencée dans. Déploiement d'une application Flask sur Elastic Beanstalk

L'application est composée de deux fichiers :

  • app.py— le fichier Python qui contient le code qui sera exécuté dans le conteneur.

  • Dockerfile— le Dockerfile pour créer votre image.

Placez les deux fichiers à la racine d'un répertoire.

~/eb-docker-flask/ |-- Dockerfile |-- app.py

Ajoutez le contenu suivant à votreDockerfile.

Exemple ~/eb-docker-flask/Dockerfile
FROM python:3.12 COPY . /app WORKDIR /app RUN pip install Flask==3.0.2 EXPOSE 5000 CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]

Ajoutez le contenu suivant à votre app.py fichier.

Exemple ~/eb-docker-flask/app.py
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello Elastic Beanstalk! This is a Docker application'

Créez votre conteneur Docker en balisant l'image avec. eb-docker-flask

~/eb-docker-flask$ docker build -t eb-docker-flask

Étape 2 : Exécutez votre application localement

Utilisez la commande docker build pour créer votre image de conteneur localement, en l'étiquetant avec. eb-docker-flask Le point (.) à la fin de la commande indique que le chemin est un répertoire local.

~/eb-docker-flask$ docker run -dp 127.0.0.1:5000:5000 eb-docker-flask .

Exécutez votre conteneur avec la commande docker run. La commande imprimera l'ID du conteneur en cours d'exécution. L'-doption exécute docker en mode arrière-plan. L'-poption expose votre application sur le port 5000. Elastic Beanstalk achemine le trafic vers le port 5000 de la plateforme Docker par défaut.

~/eb-docker-flask$ docker run -dp 127.0.0.1:5000:5000 eb-docker-flask container-id

Accédez à http://127.0.0.1:5000/ dans votre navigateur. Vous devriez voir le texte « Hello Elastic Beanstalk ! Il s'agit d'une application Docker ».

Exécutez la commande docker kill pour terminer le conteneur.

~/eb-docker-flask$ docker kill container-id

Étape 3 : Déployez votre application Docker avec l'EB CLI

Exécutez les commandes suivantes pour créer un environnement Elastic Beanstalk pour cette application.

Pour créer un environnement et déployer votre application Docker
  1. Initialisez votre référentiel de la CLI EB avec la commande eb init :

    ~/eb-docker-flask$ eb init -p docker docker-tutorial us-east-2 Application docker-tutorial has been created.

    Cette commande crée une application nommée docker-tutorial et configure votre référentiel local pour créer des environnements avec la dernière version de la plateforme Docker.

  2. (facultatif) Exécutez à nouveau la commande eb init pour configurer une paire de clés par défaut afin de pouvoir vous connecter à l'instance EC2 qui exécute votre application.

    ~/eb-docker-flask$ eb init Do you want to set up SSH for your instances? (y/n): y Select a keypair. 1) my-keypair 2) [ Create new KeyPair ]

    Sélectionnez une paire de clés si vous en avez déjà une, ou suivez les invites pour en créer une. Si vous ne voyez pas l'invite ou que vous avez besoin de modifier vos paramètres ultérieurement, exécutez eb init -i.

  3. Créez un environnement et déployez-y votre application avec eb create. Elastic Beanstalk crée automatiquement un fichier zip pour votre application et le démarre sur le port 5000.

    ~/eb-docker-flask$ eb create docker-tutorial

    Il faut environ cinq minutes à Elastic Beanstalk pour créer votre environnement.

Étape 4 : Exécutez votre application sur Elastic Beanstalk

Lorsque le processus de création de votre environnement est terminé, ouvrez votre site Web aveceb open.

~/eb-docker-flask$ eb open

Félicitations ! Vous avez déployé une application Docker avec Elastic Beanstalk ! Celle-ci ouvre une fenêtre de navigation en utilisant le nom de domaine créé pour votre application.

Étape 5 : nettoyer

Vous pouvez mettre fin à votre environnement lorsque vous avez fini d'utiliser votre application. Elastic Beanstalk AWS met fin à toutes les ressources associées à votre environnement.

Pour mettre fin à votre environnement Elastic Beanstalk avec l'EB CLI, exécutez la commande suivante.

~/eb-docker-flask$ eb terminate

AWS ressources pour votre application

Vous venez de créer une application à instance unique. Il s'agit d'un exemple d'application simple avec une seule instance EC2, de sorte qu'il ne nécessite pas d'équilibrage de charge ni de dimensionnement automatique. Pour les applications à instance unique, Elastic Beanstalk crée les ressources suivantes : AWS

  • Instance EC2 – Une machine virtuelle Amazon EC2 configurée pour exécuter des applications web sur la plateforme de votre choix.

    Chaque plateforme exécute un ensemble distinct de logiciels, de fichiers de configuration et de scripts pour prendre en charge une version de langage, une infrastructure ou un conteneur web spécifiques, ou une combinaison de ces éléments. La plupart des plateformes utilisent Apache ou nginx comme proxy inverse qui traite le trafic web devant votre application web, lui transmet les demandes, traite les ressources statiques et génère des journaux d'accès et d'erreurs.

  • Groupe de sécurité de l'instance – Un groupe de sécurité Amazon EC2 configuré pour autoriser le trafic entrant sur le port 80. Cette ressource autorise le trafic HTTP provenant de l'équilibreur de charge à atteindre l'instance EC2 qui exécute votre application web. Par défaut, le trafic n'est pas autorisé sur les autres ports.

  • Compartiment Amazon S3 – Emplacement de stockage pour votre code source, les journaux et autres artefacts qui sont créés lorsque vous utilisez Elastic Beanstalk.

  • CloudWatch Alarmes Amazon : deux CloudWatch alarmes qui surveillent la charge sur les instances de votre environnement et sont déclenchées si la charge est trop élevée ou trop faible. Lorsqu'une alarme est déclenchée, votre groupe Auto Scaling s'adapte en fonction, à la hausse ou à la baisse.

  • AWS CloudFormation stack — Elastic AWS CloudFormation Beanstalk utilise pour lancer les ressources de votre environnement et propager les modifications de configuration. Les ressources sont définies dans un modèle, que vous pouvez afficher dans la console AWS CloudFormation.

  • Nom de domaine – Nom de domaine qui permet d'accéder à votre application web sous la forme sous-domaine.région.elasticbeanstalk.com.

Elastic Beanstalk gère toutes ces ressources. Lorsque vous arrêtez votre environnement, Elastic Beanstalk arrête toutes les ressources qu'il contient.

Étapes suivantes

Dès que vous disposez d'un environnement exécutant une application, vous pouvez à tout moment déployer une nouvelle version de l'application ou une application totalement différente. Le déploiement d'une nouvelle version d'application est très rapide, car il n'est pas nécessaire de mettre en service ni de redémarrer les instances EC2. Vous pouvez également explorer votre nouvel environnement à l'aide de la console Elastic Beanstalk. Pour connaître les étapes détaillées, consultez la section Explorez votre environnement dans le chapitre Mise en route de ce guide.

Une fois que vous avez déployé un ou deux exemples d'applications et que vous êtes prêt à commencer à développer et à exécuter des applications Docker localement, voir

Déployez avec la console Elastic Beanstalk

Vous pouvez également utiliser la console Elastic Beanstalk pour lancer l'exemple d'application. Pour connaître les étapes détaillées, voir Création d'un exemple d'application dans le chapitre Mise en route de ce guide.