Demo Instructions : Répartir le trafic avec Elastic Load Balancing
Instruction de Labs
Répartir le trafic avec Elastic Load Balancing
Présentation
Elastic Load Balancing (ELB) permet de distribuer automatiquement le trafic entrant entre plusieurs ressources, comme des instances Amazon EC2.
Cette répartition permet notamment :
- d’éviter de diriger tout le trafic vers un seul serveur ;
- d’utiliser plusieurs instances pour traiter les requêtes ;
- de vérifier régulièrement l’état des serveurs ;
- d’envoyer le trafic uniquement vers les cibles disponibles.
AWS propose plusieurs types de Load Balancers.
Dans ce lab, vous allez utiliser un Application Load Balancer (ALB), adapté notamment aux applications utilisant les protocoles HTTP et HTTPS.
Deux serveurs web sont déjà disponibles dans votre environnement.
Vous allez :
- créer un Target Group ;
- enregistrer les deux instances EC2 comme cibles ;
- créer un Application Load Balancer ;
- configurer un listener HTTP ;
- vérifier l’état de santé des deux serveurs ;
- accéder à l’application via le DNS du Load Balancer ;
- observer la répartition des requêtes entre les deux serveurs.
Niveau : Débutant
Difficulté : Modérée
Durée estimée : 20 à 25 minutes
Région AWS : Europe (Ireland) — eu-west-1
Services AWS utilisés
- Elastic Load Balancing
- Application Load Balancer
- Amazon EC2
- Amazon VPC
Notions CLF-C02 couvertes
Cloud Technology and Services : Networking, Compute, haute disponibilité
Impact coût : Faible à modéré.
L’environnement utilise deux petites instances Amazon EC2 préinitialisées.
L’Application Load Balancer créé pendant le lab est également une ressource facturable.
Supprimez-le à la fin du lab.
Nettoyage manuel requis Oui.
Vous supprimerez :
- l’Application Load Balancer ;
- le Target Group.
Les ressources préinitialisées seront automatiquement supprimées à la fin de votre session.
Environnement du lab
Afin de vous concentrer sur Elastic Load Balancing, l’infrastructure nécessaire est automatiquement créée avant le démarrage du lab.
Ressources préinitialisées
VPC
Nom :
lab-vpc
CIDR IPv4 :
10.0.0.0/16
Premier subnet public
Nom :
lab-elb-subnet-a
CIDR :
10.0.1.0/24
Ce subnet se trouve dans une première Availability Zone de la Région eu-west-1.
Deuxième subnet public
Nom :
lab-elb-subnet-b
CIDR :
10.0.2.0/24
Ce subnet se trouve dans une deuxième Availability Zone de la Région eu-west-1.
Internet Gateway
Nom :
lab-igw
Elle fournit un chemin vers Internet aux subnets publics du lab.
Security Group du Load Balancer
Nom :
lab-alb-sg
Les serveurs web ne sont donc pas destinés à recevoir directement le trafic des utilisateurs.
À retenir
Le Load Balancer reçoit les requêtes des utilisateurs puis les transmet aux serveurs web.
Les Security Groups peuvent être configurés afin que les serveurs acceptent uniquement le trafic provenant du Load Balancer.
Premier serveur web
Nom :
lab-web-1
Type :
t3.micro
Système :
Amazon Linux 2023
État attendu :
Running
Un serveur HTTP est déjà installé et configuré.
La page affichée contient notamment :
Réponse de lab-web-1
Deuxième serveur web
Nom :
lab-web-2
Type :
t3.micro
Système :
Amazon Linux 2023
État attendu :
Running
Un serveur HTTP est également installé et configuré.
La page affichée contient notamment :
Réponse de lab-web-2
Objectifs pédagogiques
À la fin de ce lab, vous serez capable de :
- expliquer le rôle d’Elastic Load Balancing ;
- créer un Target Group et y enregistrer deux instances EC2 ;
- créer un Application Load Balancer ;
- configurer un listener HTTP ;
- interpréter les Health Checks des targets ;
- observer la répartition du trafic entre deux serveurs web.
Vérification avant de démarrer
Étape 1 — Vérifier la Région AWS
Regardez la Région sélectionnée en haut à droite de la console AWS.
Elle doit être :
Europe (Ireland) — eu-west-1
Si une autre Région est sélectionnée :
- cliquez sur le nom de la Région ;
- sélectionnez Europe (Ireland).
Étape 2 — Vérifier les deux instances EC2
Dans la barre de recherche de la console AWS, saisissez :
EC2
Ouvrez :
EC2 → Instances
Recherchez :
- lab-web-1 ;
- lab-web-2.
Vérifiez que les deux instances sont dans l’état :
Running
Étape 3 — Vérifier les Status Checks
Pour chacune des deux instances, vérifiez la colonne :
Status check
Les contrôles doivent indiquer :
2/2 checks passed
Si nécessaire, attendez quelques instants puis actualisez la page.
Étape 4 — Vérifier les Availability Zones
Sélectionnez :
lab-web-1
Repérez son :
Availability Zone
Faites ensuite la même chose pour :
lab-web-2
Les deux serveurs doivent être placés dans deux Availability Zones différentes.
Par exemple :
Les Availability Zones exactes peuvent être différentes dans votre environnement.
À retenir
Répartir des ressources entre plusieurs Availability Zones permet d’éviter de concentrer toute l’application dans une seule zone.
Comprendre l’objectif du lab
Vous disposez actuellement de deux serveurs web.
Chaque serveur peut traiter des requêtes HTTP.
Cependant, un utilisateur ne devrait pas avoir à connaître directement l’adresse de chacun de ces serveurs.
Vous allez donc placer un Application Load Balancer devant les deux instances.
Le Load Balancer fournira un point d’entrée unique et distribuera les requêtes vers les serveurs disponibles.
Créer le Target Group
Étape 5 — Accéder aux Target Groups
Dans le menu de gauche de la console Amazon EC2, recherchez la section :
Load Balancing
Sélectionnez :
Target Groups
Cliquez ensuite sur :
Create target group
Étape 6 — Choisir le type de cible
Dans :
Choose a target type
sélectionnez :
Instances
Cela signifie que les cibles du Target Group seront des instances Amazon EC2.
À retenir
Un Target Group représente un ensemble de ressources vers lesquelles un Load Balancer peut envoyer du trafic.
Dans ce lab, les targets sont des instances EC2.
Étape 7 — Donner un nom au Target Group
Dans :
Target group name
saisissez :
lab-web-tg
Étape 8 — Configurer le protocole
Configurez :
Protocol
HTTP
Port
80
Le Load Balancer utilisera donc HTTP sur le port 80 pour communiquer avec les serveurs web.
Étape 9 — Configurer le type d’adresse IP
Pour :
IP address type
conservez :
IPv4
Étape 10 — Sélectionner le VPC
Dans :
VPC
sélectionnez :
lab-vpc
Les deux instances EC2 sont déjà déployées dans ce VPC.
Étape 11 — Configurer les Health Checks
Dans :
Health checks
conservez :
Health check protocol
HTTP
Health check path
/
Conservez les autres paramètres proposés par défaut.
À retenir
Les Health Checks permettent au Load Balancer de vérifier régulièrement si les serveurs sont disponibles.
Le trafic peut ainsi être envoyé vers les targets considérées comme saines.
Cliquez ensuite sur :
Next
Étape 12 — Sélectionner les instances
La console affiche les instances disponibles dans le VPC.
Sélectionnez :
- lab-web-1 ;
- lab-web-2.
Pour le port, conservez :
80
Étape 13 — Inclure les instances comme targets
Cliquez sur :
Include as pending below
ou l’option équivalente proposée par la console.
Vérifiez que les deux instances apparaissent dans la liste des targets à enregistrer.
Vous devez retrouver :
- lab-web-1 ;
- lab-web-2.
Cliquez ensuite sur :
Create target group
Le Target Group :
lab-web-tg
est créé.
Étape 14 — Examiner le Target Group
Sélectionnez :
lab-web-tg
Observez notamment :
- Target type : Instance ;
- Protocol : HTTP ;
- Port : 80 ;
- VPC : lab-vpc.
Ouvrez ensuite l’onglet :
Targets
Les deux instances doivent être enregistrées.
À ce stade, leur état peut temporairement ne pas encore être :
Healthy
Cela est normal.
Vous allez maintenant associer le Target Group à un Load Balancer.
Créer l’Application Load Balancer
Étape 15 — Accéder aux Load Balancers
Dans le menu de gauche :
EC2 → Load Balancing → Load Balancers
Cliquez sur :
Create load balancer
Étape 16 — Choisir Application Load Balancer
AWS propose plusieurs types de Load Balancers.
Sélectionnez :
Application Load Balancer
puis :
Create
À retenir
Un Application Load Balancer fonctionne au niveau applicatif et permet notamment de distribuer des requêtes HTTP et HTTPS.
Étape 17 — Donner un nom au Load Balancer
Dans :
Load balancer name
saisissez :
lab-web-alb
Étape 18 — Choisir le schéma
Dans :
Scheme
sélectionnez :
Internet-facing
Le Load Balancer pourra ainsi recevoir des requêtes provenant d’Internet.
Étape 19 — Choisir le type d’adresse IP
Dans :
IP address type
conservez :
IPv4
Étape 20 — Sélectionner le VPC
Dans la section :
Network mapping
sélectionnez :
lab-vpc
Étape 21 — Sélectionner les Availability Zones
Sélectionnez les deux Availability Zones contenant les subnets du lab.
Pour la première Availability Zone, sélectionnez :
lab-elb-subnet-a
Pour la deuxième Availability Zone, sélectionnez :
lab-elb-subnet-b
Vérifiez que les deux subnets sont sélectionnés.
À retenir
Un Application Load Balancer peut fonctionner dans plusieurs Availability Zones.
Il peut ainsi distribuer le trafic vers des targets situées dans différentes zones.
Étape 22 — Sélectionner le Security Group
Dans :
Security groups
sélectionnez :
lab-alb-sg
Si un autre Security Group est automatiquement sélectionné, retirez-le afin de conserver uniquement :
lab-alb-sg
Ce Security Group autorise les connexions HTTP sur le port :
80
Configurer le Listener
Étape 23 — Observer le Listener
Dans :
Listeners and routing
vous devriez disposer d’un listener :
Protocol
HTTP
Port
80
Un listener vérifie les nouvelles connexions arrivant sur le Load Balancer.
À retenir
Le listener définit notamment :
- le protocole utilisé par les clients ;
- le port écouté ;
- l’action à effectuer pour les requêtes reçues.
Étape 24 — Sélectionner le Target Group
Pour l’action par défaut du listener :
Forward to
sélectionnez :
lab-web-tg
Les requêtes HTTP arrivant sur le port 80 seront donc transférées vers ce Target Group.
Étape 25 — Vérifier la configuration
Avant de créer le Load Balancer, vérifiez les principaux paramètres :
Cliquez ensuite sur :
Create load balancer
Étape 26 — Attendre la disponibilité du Load Balancer
AWS commence à créer le Load Balancer.
Ouvrez :
EC2 → Load Balancers
Sélectionnez :
lab-web-alb
Repérez :
State
Attendez que l’état devienne :
Active
La création peut prendre quelques instants.
Vérifier l’état des serveurs
Étape 27 — Revenir dans le Target Group
Ouvrez :
EC2 → Target Groups
Sélectionnez :
lab-web-tg
Ouvrez :
Targets
Vous devriez retrouver :
- lab-web-1 ;
- lab-web-2.
Attendez que les deux targets indiquent :
Health status : Healthy
Si nécessaire, actualisez la page.
Étape 28 — Comprendre les Health Checks
Le Load Balancer envoie régulièrement des requêtes vers :
/
sur le port :
80
Si le serveur répond correctement, il peut être considéré comme :
Healthy
Le Load Balancer peut alors lui envoyer du trafic.
À retenir
En temps normal, un Application Load Balancer transmet le trafic aux targets enregistrées qui passent les vérifications de santé.
Accéder à l’application
Étape 29 — Identifier le DNS du Load Balancer
Retournez dans :
EC2 → Load Balancers
Sélectionnez :
lab-web-alb
Dans l’onglet :
Description
ou :
Details
repérez :
DNS name
Vous devriez voir une valeur ressemblant à :
lab-web-alb-123456789.eu-west-1.elb.amazonaws.com
Votre valeur sera différente.
Étape 30 — Ouvrir le DNS dans le navigateur
Copiez le DNS du Load Balancer.
Dans un nouvel onglet de votre navigateur, saisissez :
http://DNS-DU-LOAD-BALANCER
Remplacez cette valeur par le DNS réellement affiché dans votre console.
Une page web doit apparaître.
Vous devriez voir une réponse provenant de l’un des deux serveurs :
Réponse de lab-web-1
ou :
Réponse de lab-web-2
Vous venez d’accéder à votre application en passant par l’Application Load Balancer.
Observer la répartition du trafic
Étape 31 — Actualiser plusieurs fois la page
Actualisez la page plusieurs fois.
Observez le nom du serveur affiché.
Au fil des requêtes, vous devriez pouvoir obtenir des réponses provenant de :
lab-web-1
et :
lab-web-2
Le point d’entrée utilisé reste pourtant toujours le même :
le DNS de lab-web-alb
Important
La répartition du trafic ne signifie pas nécessairement que les réponses alterneront strictement entre serveur 1 et serveur 2 à chaque actualisation.
Effectuez plusieurs requêtes pour observer les deux serveurs.
Étape 32 — Comprendre la répartition
Vous avez maintenant trois composants principaux.
Application Load Balancer
lab-web-alb
Il reçoit les requêtes des utilisateurs.
Target Group
lab-web-tg
Il contient les serveurs vers lesquels le trafic peut être envoyé.
Targets
lab-web-1
169.
lab-web-2
Ils traitent les requêtes HTTP.
À retenir
Le client utilise le DNS du Load Balancer.
Il n’a pas besoin de connaître directement les adresses des instances EC2.
Comprendre le rôle du Load Balancer
Sans Load Balancer, un utilisateur devrait être dirigé directement vers un serveur particulier.
Avec Elastic Load Balancing, vous disposez d’un point d’entrée unique capable d’envoyer les requêtes vers plusieurs serveurs.
Dans ce lab :
Elastic Load Balancing et disponibilité
Les deux serveurs sont répartis dans deux Availability Zones.
Le Load Balancer est lui aussi configuré pour utiliser les deux zones.
Cette architecture permet de ne pas dépendre d’un seul serveur ou d’une seule Availability Zone.
Elastic Load Balancing est donc souvent utilisé avec plusieurs instances afin d’améliorer la disponibilité des applications.
À retenir
Un Load Balancer ne crée pas lui-même de nouvelles instances.
Son rôle principal est de répartir le trafic entre les targets disponibles.
Amazon EC2 Auto Scaling, étudié dans un autre lab, peut quant à lui ajuster le nombre d’instances.
Relation entre Elastic Load Balancing et Auto Scaling
Elastic Load Balancing et Amazon EC2 Auto Scaling répondent à deux besoins complémentaires.
Dans une architecture réelle, les deux services sont souvent utilisés ensemble.
Par exemple :
- EC2 Auto Scaling ajoute de nouvelles instances lorsque la demande augmente ;
- les nouvelles instances rejoignent un Target Group ;
- le Load Balancer peut ensuite leur envoyer du trafic.
Cette intégration sera étudiée dans des labs plus avancés.
Nettoyage du lab :
Les ressources suivantes ont été préinitialisées et ne doivent pas être supprimées manuellement :
- lab-vpc ;
- lab-elb-subnet-a ;
- lab-elb-subnet-b ;
- lab-igw ;
- lab-alb-sg ;
- lab-web-sg ;
- lab-web-1 ;
- lab-web-2.
Elles seront automatiquement supprimées à la fin de votre session.
Vous devez supprimer uniquement :
- lab-web-alb ;
- lab-web-tg.
Étape 33 — Supprimer l’Application Load Balancer
Ouvrez :
EC2 → Load Balancers
Sélectionnez :
lab-web-alb
Cliquez sur :
Actions
puis :
Delete load balancer
Confirmez la suppression.
La suppression peut prendre quelques instants.
Attendez que :
lab-web-alb
disparaisse de la liste.
À retenir
Le listener associé au Load Balancer est supprimé avec celui-ci.
Étape 34 — Supprimer le Target Group
Une fois le Load Balancer supprimé, ouvrez :
EC2 → Target Groups
Sélectionnez :
lab-web-tg
Cliquez sur :
Actions
puis :
Delete
Confirmez la suppression.
Étape 35 — Vérifier le nettoyage
Dans :
EC2 → Load Balancers
vérifiez que :
lab-web-alb
n’apparaît plus.
Dans :
EC2 → Target Groups
vérifiez que :
lab-web-tg
n’apparaît plus.
Les ressources créées par l’apprenant pendant ce lab ont été supprimées.
Validation du lab :
Vous avez terminé le lab si vous avez réussi à :
- identifier les deux serveurs web préconfigurés ;
- vérifier qu’ils se trouvent dans deux Availability Zones différentes ;
- créer le Target Group lab-web-tg ;
- enregistrer lab-web-1 et lab-web-2 comme targets ;
- configurer des Health Checks HTTP ;
- créer l’Application Load Balancer lab-web-alb ;
- utiliser deux subnets répartis sur deux Availability Zones ;
- utiliser le Security Group lab-alb-sg ;
- configurer un listener HTTP sur le port 80 ;
- associer le listener à lab-web-tg ;
- vérifier que les deux targets deviennent Healthy ;
- identifier le DNS du Load Balancer ;
- accéder à l’application depuis votre navigateur ;
- observer des réponses provenant des deux serveurs ;
- comprendre le rôle du Load Balancer, du Listener et du Target Group ;
- supprimer le Load Balancer et le Target Group.
En cas de problème
Je ne trouve pas lab-web-1 ou lab-web-2
Vérifiez que vous utilisez :
Europe (Ireland) — eu-west-1
Puis ouvrez :
EC2 → Instances
Si les instances n’apparaissent toujours pas, l’environnement du lab n’a peut-être pas été correctement initialisé.
Une instance n’affiche pas 2/2 checks passed
Attendez quelques instants puis actualisez la page.
Les deux instances doivent être complètement opérationnelles avant de poursuivre.
Je ne trouve pas lab-vpc
Vérifiez la Région :
eu-west-1
Puis ouvrez :
VPC → Your VPCs
Je ne trouve pas les deux subnets
Dans :
VPC → Subnets
recherchez :
- lab-elb-subnet-a ;
- lab-elb-subnet-b.
Je ne trouve pas lab-alb-sg
Dans :
EC2 → Security Groups
recherchez :
lab-alb-sg
Vérifiez également que vous utilisez la Région eu-west-1.
Mes targets ne deviennent pas Healthy
Vérifiez que :
- lab-web-1 est Running ;
- lab-web-2 est Running ;
- les deux instances sont enregistrées dans lab-web-tg ;
- le protocole du Target Group est HTTP ;
- le port est 80 ;
- le Health Check utilise HTTP ;
- le chemin du Health Check est /.
Attendez ensuite quelques instants et actualisez la page.
Le Load Balancer reste en état Provisioning
La création d’un Application Load Balancer peut prendre quelques minutes.
Actualisez la page jusqu’à obtenir :
Active
Le DNS du Load Balancer ne fonctionne pas
Vérifiez que :
- lab-web-alb est dans l’état Active ;
- les deux targets sont Healthy ;
- le listener utilise HTTP sur le port 80 ;
- l’action du listener transmet le trafic vers lab-web-tg ;
- lab-alb-sg est associé au Load Balancer.
Utilisez :
http://
et non :
https://
car aucun certificat HTTPS n’est configuré dans ce lab.
Je vois toujours le même serveur
Cela ne signifie pas nécessairement que le Load Balancer ne fonctionne pas.
Actualisez plusieurs fois la page.
Vous pouvez également ouvrir une nouvelle fenêtre de navigation privée ou effectuer plusieurs nouvelles requêtes.
La répartition du trafic ne garantit pas une alternance visuelle stricte entre les deux serveurs à chaque actualisation.
Je ne peux pas supprimer lab-web-tg
Vérifiez que :
lab-web-alb
a été complètement supprimé.
Un Target Group utilisé par un listener de Load Balancer ne peut pas être supprimé tant qu’il est encore associé à celui-ci.
Attendez quelques instants puis réessayez.
Lab terminé
Vous savez maintenant :
- expliquer le rôle d’Elastic Load Balancing ;
- comprendre le rôle d’un Application Load Balancer ;
- créer un Target Group ;
- enregistrer plusieurs instances EC2 comme targets ;
- comprendre le rôle des Health Checks ;
- créer un Application Load Balancer ;
- configurer un listener HTTP ;
- utiliser un DNS unique pour accéder à plusieurs serveurs ;
- observer la répartition du trafic entre plusieurs instances ;
- comprendre l’intérêt d’utiliser plusieurs Availability Zones ;
- différencier le rôle d’Elastic Load Balancing de celui d’Amazon EC2 Auto Scaling