Configurer un équilibreur de charge public

Effectué

En tant qu’architecte de solutions pour le portail médical, vous devez distribuer la charge des navigateurs clients aux machines virtuelles de votre batterie de serveurs web. Vous devez installer un équilibreur de charge et configurer les machines virtuelles à équilibrer.

Un équilibreur de charge public mappe l’adresse IP publique et le numéro de port du trafic entrant à l’adresse IP privée et au numéro de port d’une machine virtuelle du pool de back-ends. Les réponses sont ensuite retournées au client. En appliquant des règles d’équilibrage de charge, vous pouvez répartir des types de trafic spécifiques entre plusieurs services ou machines virtuelles.

Modes de distribution

Par défaut, Azure Load Balancer répartit le trafic réseau équitablement entre les instances de machine virtuelle. Il est également possible de recourir aux modes de distribution suivants si un comportement différent est requis :

  • Hachage à cinq tuples : Par défaut, le mode de distribution pour Load Balancer est un hachage à cinq tuples. Le tuple se compose de l’IP source, du port source, de l’IP de destination, du port de destination et du type de protocole. Comme le port source est inclus dans le hachage et que le port source change à chaque session, les clients risquent d’être dirigés vers une machine virtuelle différente à chaque session.

    Diagramme illustrant le fonctionnement de la distribution basée sur le hachage.

  • Affinité IP source : Ce mode de distribution est aussi connu sous le nom d’affinité de session ou d’affinité IP client. Pour mapper le trafic aux serveurs disponibles, le mode Affinité IP source utilise un hachage à deux tuples (à partir de l’adresse IP source et de l’adresse IP de destination) ou un hachage à trois tuples (à partir de l’adresse IP source, de l’adresse IP de destination et du type de protocole). Le hachage garantit que les requêtes d’un client spécifique sont toujours envoyées à la même machine virtuelle derrière l’équilibreur de charge.

    Diagramme illustrant le fonctionnement de l’affinité de session.

Choisir un mode de distribution

Dans l’exemple du portail médical, imaginons que le niveau de présentation défini par le développeur nécessite d’utiliser des sessions en mémoire pour stocker le profil de chaque utilisateur connecté qui interagit avec le portail.

Dans ce scénario, l’équilibreur de charge doit fournir l’affinité IP source pour maintenir la session d’un utilisateur. Le profil est stocké uniquement sur la machine virtuelle à laquelle le client se connecte en premier, car cette adresse IP est dirigée vers le même serveur. Au moment de créer le point de terminaison de l’équilibreur de charge, vous devez spécifier le mode de distribution en utilisant l’exemple PowerShell suivant :

$lb = Get-AzLoadBalancer -Name MyLb -ResourceGroupName MyResourceGroup
$lb.LoadBalancingRules[0].LoadDistribution = 'sourceIp'
Set-AzLoadBalancer -LoadBalancer $lb

Pour ajouter la persistance de session via le portail Azure :

  1. Dans le portail Azure, sélectionnez votre ressource Load Balancer.

  2. Dans la page Règles d’équilibrage de charge, sous le volet Paramètres, sélectionnez la règle d’équilibrage de charge appropriée.

    Capture d’écran illustrant la sélection d’une règle d’équilibrage de la charge dans le Portail Azure.

  3. Dans la page des paramètres de la règle d’équilibrage de charge, modifiez la valeur de Persistance de session en remplaçant Aucune par Adresse IP du client.

Capture d’écran montrant comment définir l’affinité IP dans le portail Azure.

Load Balancer et Passerelle des services Bureau à distance

La Passerelle des services Bureau à distance est un service Windows qui permet aux clients sur Internet d’établir des connexions RDP (Remote Desktop Protocol) via les pare-feux vers des serveurs Bureau à distance sur votre réseau privé. Le hachage à cinq tuples par défaut de Load Balancer n’est pas compatible avec ce service. Si vous voulez utiliser Load Balancer avec vos serveurs Bureau à distance, utilisez l’affinité IP source.

Load Balancer et chargement de médias

Un autre cas d’usage de l’affinité IP source est le chargement de médias. Dans de nombreuses implémentations, un client lance une session via un protocole TCP (Transmission Control Protocol) et se connecte à une adresse IP de destination. Cette connexion reste ouverte pendant toute la durée du téléchargement pour en surveiller la progression, mais le fichier est chargé par l’intermédiaire d’un protocole UDP (User Datagram Protocol) distinct.

Avec le hachage à cinq tuples, l’équilibreur de charge envoie probablement les connexions TCP et UDP à des adresses IP de destination différentes et le chargement ne se termine pas correctement. Utilisez l’affinité IP source pour résoudre ce problème.