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 une application en cluster sur Amazon ECS à l'aide d'AWS Copilot
Créée par Jean-Baptiste Guillois (AWS), Mathew George (AWS) et Thomas Scott (AWS)
Récapitulatif
Ce modèle montre comment déployer des conteneurs dans un cluster Amazon Elastic Container Service (Amazon ECS) de deux manières : en utilisant la console de gestion Amazon Web Services (AWS) et en utilisant AWS CoPilot, afin de montrer comment AWS Copilot simplifie les tâches de déploiement.
Amazon ECS est un service de gestion de conteneurs rapide et hautement évolutif qui facilite l'exécution, l'arrêt et la gestion des conteneurs sur un cluster. Vos conteneurs sont définis dans une définition de tâche qui vous sert à exécuter des tâches individuelles ou des tâches dans un service. Vous pouvez exécuter vos tâches et services sur une infrastructure sans serveur gérée par AWS Fargate. Pour mieux contrôler votre infrastructure, vous pouvez également exécuter vos tâches et services sur un cluster d'instances Amazon Elastic Compute Cloud (Amazon EC2) que vous gérez.
Les commandes de l'interface de ligne de commande (CLI) AWS Copilot simplifient la création, le lancement et l'exploitation d'applications conteneurisées prêtes pour la production sur Amazon ECS à partir d'un environnement de développement local. La CLI AWS Copilot s'aligne sur les flux de travail des développeurs qui prennent en charge les meilleures pratiques en matière d'applications modernes : de l'utilisation de l'infrastructure sous forme de code à la création d'un pipeline d'intégration et de livraison continues (CI/CD) provisionné pour le compte d'un utilisateur. Vous pouvez utiliser l'interface de ligne de commande AWS Copilot dans le cadre de votre cycle quotidien de développement et de test comme alternative à l'AWS Management Console.
Conditions préalables et limitations
Prérequis
Un compte AWS actif
Interface de ligne de commande AWS (AWS CLI) installée localement et configurée pour utiliser votre compte AWS (consultez les instructions d'installation et les instructions de configuration dans la documentation de l'AWS CLI)
AWS Copilot installé localement (consultez les instructions d'installation dans la documentation Amazon ECS)
Docker installé sur votre machine locale (voir la documentation Docker
)
Limites
Docker applique des limites d'extraction de 100 images de conteneur par 6 heures et par adresse IP dans le cadre du forfait gratuit.
Architecture
Pile technologique cible
Environnement AWS configuré avec un cloud privé virtuel (VPC), des sous-réseaux publics et privés et des groupes de sécurité
Cluster Amazon ECS
Définition du service et des tâches Amazon ECS
Amazon Elastic Container Registry (Amazon ECR)
Amazon DynamoDB
Application Load Balancer
AWS Fargate
Amazon Identity and Access Management (IAM) (IAM)
Amazon CloudWatch
AWS CloudTrail
Architecture cible
Lorsque vous déployez l'exemple d'application pour ce modèle, plusieurs tâches sont créées et déployées dans des zones de disponibilité distinctes. Chaque tâche stocke les données dans Amazon DynamoDB. Lorsque vous accédez à la page Web d'une tâche, vous pouvez consulter les données de toutes les autres tâches.

Outils
Services AWS
Amazon ECR — Amazon Elastic Container Registry (Amazon ECR) est un service de registre d'images de conteneurs géré par AWS qui est sécurisé, évolutif et fiable. Amazon ECR prend en charge les référentiels privés avec des autorisations basées sur les ressources à l'aide d' IAM.
Amazon ECS — Amazon Elastic Container Service (Amazon ECS) est un service de gestion de conteneurs rapide et hautement évolutif permettant d'exécuter, d'arrêter et de gérer des conteneurs sur un cluster. Vous pouvez exécuter vos tâches et services sur une infrastructure sans serveur gérée par AWS Fargate. Pour mieux contrôler votre infrastructure, vous pouvez également exécuter vos tâches et services sur un cluster d'instances Amazon Elastic Compute Cloud (Amazon EC2) que vous gérez.
AWS Copilot — AWS Copilot fournit une interface de ligne de commande qui vous aide à lancer et à gérer des applications conteneurisées sur AWS, notamment en les transférant vers un registre, en créant une définition de tâche et en créant un cluster.
AWS Fargate — AWS Fargate est un moteur de calcul pay-as-you-go sans serveur qui vous permet de vous concentrer sur le développement d'applications sans gérer de serveurs. AWS Fargate est compatible avec Amazon ECS et Amazon Elastic Kubernetes Service (Amazon EKS). Lorsque vous exécutez vos tâches et services Amazon ECS avec le type de lancement Fargate ou un fournisseur de capacité Fargate, vous créez le package de votre application dans des conteneurs, spécifiez les besoins en CPU et mémoire, définissez les stratégies réseaux et IAM, et vous lancez l'application. Chaque tâche Fargate possède sa propre limite d'isolation et ne partage pas le noyau sous-jacent, les ressources du processeur, les ressources de mémoire ou l'interface elastic network avec une autre tâche.
Amazon DynamoDB — Amazon DynamoDB est un service de base de données NoSQL entièrement géré qui fournit des performances rapides et prévisibles ainsi qu'une évolutivité sans faille.
Elastic Load Balancing (ELB) — Elastic Load Balancing distribue automatiquement votre trafic entrant sur plusieurs cibles, telles que les EC2 instances, les conteneurs et les adresses IP, dans une ou plusieurs zones de disponibilité. Il contrôle l'état des cibles enregistrées et achemine le trafic uniquement vers les cibles saines. Elastic Load Balancing met à l'échelle votre équilibreur de charge à mesure que votre trafic entrant change au fil du temps. Il est capable de s'adapter automatiquement à la plupart des applications.
Outils
Code
Le code de l'exemple d'application utilisé dans ce modèle est disponible sur GitHub, dans le référentiel Cluster Sample Application
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Clonez le GitHub dépôt. | Clonez le référentiel d'exemples de code à l'aide de la commande :
| Développeur d'applications, AWS DevOps |
Créez votre référentiel Amazon ECR. |
Pour plus d'informations, consultez la section Création d'un référentiel privé dans la documentation Amazon ECR. | Développeur d'applications, AWS DevOps |
Créez, balisez et transférez votre image Docker dans votre référentiel Amazon ECR. |
Pour authentifier votre client Docker auprès du registre :
Pour créer votre image Docker :
Pour baliser votre image Docker :
Pour transférer l'image Docker vers votre dépôt :
| Développeur d'applications, AWS DevOps |
Déployez la pile d'applications. |
Pour plus d'informations sur le déploiement CloudFormation de modèles, consultez la section Création d'une pile dans la CloudFormation documentation AWS. | AWS DevOps, développeur d'applications |
Tâche | Description | Compétences requises |
---|---|---|
Clonez le GitHub dépôt. | Clonez le référentiel d'exemples de code à l'aide de la commande :
| Développeur d'applications, AWS DevOps |
Déployez votre image de conteneur sur AWS à l'aide de l'interface de ligne de commande AWS Copilot. | Déployez l'application en une seule étape à l'aide de la commande suivante dans le répertoire racine de votre projet :
Vous devriez ensuite pouvoir accéder à l'application en utilisant le nom DNS fourni en sortie. | Développeur d'applications, AWS DevOps |
Tâche | Description | Compétences requises |
---|---|---|
Supprimez les ressources créées via l'AWS Management Console. | Si vous avez utilisé l'option 1 (AWS Management Console) pour déployer la pile d'applications, suivez ces étapes lorsque vous êtes prêt à supprimer les ressources que vous avez créées :
| Développeur d'applications, AWS DevOps |
Supprimez les ressources créées par AWS Copilot. | Si vous avez utilisé l'option 2 (la CLI AWS Copilot) pour déployer la pile d'applications, exécutez la commande suivante depuis le répertoire racine de votre projet lorsque vous êtes prêt à supprimer les ressources que vous avez créées :
| Développeur d'applications, AWS DevOps |
Ressources connexes
Installation ou mise à jour de la dernière version de l'AWS CLI (documentation de l'AWS CLI)
Utilisation de l'interface de ligne de commande AWS Copilot (documentation Amazon ECS)
Amazon ECS sur AWS Fargate (documentation Amazon ECR)
Docker Desktop
(documentation Docker)