Cours > Module > Chapitre

Lab : Déployer un service ECS avec un ALB

[Video] Déployer un service ECS avec un ALB

Objectif

  • Déployer une application web conteneurisée sur ECS (Fargate).
  • Utiliser un Load Balancer (ALB) pour l’accès public.
  • Utiliser le VPC par défaut pour simplifier le réseau.
  • Utiliser une image Nginx publique comme application d’exemple.

Pré-requis

  1. Un compte AWS actif.
  2. Avoir accès à la Console AWS.
  3. Aucune connaissance approfondie du réseau (car on utilise le VPC par défaut).

Étape 1 : Préparer l'image Docker (Optionnel si vous souhaitez utiliser la vôtre)

  1. Si vous voulez utiliser une image publique :

    • Nous allons utiliser l’image Nginx officielle :
				
					nginx:latest
				
			

 Pas besoin de construire une image ou utiliser Amazon ECR si vous utilisez l’image officielle.

✅ Si vous souhaitez utiliser votre propre image (ex : une app custom) :

  1. Construire l’image Docker localement :

 Pas besoin de construire une image ou utiliser Amazon ECR si vous utilisez l’image officielle.

✅ Si vous souhaitez utiliser votre propre image (ex : une app custom) :

  • Construire l’image Docker localement:

 

docker build -t my-web-app .
  • Créer un repository Amazon ECR :

Console AWS → ECR → “Créer un référentiel” → Nom : my-web-app.

  • Tagger et pousser l’image vers ECR :

 

				
					aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account-id>.dkr.ecr.<region>.amazonaws.com

docker tag my-web-app:latest <account-id>.dkr.ecr.<region>.amazonaws.com/my-web-app:latest

docker push <account-id>.dkr.ecr.<region>.amazonaws.com/my-web-app:latest
				
			

Étape 2 : Créer un Cluster ECS (Fargate)

  1. Aller sur la console ECS : https://console.aws.amazon.com/ecs
  2. Cliquer sur “Clusters” puis sur “Créer un cluster”.
  3. Choisir “EC2 + Networking (VPC par défaut)” (option préconfigurée).
  4. Nom du cluster : web-app-cluster.
  5. Cliquer sur “Créer”.

✅ Votre cluster est prêt !

Étape 3 : Créer une Task Definition (Définition de tâche ECS)

  1. Console AWS → ECS → “Task Definitions” → “Créer une nouvelle définition de tâche”.
  2. Sélectionner Fargate.
  3. Nom : nginx-app-task.
  4. Rôle IAM : Laisser vide ou choisir un rôle existant si besoin.
  5. Réglages réseau : awsvpc.
  6. Compatibilité : Fargate.

⚙️ Ajouter le conteneur :

  • Nom du conteneur : nginx-container.
  • Image :
    • Pour utiliser Nginx : nginx:latest.
    • Pour une image perso : <account-id>.dkr.ecr.<region>.amazonaws.com/my-web-app:latest.
  • Port Mappings :
    • Container Port : 80.

Laisser le reste par défaut et cliquer sur Créer.

Étape 4 : Créer un Application Load Balancer (ALB)

  1. Console AWS → EC2 → “Load Balancers” → “Créer un Load Balancer”.
  2. Choisir “Application Load Balancer”.
  3. Nom : web-app-alb.
  4. Schéma : Internet-facing (externe).
  5. VPC : VPC par défaut.
  6. Subnets : Choisir au moins 2 subnets publics (du VPC par défaut).
  7. Security Group : Créer un nouveau groupe “alb-sg”, autoriser TCP 80 (HTTP) depuis 0.0.0.0/0.

⚙️ Configuration Listener :

  • Port : 80 (HTTP).
  • Cible : “Créer un nouveau groupe cible” (voir ci-dessous).

⚙️ Groupe cible (pour ECS) :

  • Nom : web-app-tg.
  • Type : IP (pour ECS Fargate).
  • Port : 80.

Finaliser et cliquer sur Créer.
✅ Le ALB est prêt.

Étape 5 : Créer le Service ECS (avec le Load Balancer)

  1. Console AWS → ECS → Clusters → web-app-cluster.
  2. Onglet Services → “Créer”.
  3. Lancer type : Fargate.
  4. Task Definition : nginx-app-task.
  5. Cluster : web-app-cluster.
  6. Service name : web-app-service.
  7. Nombre de tâches (Desired tasks) : 2 (pour la haute dispo).

⚙️ Configuration réseau :

  • VPC : VPC par défaut.
  • Subnets : Subnets publics.
  • Security Group : Créer un nouveau “ecs-sg”, autoriser TCP 80 depuis le ALB uniquement (ou 0.0.0.0/0 si test simple).
  • Attribuer IP Publique : OUI.

⚙️ Load balancer :

  • Cocher “Activer Load Balancer”.
  • Type : ALB.
  • Choisir web-app-alb.
  • Groupe cible : web-app-tg.
  • Mapping du conteneur : nginx-container:80.

Cliquer sur Suivant puis sur Créer Service.

Étape 6 : Vérifier et tester l'application

  1. Retourner dans EC2 → Load Balancers.
  2. Sélectionner web-app-alb.
  3. Copier le DNS Name (ex: web-app-alb-123456789.region.elb.amazonaws.com).
  4. Coller dans le navigateur → Vous devriez voir la page d’accueil Nginx
×

Panier