2 minutes
Comparaison des services de conteneurisation AWS (ECS, Fargate et EKS)
Il n’est pas évident de comprendre les différentes entre AWS ECS, Fargate et EKS. Au premier abord ces outils peuvent sembler similaire. Je me suis personnellement vraiment questionné sur la différence entre AWS Fargate et AWS EKS.
Dans cet article je vais essayer de résumer les différences qu’il peut y avoir entre ces 3 services.
Avantages
ECS | EKS | Fargate |
---|---|---|
Service gratuit (on ne paye que pour le compute sous jacent) | Offre toutes les features d’ECS + VPC pour le réseau entre pods et isolation au niveau du cluster Kubernetes | Possible d’utiliser l’API de Fargate comme celle d’ECS |
Service historique d’AWS d’orchestration de containers Docker | Offre tous les avantages de Kubernetes (cloud agnostic) | Permet de faire tourner des clusters hétérogènes constitués d’instance EC2 ou Fargate. Idéal pour scaler rapidement horizontalement |
Possibilité de dupliquer ses environnements via API | Réplication des masters Kubernetes dans 3 zones de disponibilités différentes | Permet de ne pas avoir à manager l’infrastructure |
Intégration sans couture avec la registry Docker AWS ECR (pas besoin de gérer sa propre registry + workflow simple pour gérer ses images) | Possibilité de répliquer l’environnement dans un autre déjà existant avec assez peu de modifications | Support AWS VPC network mode; ce qui signifie que les tâches qui tournent sur une même instance partage l’interface réseau (Elastic Network Interface) |
Auto-healing des containers Docker | Coût assez faible par cluster: $0.20 par heure | Coût à l’usage du compute et non pas à l’instance EC2 sous-jacente. Cela peut permettre de faire des économies |
Toutes les communications entre pods se font via IP dans le VPC | Scalabilité horizontale très rapide (machines provisionées à l’avance) |
Inconvénients
ECS | EKS | Fargate |
---|---|---|
Service pas simple à utiliser pour les systèmes distribués | Faible intégration avec les autres services AWS | Moins d’options de customisation |
Scalabité horizontale dépendante du démarrage d’instances EC2 | Prévoir des charges supplémentaires pour des ressources complémentaires (ex: stockage) | Besoin de démarrer ses propres composants |
Obtenir un cluster On-demand peut prendre du temps | Pas possible d’avoir plus de 3 clusters par région (quota augmenté par ticket) | Démarrage assez long |
Changer le type d’instance n’est pas possible une fois démarrée | IAM au niveau des pod est difficile à mettre en place | Pas d’accès à un filesystem persistent |