Fonctionnalités d'Amazon ECS

Amazon Elastic Container Service (Amazon ECS) est un service d'orchestration de conteneurs entièrement géré qui vous permet de déployer, gérer et mettre à l'échelle en toute simplicité des applications conteneurisées. Sans version et opiniâtre, le plan de contrôle Amazon ECS s'intègre parfaitement au reste de l'environnement AWS afin de fournir une solution sécurisée et facile à utiliser pour exécuter des charges de travail de conteneurs dans le cloud. Amazon ECS peut fonctionner avec Amazon Elastic Compute Cloud (Amazon EC2), AWS Fargate ou même avec une infrastructure sur site avec Amazon ECS Anywhere.

Fonctions principales

AWS Fargate est intégré à Amazon ECS, ce qui signifie que vous n'avez plus à vous soucier de la gestion des serveurs, de la planification de la capacité ni de l'isolation des charges de travail de conteneurs pour assurer la sécurité. Il vous suffit de définir les exigences de votre application, de sélectionner AWS Fargate comme type de lancement dans la console ou dans l'interface de ligne de commande (CLI), et AWS Fargate se charge de toute la mise à l'échelle et de la gestion de l'infrastructure nécessaires pour exécuter vos conteneurs via des options de calcul flexibles, avec des intégrations automatiques aux autres services AWS de support dont votre application a besoin.

Avec Amazon ECS Anywhere, vous pouvez utiliser la même console Amazon ECS et les mêmes outils d'opérateur que vous connaissez déjà pour gérer les charges de travail de conteneurs sur site. Cela garantit une expérience homogène dans vos applications basées sur des conteneurs. Vous pouvez utiliser Amazon ECS sur AWS Outposts pour exécuter des applications conteneurisées qui nécessitent des latences particulièrement faibles sur les systèmes sur site.

Amazon ECS s'intègre de manière native à vos outils de sécurité, d'identité ainsi que de gestion et de gouvernance de confiance, ce qui vous permet de passer rapidement et avec succès à la production. Vous pouvez octroyer des autorisations détaillées à chacun de vos conteneurs, ce qui vous offre un haut niveau d'isolation lors de la création de vos applications. Lancez vos conteneurs avec les niveaux de sécurité et de conformité auxquels vous vous attendez d'AWS. De plus, grâce aux intégrations avec Amazon GuardDuty, vous pouvez détecter rapidement et facilement les menaces externes qui pèsent sur vos charges de travail avant qu'elles ne s'aggravent.

Amazon ECS est un service d'orchestration de conteneurs entièrement géré qui intègre les bonnes pratiques opérationnelles et de configuration AWS et ne comporte aucun plan de contrôle, nœud ou ni module complémentaire. Il est intégré de manière native aux outils AWS et tiers afin de permettre aux équipes de se concentrer sur la création des applications, pas l’environnement.

Développement

Amazon ECS prend en charge la gestion des conteneurs Windows. Une Amazon Machine Image (AMI) Windows optimisée pour Amazon ECS offre des performances accrues en termes de lancement des instances et conteneurs, ainsi qu'une visibilité sur la CPU, l'utilisation de la mémoire et les métriques de réservation.

La CLI AWS Copilot est un outil qui permet aux développeurs de créer, de publier et d'exploiter des applications conteneurisées prêtes pour la production sur Amazon ECS et AWS Fargate. Copilot reprend les bonnes pratiques, de l'infrastructure à la diffusion en continu, et les met à disposition des clients à partir de leur ligne de commande. Vous pouvez également surveiller l'état de votre service en consultant son statut ou ses journaux, procéder à une mise à l'échelle ascendante ou descendante des services de production, et créer un nouvel environnement pour les tests automatisés. Téléchargez AWS Copilot.

Amazon ECS peut être utilisé avec tous les référentiels d'images Docker hébergés tiers ou tous les registres Docker privés accessibles, comme Docker Hub et Amazon Elastic Container Registry (ECR). Il vous suffit d'indiquer le référentiel dans votre définition de tâches et Amazon ECS récupère les images appropriées pour vos applications.

Gestion

Amazon ECS vous permet de définir les tâches à exécuter via un modèle JSON (JavaScript Object Notation) déclaratif nommé Définition de tâche. Pour chaque définition de tâches, vous pouvez indiquer un ou plusieurs conteneurs nécessaires à l'exécution de la tâche, y compris l'image et le référentiel Docker, ainsi que les besoins en termes de mémoire et de CPU, les volumes de données partagés et les liens existants entre les différents conteneurs. Vous pouvez lancer autant de tâches que vous le souhaitez à partir d'un seul fichier de définition de tâches que vous enregistrez auprès du service. De plus, les fichiers de définition de tâches vous permettent de gérer les versions de votre spécification d'application.

Amazon ECS met à votre disposition un ensemble d'actions API simples facilitant son intégration ou son extension. Les actions d'API vous permettent de créer et de supprimer des clusters, d'enregistrer des tâches et d'annuler leur enregistrement, de lancer et d'arrêter des conteneurs Docker, mais aussi de consulter des informations détaillées sur l'état de votre cluster et de ses instances. Vous pouvez également utiliser AWS CloudFormation pour allouer des clusters Amazon ECS, enregistrer des définitions de tâches et planifier des conteneurs.

Amazon ECS vous permet de mettre facilement à jour vos conteneurs. Il vous suffit d'importer une nouvelle version du fichier de définition des tâches de votre application et le planificateur Amazon ECS lance automatiquement de nouveaux conteneurs utilisant l'image mise à jour, tandis que les anciens conteneurs sont arrêtés. Amazon ECS enregistre et annule automatiquement l'enregistrement de vos conteneurs dans l'équilibreur de charge d'application associé.

Amazon ECS effectue la récupération automatique de tout conteneur défectueux afin que vous puissiez disposer du nombre de conteneurs requis pour votre application.

Les fournisseurs des fonctionnalités vous permettent de définir des règles flexibles sur la façon dont les charges de travail des conteneurs s'exécutent sur les différents types de capacités de calcul. Vous pouvez également gérer la mise à l'échelle des fonctionnalités. Les fournisseurs de capacité travaillent à la fois avec Amazon Elastic Compute Cloud (Amazon EC2) et AWS Fargate. Lors de l’exécution de tâches et de services, vous pouvez les répartir sur plusieurs fournisseurs des fonctionnalités, permettant ainsi de nouvelles fonctionnalités telles que l’exécution d’un service dans un pourcentage de répartition prédéfini sur Fargate et Fargate Spot.

Amazon Elastic Block Store (Amazon EBS) est un service de stockage par blocs performant, évolutif et facile à utiliser qui vous permet de fournir un stockage rentable pour vos déploiements Amazon ECS et AWS Fargate. Vous pouvez utiliser toutes les configurations et fonctionnalités EBS avec vos charges de travail de conteneurs déployées sur Amazon ECS.

Amazon Elastic File System (Amazon EFS) est un système de fichiers simple, évolutif, élastique et entièrement géré qui vous permet de créer des applications modernes. Il vous permet également de conserver et de partager les données et les états à partir de vos déploiements Amazon ECS et AWS Fargate. Tous les aspects liés à l'utilisation d'Amazon EFS avec des conteneurs, y compris la connectivité, sont pris en charge sans aucune gestion requise. Vous pouvez simplement vous concentrer sur vos applications, pas sur l'infrastructure. Découvrez-en plus sur le stockage de fichiers persistants.

Planification et placement de tâches

Amazon ECS inclut plusieurs stratégies de planification qui placent vos conteneurs sur vos différents clusters en fonction des ressources requises (par exemple, CPU ou RAM) et des exigences en termes de disponibilité. À l'aide des stratégies de planification fournies, vous pouvez planifier des lots de tâches, des applications et des services de longue durée et des processus démon.

La planification de tâches d'Amazon ECS vous permet d'exécuter des processus qui réalisent une tâche et qui s'arrêtent ensuite, à l'instar des tâches de traitement par lots. La planification de tâches lance des tâches automatiquement pour une file d'attente de tâches ou en fonction d'un intervalle de temps que vous définissez.

En savoir plus sur la planification des tâches Amazon ECS »

La planification d'Amazon ECS service vous permet d'exécuter des services et des applications sans état. Cette stratégie de planification garantit qu'un nombre spécifié de tâches sont constamment exécutées et redémarre les tâches en cas de défaillance. Les clients peuvent s'assurer que les tâches sont enregistrées par rapport à un équilibreur de charge Elastic Load Balancing, et vous pouvez effectuer les surveillances de l'état que vous définissez pour vos tâches en cours d'exécution.

La planification démon d'Amazon ECS exécute automatiquement la même tâche sur chaque instance sélectionnée de vos clusters ECS. Cette planification facilite l'exécution de tâches qui présentent des fonctionnalités de gestion courantes pour un service comme l'identification, la surveillance ou les sauvegardes.

Amazon ECS permet aux utilisateurs de personnaliser le placement des tâches sur un cluster d'instances Amazon EC2 en fonction d'attributs intégrés tels que le type d'instance, la zone de disponibilité ou des attributs personnalisés définis par l'utilisateur. Utilisez des attributs tels que « environnement = production » pour étiqueter des ressources, les actions d'API List pour trouver ces ressources, et les actions d'API RunTask et CreateService pour planifier des tâches sur ces ressources.

Avec Amazon ECS, utilisez des stratégies de placement tels que le bin packing et la répartition pour mieux définir le placement des tâches. Les stratégies peuvent être regroupées afin d'acquérir des capacités de placement sophistiquées sans avoir à écrire le moindre code.

Mise en réseau

Amazon ECS Service Connect simplifie la découverte de services, la connectivité et l'observabilité du trafic pour Amazon ECS. Cela vous aide à créer des applications plus rapidement en vous permettant de vous concentrer sur le code de l'application et non sur votre infrastructure réseau. Vous pouvez utiliser ECS Service Connect pour définir des noms logiques pour vos points de terminaison de service et les utiliser dans vos applications clientes pour vous connecter aux dépendances. ECS Service Connect facilite l'envoi de votre trafic vers des points de terminaison sains et fournit des données de télémétrie complètes sur le trafic dans la console ECS et dans Amazon CloudWatch. Les déploiements natifs ECS sont plus robustes avec ECS Service Connect, car ce service prend en charge le drainage automatique des connexions qui aide vos applications clientes à passer à une nouvelle version du point de terminaison du service sans rencontrer d'erreurs de trafic.

Avec ECS Service Connect, vous pouvez :

• définir la manière dont les applications clientes se connectent à leurs dépendances en une seule étape ;

• écrire et exploiter des applications distribuées résilientes avec une dénomination logique ;

• surveiller et distribuer le trafic entre les tâches ECS sans déployer ni configurer d'équilibreurs de charge ;

• déployer les services plus rapidement et assurer une intégration fluide des microservices ECS composant une application.

En savoir plus sur la migration des services Amazon ECS existants de découverte de service vers ECS Service Connect »

Amazon ECS est intégré à AWS Cloud Map pour que vos services conteneurisés puissent facilement se découvrir et se connecter entre eux. AWS Cloud Map est un service de découverte de ressources cloud qui vous permet de définir des noms personnalisés pour vos ressources d’applications. Il augmente la disponibilité de vos applications, car votre service web découvrira toujours les emplacements les plus récents de ces ressources qui changent dynamiquement.

En savoir plus sur la migration des services Amazon ECS existants de découverte de service vers ECS Service Connect »

Amazon ECS prend en charge la mise en réseau Docker et intègre Amazon VPC pour assurer l'isolation des conteneurs. Cela vous donne le contrôle sur la façon dont les conteneurs se connectent aux autres services et au trafic externe. Avec Amazon ECS, vous pouvez choisir entre quatre modes de mise en réseau pour vos conteneurs s'appliquant à quatre différents cas d'utilisation :

Mise en réseau de tâches/awsvpc
Ce mode attribue chaque tâche ECS en cours d'exécution à une interface de mise en réseau Elastic dédiée, ce qui donne aux conteneurs des fonctionnalités de mise en réseau complètes dans un VPC, à l'instar des instances EC2.

Pont
Ce mode crée un pont Linux qui relie tous les conteneurs s'exécutant sur l'hôte dans un réseau virtuel local, accessible via la connexion réseau par défaut de l'hôte.

Hôte
Ce mode ajoute des conteneurs directement à la pile réseau de l'hôte, exposant les conteneurs sur le réseau de l'hôte sans isolation.

Aucun
Ce mode désactive la mise en réseau externe pour les conteneurs.

Le service Amazon ECS est intégré à Elastic Load Balancing, ce qui vous permet de répartir le trafic entre vos conteneurs à l'aide d'Application Load Balancers ou de Network Load Balancers. Vous précisez la définition des tâches et l'équilibreur de charge à utiliser, et Amazon ECS ajoute et supprime automatiquement les conteneurs au niveau de l'équilibreur de charge. Spécifiez un port dynamique dans la définition des tâches. Ainsi, votre conteneur dispose d'un port encore inexploité lorsqu'il est programmé sur une instance EC2. Utilisez également un routage par chemin pour partager un équilibreur de charge entre plusieurs services.

Surveillance et journalisation

Amazon ECS fournit des capacités de surveillance pour vos conteneurs et clusters via Amazon CloudWatch. Vous pouvez surveiller l'utilisation moyenne et globale des ressources CPU et de la mémoire pour les tâches en cours d'exécution, regroupées par définition de tâches, service ou cluster. Définissez des alarmes CloudWatch afin d'être averti lorsque vos conteneurs ou clusters doivent être mis à l'échelle.

Amazon ECS vous permet d'enregistrer tous les appels d'API Amazon ECS et de recevoir les fichiers journaux correspondants via AWS CloudTrail. Les informations enregistrées incluent l'identité de l'utilisateur à l'origine de l'appel de l'API, l'heure de l'appel, l'adresse IP d'origine, les paramètres de la requête, ainsi que les éléments de réponse renvoyés par Amazon ECS. CloudTrail fournit l'historique des appels d'API effectués depuis AWS Management Console, les kits SDK AWS et l'interface de ligne de commande AWS. Le service permet de réaliser une analyse de sécurité, un suivi des modifications au niveau des ressources, ainsi que des audits de conformité.

AWS Config s'intègre à Amazon ECS pour vous fournir une visibilité sur la configuration des ressources AWS dans votre compte AWS. AWS Config permet aux utilisateurs de surveiller et de suivre la manière dont les ressources ont été configurées, comment elles sont liées les unes aux autres et comment les configurations et les relations évoluent au fil du temps. AWS Config vous permet de simplifier la conformité et la sécurité, le dépannage opérationnel et l'administration des ressources.

Déploiements hybrides

Vous pouvez utiliser Amazon ECS sur AWS Outposts pour exécuter des applications conteneurisées qui nécessitent des latences particulièrement faibles sur les systèmes sur site. Outposts est un service entièrement géré qui étend l'infrastructure, les services, les API et les outils AWS à pratiquement n'importe quel site connecté. Avec Amazon ECS sur Outposts, vous pouvez gérer les conteneurs sur site avec la même facilité que vos conteneurs dans le cloud.

Avec Amazon ECS Anywhere, vous pouvez utiliser les mêmes console Amazon ECS et outils d’opérateur que vous connaissez déjà pour gérer les charges de travail de conteneur sur site afin de garantir une expérience homogène dans vos applications basées sur des conteneurs. L’intégration d’AWS Systems Manager (SSM) établit automatiquement et en toute sécurité la confiance entre votre matériel sur site et le plan de contrôle AWS.

En savoir plus sur Amazon ECS Anywhere »