⚖️
infrastructure

Load Balancer

Composant qui distribue le trafic réseau entre plusieurs serveurs.

Définition

Un load balancer (repartiteur de charge) est un composant réseau qui distribue le trafic entrant entre plusieurs serveurs pour optimiser les performances, maximiser la disponibilité et éviter la surcharge d'un serveur unique.

C'est un élément essentiel de toute architecture web a haute disponibilité. Sans load balancer, un seul serveur recevrait tout le trafic, créant un point de defaillance unique (SPOF).

Pourquoi utiliser un load balancer ?

  • Performance : repartit la charge pour des temps de réponse optimaux
  • Disponibilité : si un serveur tombe, le trafic est redirige vers les autres
  • Scalabilité : ajoutez des serveurs sans changer la configuration
  • Sécurité : point unique pour le SSL termination, le rate limiting et le WAF

Types de load balancers

Layer 4 (Transport — TCP/UDP)

Opère au niveau TCP/UDP. Redirige en fonction de l'IP source/destination et du port. Très rapide car ne lit pas le contenu des requêtes.

Layer 7 (Application — HTTP/HTTPS)

Opère au niveau HTTP. Peut rediriger en fonction de l'URL, des headers, des cookies ou du contenu. Plus intelligent mais legèrement plus lent.

# Exemple Nginx comme load balancer L7
upstream backend {
    server 10.0.0.1:3000 weight=3;
    server 10.0.0.2:3000 weight=1;
    server 10.0.0.3:3000 backup;
}

server {
    listen 80;
    location / {
        proxy_pass http://backend;
    }
}

Algorithmes de répartition

Algorithme Description Cas d'usage
Round Robin Chaque serveur a tour de rôle Serveurs homogenes
Weighted Round Robin Poids différents par serveur Serveurs heterogenes
Least Connections Serveur avec le moins de connexions actives Requêtes de durée variable
IP Hash Même IP client → même serveur Sessions sticky
Random Serveur aleatoire Simple, bonne distribution

Health checks

Le load balancer vérifie régulièrement que chaque serveur est opérationnel :

  • TCP check : la connexion TCP reussit-elle ?
  • HTTP check : le endpoint /health retourne-t-il un 200 ?
  • Custom check : vérification métier spécifique

Si un serveur echoue au health check, il est retire du pool automatiquement.

Solutions courantes

  • Cloud : AWS ALB/NLB, GCP Load Balancer, Azure Load Balancer
  • On-premise : Nginx, HAProxy, Traefik, Envoy
  • DNS-based : Cloudflare, Route 53 (répartition géographique)

Besoin d'aide technique ?

Decrivez votre projet pour des conseils personnalises par nos experts.

Recevoir des conseils

Questions fréquentes

Quelle est la difference entre ALB et NLB sur AWS ?
ALB (Application Load Balancer) opere au Layer 7 (HTTP) et permet le routage base sur l'URL, les headers, etc. NLB (Network Load Balancer) opere au Layer 4 (TCP) et offre des performances ultra-faibles latences pour les connexions TCP brutes.
Faut-il un load balancer pour un petit site ?
Pour un petit site avec un seul serveur, un load balancer n'est pas necessaire. Mais des qu'on a 2+ serveurs ou qu'on veut du zero-downtime deployment, c'est indispensable.
Comment gerer les sessions avec un load balancer ?
Trois approches : sticky sessions (IP hash), sessions centralisees (Redis), ou authentification stateless (JWT). Les sessions centralisees sont la meilleure approche pour la scalabilite.

Pages liées

Chaque semaine, le meilleur de la tech française

Tendances, salaires, outils et opportunités — directement dans votre boîte mail.

Gratuit. Desabonnement en un clic. Pas de spam.