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 :

  1.       cliquez sur le nom de la Région ;
  2.       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