Exercice 03 : Déployer un conteneur sur ECS Fargate
🎯 Objectifs
À la fin de cet exercice, vous serez capable de :
- ✅ Créer un repository ECR et pousser une image Docker
- ✅ Définir une Task Definition ECS avec logs CloudWatch
- ✅ Créer un cluster ECS et un service Fargate avec ALB
- ✅ Mettre à jour le service (rolling update) sans interruption
- ✅ Supprimer proprement toutes les ressources
Durée estimée : 60 minutes
Difficulté : ⭐⭐⭐⭐☆ (Avancé)
Prérequis :
- AWS CLI configurée avec droits admin
- Docker installé et fonctionnel
- VPC avec sous-réseaux publics et privés (exercice 02 ou VPC existant)
📖 Contexte
En production, les conteneurs sont rarement lancés manuellement avec docker run. ECS orchestre leur déploiement : il s'assure que le bon nombre de conteneurs tourne, remplace les conteneurs en échec, et intègre avec l'ALB pour la distribution du trafic.
📋 Énoncé
Vous allez :
- Créer une application Node.js simple
- La conteneuriser et pousser l'image dans ECR
- Déployer un service ECS Fargate avec 2 tâches derrière un ALB
- Mettre à jour l'image (v2) avec un rolling update
- Supprimer toutes les ressources
Résultat attendu : curl http://<ALB-DNS> retourne {"version": "1.0", "message": "Hello from ECS!"}
🔧 Matériel Nécessaire
- AWS CLI v2, Docker, jq
- Un VPC avec au moins 2 sous-réseaux publics dans des AZ différentes