Cours Aws

4.45 L'adhérence au load balencer

L'adhérence — ou stickiness — sur un load balancer consiste à diriger systématiquement un même client vers la même instance backend tant que sa session est active. Ce mécanisme est disponible sur l'ALB et le CLB (mais pas sur le NLB) et s'appuie sur un cookie avec une durée d'expiration configurable.

Le cas d'usage typique : éviter que l'utilisateur perde sa session entre deux requêtes. Si l'application stocke l'état de session en local sur l'instance EC2, sans adhérence chaque requête peut atterrir sur une instance différente et provoquer une déconnexion ou la perte du panier. Avec l'adhérence activée, toutes les requêtes d'un même client tombent sur la même instance pendant la durée du cookie.

Principe et compromis

  • Le load balancer pose un cookie de session lors de la première requête.
  • Tant que ce cookie est valide, les requêtes suivantes du même client vont sur la même instance.
  • À l'expiration du cookie, le load balancer choisit à nouveau une cible et pose un nouveau cookie.
  • Inconvénient majeur : la charge n'est plus répartie uniformément entre les instances en aval.

Sur le schéma de principe, un load balancer expose deux instances. Le client 1 envoie une première requête qui atterrit sur l'instance A : tant que son cookie est valide, ses prochaines requêtes seront toujours servies par A. Le client 2, lui, peut être routé vers B et y rester collé. La répartition n'est donc plus purement Round Robin : si un client génère beaucoup plus de trafic que les autres, son instance peut se retrouver surchargée tandis que les autres restent sous-utilisées.

Côté console, l'adhérence ne se configure pas au niveau du load balancer lui-même mais au niveau du target group. Dans la démo, on rafraîchit d'abord la page via le DNS du load balancer : l'IP affichée change à chaque requête, signe d'un Round Robin classique. On retourne ensuite dans le target group, on édite ses attributs, on active la Stickiness et on définit une durée d'adhérence (par exemple 2 minutes). Après enregistrement, en rafraîchissant à nouveau le DNS, on tombe systématiquement sur la même instance : le load balancer respecte le cookie de session et ne re-route plus le client. C'est ainsi qu'on gère le stickiness sur un ELB AWS.