4.44 L'équilibreur de charge réseau NLB (V2)
Le Network Load Balancer (NLB v2) est le troisième type d'équilibreur de charge proposé par AWS. Contrairement à l'ALB qui agit en couche 7, le NLB travaille uniquement en couche 4 : il redirige tout le trafic TCP et UDP venant de l'extérieur vers les instances cibles. Il prend en charge plusieurs millions de requêtes par seconde avec une très faible latence, environ 100 ms, là où l'ALB se situe plutôt autour de 400 ms.
Spécificités du NLB
- Une IP statique par AZ exposée vers l'extérieur — pratique pour whitelister.
- Seul ELB à supporter l'attribution d'Elastic IP.
- Usage typique : workloads à très hautes performances en TCP ou UDP.
- Hors du free tier AWS : à utiliser en connaissance de cause.
- Pas de notion de Security Group attaché au NLB lui-même.
Côté trafic, le NLB joue le rôle de point d'entrée : les requêtes TCP arrivent directement sur les instances backend, contrairement à un ALB qui termine la session HTTP côté load balancer. C'est cette transparence qui permet la très faible latence.
Dans la console, on crée un nouveau load balancer en choisissant Network Load Balancer. On le nomme mon-nlb et on configure un listener TCP sur le port 80 (avec aussi le support TLS pour du TCP sécurisé et de l'UDP si besoin). On l'expose sur plusieurs zones de disponibilité pour la haute disponibilité, puis on crée un target group appelé mon-groupe-nlb de type instance, en TCP/80. Le health check est aussi en TCP, avec un seuil rapide (5 secondes) pour les tests. On ajoute les instances backend au target group et on finalise la création du NLB.
Une fois le NLB provisionné et marqué active, on teste son DNS — et la requête ne passe pas. Raison : contrairement à l'ALB où on définit un Security Group sur le load balancer, le NLB n'en a pas. Le filtrage doit se faire au niveau des instances cibles. On va donc dans le Security Group de chaque EC2 backend et on ajoute une règle Custom TCP, port 80, source 0.0.0.0/0 (ou restreinte aux IP du NLB) pour autoriser le trafic. Après cet ajout, le NLB distribue correctement les connexions TCP vers les instances enregistrées.
En résumé
Le NLB (Network Load Balancer) est un équilibreur de charge AWS opérant au niveau 4 (TCP/UDP), capable de traiter des millions de requêtes par seconde avec une très faible latence (~100ms). Contrairement à l'ALB qui a une latence de 400ms, le NLB dispose d'une adresse IP statique par zone de disponibilité et supporte les adresses IP élastiques. C'est la solution idéale pour les applications exigeant des performances extrêmes sur TCP ou UDP.
Points clés
- Opère sur la couche 4 (TCP/UDP) pour rediriger le trafic réseau, contrairement à l'ALB (couche 7)
- Traite des millions de requêtes par seconde avec une latence très faible (~100ms)
- Offre une adresse IP statique par zone de disponibilité, utile pour le whitelisting d'adresses IP
- Supporte l'attribution d'adresses IP élastiques pour créer plusieurs points d'entrée
- Nécessite la configuration manuelle des groupes de sécurité et des règles TCP sur les instances cibles
- Recommandé pour les performances ultra-hautes (jeux, IoT, protocoles non-HTTP)
Questions fréquentes
Quelle est la différence principale entre NLB et ALB?
Le NLB opère sur la couche 4 (TCP/UDP) et traite des millions de requêtes/seconde avec ~100ms de latence, tandis que l'ALB opère sur la couche 7 (applicative) avec une latence de ~400ms. Le NLB dispose aussi d'une adresse IP statique par zone de disponibilité.
Pourquoi le NLB nécessite-t-il une configuration manuelle des groupes de sécurité?
Contrairement à l'ALB qui crée automatiquement les groupes de sécurité associés, le NLB n'en crée pas. Il faut configurer manuellement les règles TCP personnalisées sur les instances cibles pour autoriser le trafic depuis l'équilibreur.
Quel est le cas d'usage principal du NLB?
Le NLB est conçu pour les applications exigeant des performances extrêmes en TCP ou UDP, comme les jeux en ligne, l'IoT ou les protocoles non-HTTP nécessitant une très faible latence.