Qu'est-ce qu'Amazon Elastic Container Service ? - Amazon Elastic Container Service

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.

Qu'est-ce qu'Amazon Elastic Container Service ?

Amazon Elastic Container Service (Amazon ECS) est un service d'orchestration de conteneurs entièrement géré qui vous permet de déployer, de gérer et de dimensionner aisément des applications conteneurisées. En tant que service entièrement géré, Amazon ECS intègre les meilleures pratiques opérationnelles et de AWS configuration. Il est intégré à la fois à des outils AWS et à des outils tiers, tels qu'Amazon Elastic Container Registry et Docker. Cette intégration permet aux équipes de se concentrer plus facilement sur la création des applications, et non sur l'environnement. Vous pouvez exécuter et faire évoluer vos charges de travail de conteneurs Régions AWS dans le cloud et sur site, sans la complexité liée à la gestion d'un plan de contrôle.

Terminologie et composants Amazon ECS

Amazon ECS comporte trois couches :

  • Capacité : l'infrastructure dans laquelle vos conteneurs sont exécutés

  • Contrôleur : déploiement et gestion de vos applications qui s'exécutent sur les conteneurs

  • Provisionnement : les outils que vous pouvez utiliser pour interagir avec le planificateur afin de déployer et de gérer vos applications et vos conteneurs

Le schéma suivant illustre les couches Amazon ECS.

Schéma illustrant les couches de capacité, de contrôleur et de provisionnement.

Capacité Amazon ECS

La capacité Amazon ECS est l'infrastructure sur laquelle vos conteneurs s'exécutent. Voici un aperçu des options de capacité :

  • Instances Amazon EC2 dans le cloud AWS

    Vous choisissez le type d'instance, le nombre d'instances et vous gérez la capacité.

  • Sans serveur (AWS Fargate (Fargate)) dans le cloud AWS

    Fargate est un moteur de calcul sans serveur pay-as-you-go . Avec Fargate, vous n'avez pas besoin de gérer les serveurs, de gérer la planification de la capacité ou d'isoler les charges de travail des conteneurs pour des raisons de sécurité.

  • Machines virtuelles (VM) ou serveurs sur site

    Amazon ECS Anywhere fournit un support pour l'enregistrement d'une Instance externe, telle qu'un serveur sur site ou une machine virtuelle (VM), sur votre cluster Amazon ECS.

La capacité peut être localisée dans l'une des AWS ressources suivantes :

  • Zones de disponibilité

  • Local Zones

  • Zones Wavelength

  • Régions AWS

  • AWS Outposts

Contrôleur Amazon ECS

Le planificateur Amazon ECS est le logiciel qui gère vos applications.

Provisionnement Amazon ECS

Il existe plusieurs options pour le provisionnement d'Amazon ECS :

  • AWS Management Console — Offre une interface web que vous pouvez utiliser pour accéder à vos ressources Amazon ECS.

  • AWS Command Line Interface (AWS CLI) — Fournit des commandes pour un large éventail de AWS services, y compris Amazon ECS. Elle est prise en charge sur Windows, Mac et Linux. Pour plus d’informations, consultez AWS Command Line Interface.

  • AWS SDK — Fournit des API spécifiques au langage et prend en charge de nombreux détails de connexion. Ces outils incluent le calcul des signatures, la gestion des nouvelles tentatives de demande et la gestion des erreurs. Pour plus d’informations, consultez Kits SDK AWS.

  • Copilot : fournit un outil open source permettant aux développeurs de créer, de publier et d'exploiter des applications conteneurisées prêtes à la production sur Amazon ECS. Pour plus d'informations, consultez Copilot sur le GitHub site Web.

  • AWS CDK— Fournit un cadre de développement logiciel open source que vous pouvez utiliser pour modéliser et allouer vos ressources d'applications cloud à l'aide de langages de programmation familiers. Le AWS CDK alloue vos ressources de manière sûre et répétable grâce à AWS CloudFormation.

Cycle de vie des applications

Le schéma suivant montre le cycle de vie de l'application et son fonctionnement avec les composants Amazon ECS.

Schéma illustrant les couches de capacité, de contrôleur et de provisionnement.

Vous devez concevoir vos applications de manière à ce qu'elles puissent s'exécuter sur des conteneurs. Un conteneur est une unité standardisée de développement logiciel qui contient tout ce dont votre application logicielle a besoin pour être exécutée. Cela inclut le code, l'exécution, les outils système et les bibliothèques système pertinents. Les conteneurs sont créés à partir d'un modèle en lecture seule appelé image. Les images sont généralement créées à partir d'un fichier Dockerfile. Un Dockerfile est un fichier en texte brut qui contient les instructions pour créer un conteneur. Après leur création, ces images sont stockées dans un registre, comme Amazon ECR, d'où elles peuvent être téléchargées.

Après avoir créé et stocké votre image, vous créez une définition de tâche Amazon ECS. Une définition de tâche est le plan de votre application. Il s'agit d'un fichier texte au format JSON qui décrit les paramètres et un ou plusieurs conteneurs qui forment votre application. Par exemple, vous pouvez l'utiliser pour spécifier l'image et les paramètres du système d'exploitation, les conteneurs à utiliser, les ports à ouvrir pour votre application et les volumes de données à utiliser avec les conteneurs dans la tâche. Les paramètres spécifiques disponibles pour votre définition de tâche dépendent des besoins de votre application spécifique.

Après avoir défini votre définition de tâche, vous la déployez sous forme de service ou de tâche sur votre cluster. Un cluster est un regroupement logique de tâches ou de services qui s'exécute sur l'infrastructure de capacité enregistrée dans un cluster.

Une tâche est l'instanciation d'une définition de tâche au sein d'un cluster. Vous pouvez exécuter une tâche autonome ou exécuter une tâche dans le cadre d'un service. Vous pouvez utiliser un service Amazon ECS service pour exécuter et gérer simultanément le nombre souhaité de tâches dans un cluster Amazon ECS. Le principe est le suivant : si l'une de vos tâches échoue ou s'arrête pour une raison quelconque, le planificateur de service d'Amazon ECS service lance une autre instance en fonction de votre définition de tâche. Il procède ainsi pour le remplacer et donc maintenir le nombre de tâches souhaité dans le service.

L'agent de conteneur s'exécute sur chaque instance de conteneur dans un cluster Amazon ECS. L'agent envoie à Amazon ECS des informations relatives aux tâches en cours d'exécution et à l'utilisation des ressources de vos conteneurs. Il démarre et arrête les tâches lorsqu'il reçoit une requête de la part d'Amazon ECS.

Une fois la tâche ou le service déployés, vous pouvez utiliser l'un des outils suivants pour surveiller votre déploiement et votre application :

  • CloudWatch

  • Surveillance d'exécution