4.41 Qu'est ce que le load balancing
Un load balancer — équilibreur de charge — est un serveur qui reçoit tout le trafic externe et le redistribue vers plusieurs instances EC2 placées en aval. Concrètement, trois utilisateurs qui envoient chacun une requête arrivent sur le load balancer, qui les répartit sur trois instances EC2 distinctes : chaque instance répond à un seul utilisateur, et le trafic global se trouve réparti uniformément. C'est ce comportement qui donne son nom au load balancer.
Pourquoi utiliser un load balancer
- Répartir la charge sur plusieurs instances EC2 en aval.
- Exposer un point d'accès unique (DNS du load balancer) à l'extérieur.
- Gérer de façon transparente les défaillances grâce aux health checks.
- Terminer le SSL/TLS et fournir un endpoint HTTPS.
- Assurer l'adhérence de session (stickiness) via cookies.
- Apporter la haute disponibilité entre zones de disponibilité et séparer le trafic public du trafic privé.
Sur AWS, on utilise l'ELB (Elastic Load Balancer), un service managé : AWS garantit son fonctionnement, prend en charge les mises à niveau, la maintenance et la haute disponibilité. Il fournit des outils de configuration simples et coûte moins cher que de monter soi-même un load balancer sur une EC2 dédiée. Il est en outre intégré à de nombreux autres services AWS.
Le load balancer vérifie l'état de santé de chaque instance via un health check : il envoie une requête sur un port défini (par exemple 4567) et attend une réponse HTTP 200 OK. Toute autre réponse signifie que l'instance est considérée hors service et ne recevra plus de trafic. AWS propose trois familles d'ELB : le Classic Load Balancer (CLB v1) historique (HTTP, HTTPS, TCP), l'Application Load Balancer (ALB v2) moderne (HTTP, HTTPS, WebSocket) et le Network Load Balancer (NLB v2) (TCP, UDP, TLS). On recommande les versions v2.
On peut déployer un load balancer interne (privé, pour le trafic entre microservices) ou externe (public, pour l'entrée Internet). Côté sécurité, le groupe de sécurité du load balancer autorise 80/443 depuis Internet, et le groupe de sécurité des instances n'autorise le port 80 que depuis le groupe de sécurité du load balancer — ainsi, seul l'ELB peut joindre les EC2. Côté supervision, l'access log du load balancer trace toutes les requêtes, ce qui permet de débugger les erreurs 4XX (côté client) et 5XX (côté application). Un code 503 sur l'ELB signifie que la cible est saturée ou non enregistrée : il faut alors vérifier les groupes de sécurité et les ports ouverts.
En résumé
Un load balancer est un serveur qui redirige le trafic externe vers plusieurs instances EC2 en aval, permettant une répartition équilibrée de la charge. Sur AWS, le service Elastic Load Balancer (ELB) gère automatiquement la santé des instances, expose un point d'accès unique (DNS) sécurisé en HTTPS, et garantit la haute disponibilité sans effort de maintenance. Il existe trois types de load balancers AWS : le Classic Load Balancer (v1), l'Application Load Balancer (v2), et le Network Load Balancer (v2), ce dernier étant recommandé pour les applications modernes.
Points clés
- Un load balancer redirige le trafic externe de manière équilibrée vers plusieurs instances EC2 déployées en aval
- Il expose un seul point d'accès DNS à l'extérieur, cachant les instances individuelles et gérant les défaillances en transparence
- Le load balancer vérifie régulièrement l'état de santé des instances via des requêtes de vérification (health checks) et retire celles qui ne répondent pas
- AWS Elastic Load Balancer (ELB) automatise la configuration, la maintenance et la haute disponibilité multi-zones d'une infrastructure de balancing
- Il existe trois types : Classic Load Balancer (HTTP/HTTPS), Application Load Balancer (HTTP/HTTPS/WebSocket), et Network Load Balancer (TCP/UDP)
- Les groupes de sécurité contrôlent le trafic : les utilisateurs externes accèdent au load balancer, qui seul accède aux instances en aval
Questions fréquentes
Pourquoi utiliser un load balancer plutôt que de connecter les utilisateurs directement aux instances EC2 ?
Un load balancer offre un point d'accès unique sécurisé (DNS/HTTPS), répartit la charge équitablement, gère automatiquement les défaillances en redirigeant vers les instances saines, et assure la haute disponibilité sans exposer l'infrastructure interne.
Comment un load balancer sait-il si une instance EC2 fonctionne correctement ?
Le load balancer effectue des vérifications de santé régulières (health checks) en envoyant des requêtes sur un port spécifié. Si la réponse est 200 (OK), l'instance est considérée comme fonctionnelle ; sinon, le load balancer cesse de lui envoyer du trafic.
Quel type de load balancer AWS faut-il choisir ?
AWS recommande d'utiliser les versions v2 modernes : l'Application Load Balancer (ALB) pour HTTP/HTTPS/WebSocket, et le Network Load Balancer (NLB) pour TCP/UDP haute performance. Le Classic Load Balancer (v1) est une ancienne génération créée en 2002.