Orchestration et exécution de conteneurs sur AWS : EKS VS ECS

Connaissance

2 min

lire

Quel service choisir pour gérer vos conteneurs sur AWS ?

C'est une question que nous abordons fréquemment dans le cadre de projet de build d'infrastructure, de migration vers AWS ou encore d’optimisation d’infrastructure existante. En effet, les clients d'AWS ont le choix entre ECS Amazon Elastic Container Service et EKS Elastic Container Service for Kubernetes.

L’objectif de cet article est de vous présenter ces deux services ainsi que leur mode d’exécutions et de vous donner quelques clés pour déterminer dans quels cas vous devriez vous tourner vers l’une ou l’autre de ces solutions.

Orchestration de conteneurs sur AWS

Amazon Elastic Container Service (ECS )est le service conçu par AWS dédié à l’orchestration des conteneurs. Celui-ci a été conçu de façon à simplifier la gestion des applications conteneurisées. Avec ECS, vous déployez, exécutez, gérez et mettez à l’échelle aisément vos applications.
ECS est une solution fiable et sécure, par ailleurs, plusieurs services AWS se basent sur ECS. Comme celui-ci est une solution native d’AWS, il s’intègre facilement à votre infrastructure AWS. Les clients AWS reconnaissent ECS pour la facilité de gestion de ce service et pour sa parfaite intégration avec l’environnement AWS.

Amazon EKS est un service managé qui vous permet d'exécuter Kubernetes sur AWS. Kubernetes est le système d'orchestration de conteneur open source qui permet de déployer et de gérer des applications conteneurisées à l'échelle le plus largement utilisé aujourd’hui.
Kubernetes est quant à lui plébiscité pour son écosystème, sa richesse d’APIs Open Source, sa communauté et la flexibilité du service.
Avec son principe de portabilité, Kubernetes est une solution très intéressante pour éviter le "vendor lock-in" chez un cloud provider ou dans le cadre d'environnements hybrides et multi-cloud.

[Petite parenthèse sur la question du vendor lock-in : il est théoriquement plus facile de migrer d'un cloud provider à l'autre avec Kubernetes ; en réalité, une migration demandera toujours un certain effort].

Ainsi, le choix entre ECS et EKS est un choix plus stratégique que technologique, la simplicité VS la flexibilité.

Il ne faut cependant pas oublier de prendre en compte les compétences techniques de votre équipe !

Kubernetes est une solution qui présente de nombreux avantages, mais avant de pouvoir l'utiliser à son plein potentiel, il vous faudra maîtriser un certain nombre de concepts parfois assez abstraits : Pod, Node, Service, Selector, Endpoint, etc. La montée en compétence nécessaire à la maîtrise et à l'implémentation ces concepts ne doit pas être sous-estimée.

En résumé, votre choix peut se porter sur les éléments suivants :

  1. Préférences opérationnelles
  2. Exigences de votre environnement
  3. Compétences techniques

Mode d'exécution sur AWS

Avec Amazon EKS et Amazon ECS, AWS propose différents modes d'exécution pour les tâches de conteneurs. Examinons de plus près les modes EC2 et Fargate.

Mode EC2

Le mode EC2 implique que vous avez un contrôle total sur les instances EC2 sous-jacentes. Cela signifie que vous pouvez configurer votre infrastructure pour correspondre à vos besoins (comme choisir des instances optimisées en termes de réseaux ou de GPU). En revanche, cela signifie également que vous êtes responsable de la sélection des instances, des configurations réseaux et sécurité ainsi que des mises à jour.

Mode Fargate

AWS Fargate applique le modèle serverless à l'orchestration de conteneurs et permet d'exécuter des applications conteneurisées sans avoir à gérer un cluster d'instances.
Le service Fargate vous permet ainsi d’abstraire le besoin de provisionnement et la gestion des serveurs sur lesquels sont exécutées les tâches des conteneurs. Fargate permet une mise en œuvre plus rapide et une gestion simplifiée des tâches de conteneur. De plus, avec Fargate vous ne payez que les ressources nécessaires à l’exécution de vos conteneurs.

En résumé, avec le mode EC2, vous gagnez en contrôle sur votre infrastructure tandis qu’avec Fargate, vous simplifiez la gestion de celui-ci.

Néanmoins, l'utilisation de Fargate a un prix. Voici un exemple de comparaison entre une instance EC2 T3 medium qui par défaut reste "on" et son équivalent avec Fargate pour une tâche qui s'exécuterait en continu.

https://calculator.aws/#/estimate?id=8ba814ade5423eb39299d684f8b19679ba956c5c

Fixation des prix mars 2023

Fargate et EC2 répondent à des besoins différents, mais vous n'êtes pas obligé de choisir l'un ou l'autre. Vous pouvez tout à fait avoir une flotte mixte et combiner les modes EC2 et Fargate. Ainsi, par exemple, vous pouvez avoir une base avec du compute EC2 et Fargate interviendrait en tant qu' "add-on" à votre stratégie de scaling.

En outre, nous recommandons l'utilisation de Fargate dans les cas suivants :

Merci d'avoir lu cet article. Nous espérons qu'il vous a plu !

Contactez-nous pour plus d'informations sur notre accompagnement et notre expertise !