ConteneursService régional
ECS
Elastic Container Service
Permet de déployer, gérer et scaler des applications conteneurisées sur AWS
Présentation
ECS simplifie la gestion de plusieurs conteneurs en automatisant :
- le déploiement
- le scaling
- la mise en réseau
- l’intégration avec les services AWS
Cas d’utilisation :
- Déployer des applications Docker en production
- Gérer des architectures microservices
- Exécuter des traitements batch ou asynchrones
- Remplacer des serveurs traditionnels par des conteneurs
Concepts clés
Cluster
- Regroupement de ressources de calcul sur lesquelles s’exécutent les conteneurs
- Deux modes possibles :
- EC2 : gestion des machines par l’utilisateur
- Fargate : infrastructure entièrement managée par AWS
Task definition
- Template d’exécution qui décrit :
- les conteneurs à lancer
- les images (via ECR)
- les ressources (CPU / mémoire)
- les variables d’environnement
- les ports et configurations réseau
Task
- Instance d’exécution d’une task definition
Service
- Permet de :
- Maintenir un nombre de tâches en fonctionnement
- Gérer le scaling automatique
- Assurer la haute disponibilité
ECS Anywhere
- Permet d’exécuter des conteneurs en dehors d’AWS
- Cas d’usage :
- Infrastructures on-premise
- Environnements hybrides
- Fonctionnement :
- Nécessite l’installation des agents (ECS + SSM) et de Docker
- Les ressources sont enregistrées dans un cluster ECS
- Limitations :
- Pas d’intégration native avec les load balancers AWS
- Gestion réseau plus complexe
Scalabilité & haute disponibilité
- ECS permet de construire des applications résilientes :
- Scaling automatique (nombre de tâches)
- Répartition sur plusieurs AZ
- Redémarrage automatique des tâches en cas d’échec