Amazon Elastic Container Service (Amazon ECS) vous permet d'exécuter, de dimensionner et de sécuriser facilement des applications de conteneur Docker sur AWS. Les applications regroupées sous forme de conteneurs en local sont déployées et exécutées de la même façon que des conteneurs gérés par Amazon ECS. Avec Amazon ECS, vous n'avez pas besoin d'installer, d'exploiter et de dimensionner votre propre infrastructure de gestion de clusters et d'orchestration de conteneurs, ce qui vous permet de vous concentrer sur les besoins en termes de ressources et de disponibilité de votre application conteneurisée.

Amazon ECS vous permet de passer d'un seul et unique conteneur à des milliers, répartis sur des centaines d'instances, sans que cela complexifie le mode d'exécution de votre application. Vous pouvez lancer l'exécution d'applications, de lots de tâches ou de microservices, etc. Amazon ECS vous permet d'oublier la complexité de l'infrastructure pour vous concentrer sur la conception, le développement et l'exécution de vos applications conteneurisées.

Avec Amazon ECS, vous pouvez utiliser AWS Fargate pour gérer entièrement votre infrastructure et vous concentrer simplement sur le déploiement de conteneurs. Vous pouvez également choisir de profiter d'une visibilité complète sur votre cluster de serveurs sous-jacent et le contrôler entièrement, de la création et l'arrêt de conteneurs Docker à l'affichage d'informations détaillées sur l'état du cluster. Vous pouvez intégrer et utiliser votre propre planificateur de conteneurs ou connecter Amazon ECS à votre processus actuel de livraison de logiciels (par ex., systèmes d'intégration continue et de livraison).

Prise en charge d'AWS Fargate

La technologie AWS Fargate est disponible avec Amazon ECS. Avec AWS Fargate, vous n'avez plus besoin de sélectionner de types d'instances Amazon EC2, d'allouer et de mettre à l'échelle des clusters, ou d'appliquer des correctifs ou des mises à jour pour chaque serveur. Vous n'avez plus à vous soucier des stratégies de placement des tâches comme le bin packing ou l'extension d'hôte, et les tâches sont automatiquement équilibrées sur les zones de disponibilité. Fargate gère pour vous la disponibilité des conteneurs. Il vous suffit de définir les besoins de votre application et de sélectionner Fargate comme type de lancement dans la console ou l'interface de ligne de commande. Fargate se charge des tâches de dimensionnement et de gestion de l'infrastructure nécessaires à l'exécution de vos conteneurs.

Pour les développeurs qui ont besoin d'un contrôle de niveau serveur plus précis sur l'infrastructure, le type de lancement EC2 d'Amazon ECS permet de gérer un cluster de serveurs et de programmer le placement des conteneurs sur les serveurs.

Développement

Prise en charge de Docker

Amazon ECS prend en charge Docker et vous permet d'exécuter et de gérer des conteneurs Docker. Les applications que vous regroupez dans un conteneur en local seront déployées et exécutées sur Amazon ECS sans avoir à modifier la configuration.

Compatibilité avec les conteneurs Windows

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.

Développement en local

L'interface de ligne de commande Amazon ECS vous permet de simplifier votre expérience de développement en local ainsi que de facilement configurer et exécuter vos conteneurs sur Amazon ECS. L'interface de ligne de commande Amazon ECS prend en charge Docker Compose, un outil à code source libre qui permet de définir et d'exécuter des applications à conteneurs multiples. Vous pouvez appliquer la même définition Compose définissant une application à conteneurs multiples sur votre machine de développement, ainsi qu'en production. L'interface de ligne de commande Amazon ECS est open source. Téléchargez l'interface de ligne de commande Amazon ECS.

Compatibilité avec les référentiels

Le service Amazon ECS peut être utilisé avec tous les référentiels d'image Docker hébergés tiers ou tous les registres Docker privés accessibles, tels que Docker Hub et Amazon Elastic Container Registry (Amazon 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

Définition des tâches

Amazon ECS vous permet de définir les tâches à exécuter via un modèle JSON déclaratif nommé « Task Definition ». 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.

Contrôle par programmation

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 mettre en service des clusters Amazon ECS, enregistrer des définitions de tâches et planifier des conteneurs.

Déploiement 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é.

Récupération automatique des conteneurs

Amazon ECS lance automatiquement la récupération de tout conteneur défectueux afin que vous disposiez, en permanence, du nombre de conteneurs requis pour votre application.

Planification

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.

Planification de tâches
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 peut lancer des tâches manuellement, automatiquement pour une file d'attente de tâches ou en fonction d'un intervalle de temps que vous définissez.

Planification de services
La planification de services d'Amazon ECS 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 si elles échouent. Vous pouvez vous assurer que les tâches sont enregistrées par rapport à un équilibreur de charge Elastic Load Balancing et vous pouvez effectuer les contrôles de santé que vous définissez pour vos tâches en cours d'exécution.

Planification démon
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.

Placement de tâche

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

Avec Amazon ECS, vous pouvez également utiliser 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.

Les politiques de placement des tâches ne sont pas utilisées avec le type de lancement AWS Fargate.

Mise en réseau et sécurité

Mise en réseau de tâches

Amazon Elastic Container Service 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.

Équilibrage de charge

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'équilibreurs de charge d'application ou d'équilibreurs de charge réseau. 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. Vous pouvez spécifier 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 Amazon EC2. Vous pouvez également utiliser un routage par chemin pour partager un équilibreur de charge entre plusieurs services.

Découverte de service

Amazon ECS comprend la découverte de services, ce qui facilité la découverte et la connexion d'autres services pour vos services conteneurisés.

Amazon ECS crée et gère un registre de noms de services à l'aide de l'API Auto Naming de Route 53 pour que vous puissiez vous référer à un service selon son nom dans votre code et écrire des requêtes DNS pour obtenir la résolution d'une nom de service sur le point de terminaison du service au moment de l'exécution.

Vous pouvez définir des conditions de vérification d'état dans la définition de tâche d'un service et Amazon ECS veillera à ce que seuls les points de terminaison des services sains sont indiqués dans une recherche de service.

Sécurité

Amazon ECS vous permet de spécifier un rôle IAM pour chaque tâche ECS. Les instances de conteneur Amazon ECS jouent ainsi un rôle minime, ce qui vous permet de respecter la stratégie d'accès basée sur le principe du « moindre privilège » et de gérer séparément le rôle de l'instance et le rôle de la tâche. Vous pouvez également utiliser Amazon CloudWatch Logs pour mieux voir le rôle IAM auquel une tâche est attribuée.

Surveillance et journalisation

Surveillance

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. Vous pouvez également définir des alarmes CloudWatch afin d'être averti lorsque vos conteneurs ou clusters doivent être mis à l'échelle.

Journalisation

Amazon ECS vous permet d'enregistrer tous les appels d'API du service 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é.

En savoir plus sur la tarification d'Amazon ECS

Visiter la page de tarification
Prêt à vous lancer ?
S'inscrire
D'autres questions ?
Contactez-nous