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. Il est même intégré à l’interface de la ligne de commande (CLI) Docker Compose, pour que vous puissiez définir et exécuter des applications multi-conteneurs. 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 AMI (Amazon Machine Image) 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.

AWS Copilot

L'interface de ligne de commande (CLI) AWS Copilot est un outil qui permet aux développeurs de créer, de déployer 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écharger AWS Copilot.

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'Application Load Balancer associé.

Déploiements bleus/verts

Les déploiements bleus/verts avec AWS CodeDeploy vous aident à minimiser les temps d'arrêt lors de mises à jour d'application. Vous pouvez lancer une nouvelle version de votre service Amazon ECS à côté de l'ancienne version et tester la nouvelle version avant de réacheminer le trafic. Vous pouvez également surveiller le processus de déploiement et effectuer rapidement une restauration en cas de problème.

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.

Fournisseurs des fonctionnalités

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 le dimensionnement des fonctionnalités. Les fournisseurs des fonctionnalités fonctionnent à la fois avec Amazon EC2 et avec 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.

Stockage

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 de vos déploiements à partir d’Amazon ECS et d’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. En savoir 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.

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.

Mise en réseau

Découverte de service

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.

Maillage de services

Le maillage de services permet de créer et d'exécuter facilement des applications de microservices complexes en standardisant la façon dont chaque microservice de l'application communique. AWS App Mesh est un service qui permet de configurer facilement une partie de votre application pour une visibilité de bout en bout et une haute disponibilité. Pour utiliser App Mesh, ajoutez l'image de proxy Envoy à la définition de tâche ECS. App Mesh gère la configuration Envoy pour fournir les fonctionnalités de maillage de services. App Mesh exporte les métriques, les journaux et les traces vers les points de terminaison spécifiés dans la configuration d'amorçage Envoy fournie. App Mesh fournit une API pour configurer les routes de trafic, les coupe-circuit, les nouvelles tentatives et d'autres contrôles entre les microservices pour lesquels le maillage est activé.

Mise en réseau de tâches

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.

É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'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. 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 EC2. Vous pouvez également utiliser un routage par chemin pour partager un équilibreur de charge entre plusieurs services.

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

AWS Config

AWS Config est intégré à Amazon ECS afin de vous assurer une visibilité sur votre configuration des ressources AWS dans votre compte AWS. AWS Config vous permet 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 de défaillances opérationnelles et l’administration des ressources.

Déploiements hybrides

AWS Outposts

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 on Outposts, vous pouvez gérer les conteneurs sur site avec la même facilité que vos conteneurs dans le cloud.

En savoir plus sur la tarification d'Amazon ECS

Consultez la page de tarification
Prêt à vous lancer ?
S'inscrire
D'autres questions ?
Nous contacter