Les groupes de serveurs acheminent les requêtes des clients vers les serveurs principaux. Lorsque vous ajoutez un écouteur, vous devez spécifier un groupe de serveurs. L'écouteur transfère le trafic vers le groupe de serveurs correspondant en fonction du protocole et du port configurés. Network Load Balancer (NLB) utilise des vérifications d'état pour surveiller l'état des serveurs principaux.
Types de groupes de serveurs NLB
Type de groupe de serveurs | Type de serveur principal | Description |
Type de serveur | Vous pouvez ajouter des instances ECS, ENI et ECI en tant que serveurs principaux. | Les serveurs principaux doivent se trouver dans le même VPC que le groupe de serveurs afin de recevoir les requêtes de l'instance NLB. |
Type IP | Vous pouvez ajouter des adresses IP en tant que serveurs principaux. | Les adresses IP ne sont pas limitées au bloc CIDR du VPC où réside le groupe de serveurs. Vous pouvez ajouter des adresses IP de serveurs situés dans d'autres régions, d'autres VPC ou dans des centres de données sur site. Ces adresses IP servent de serveurs principaux pour recevoir les requêtes de l'instance NLB.
Seules les adresses IP privées sont prises en charge. Les adresses IP publiques ne sont pas prises en charge. |
NLB ne met pas automatiquement à jour les informations d'un serveur principal si celui-ci est libéré ou si son adresse IP privée change. Pour éviter toute interruption de service, retirez le serveur du groupe de serveurs avant de le libérer ou de modifier sa configuration.
Créer un groupe de serveurs
Connectez-vous à la console NLB.
Dans la barre de navigation supérieure, sélectionnez la région dans laquelle l'instance NLB est déployée.
Dans le volet de navigation de gauche, choisissez NLB > Server Groups.
Sur la page Server Groups, cliquez sur Create Server Group.
-
Dans la boîte de dialogue Create Server Group, configurez les paramètres suivants et cliquez sur Create.
Paramètre
Description
Server Group Type
Sélectionnez un type de groupe de serveurs :
Server Type : vous permet d'ajouter des instances ECS, ENI et ECI en tant que serveurs backend.
IP Type : prend en charge l'ajout d'adresses IP en tant que serveurs backend.
Seules les adresses IP privées peuvent être ajoutées ; les adresses IP publiques ne sont pas prises en charge.
VPC
Sélectionnez un VPC dans la liste déroulante VPC.
Backend Server Protocol
Sélectionnez un protocole backend :
TCP : associe le groupe de serveurs aux écouteurs TCP et TCP/SSL.
UDP : associe le groupe de serveurs aux écouteurs UDP.
Scheduling Algorithm
Sélectionnez un algorithme de planification :
Round Robin : distribue les requêtes aux serveurs backend de manière séquentielle.
Weighted Round-robin (par défaut) : distribue les requêtes aux serveurs backend en fonction de leur poids. Les serveurs backend ayant un poids plus élevé reçoivent davantage de requêtes.
Source IP Hashing : utilise le hachage cohérent basé sur les adresses IP source. Les requêtes provenant de la même adresse IP source sont acheminées vers le même serveur backend.
Four-element Hashing : utilise le hachage cohérent basé sur les quadruplets (adresse IP source, adresse IP de destination, port source et port de destination). Les paquets provenant du même flux sont acheminés vers le même serveur backend.
QUIC ID Hashing : utilise le hachage cohérent basé sur les identifiants de connexion QUIC. Les requêtes avec le même identifiant QUIC sont acheminées vers le même serveur backend.
Vous pouvez sélectionner le hachage par identifiant QUIC uniquement lorsque le protocole backend est UDP.
Le protocole QUIC évolue rapidement. Cet algorithme est implémenté sur la base de draft-ietf-quic-transport-10. La compatibilité avec toutes les versions de QUIC n'est pas garantie. Nous vous recommandons d'effectuer des tests suffisants avant d'utiliser cet algorithme dans un environnement de production.
Weighted Least Connections : distribue les requêtes en fonction à la fois du poids et de la charge réelle (nombre de connexions) de chaque serveur backend. Si les serveurs backend ont le même poids, le serveur avec le moins de connexions reçoit davantage de requêtes.
Resource Group
Sélectionnez un groupe de ressources pour le groupe de serveurs.
Tag
Définissez une Tag Key et une Tag Value.
IPv6
Sélectionnez une version IP :
IPv4 (par défaut) : vous pouvez ajouter uniquement des serveurs backend IPv4.
IP Version : vous pouvez ajouter des serveurs backend IPv4 et IPv6.
Si IPv6 n'est pas activé pour le VPC que vous avez sélectionné, vous ne pouvez sélectionner que IPv4.
IP Version Affinity
Si vous définissez IP Version sur IPv4/IPv6 dual-stack, vous pouvez configurer IP Version Affinity :
No affinity (par défaut) : les requêtes sont distribuées aux serveurs backend sains selon l'algorithme de planification, quelle que soit la version IP de la source.
Affinity mode : les requêtes sont acheminées en fonction de la version IP de leur source. Les requêtes IPv4 sont acheminées uniquement vers les serveurs backend IPv4, et les requêtes IPv6 uniquement vers les serveurs backend IPv6.
Si vous sélectionnez Affinity mode, assurez-vous que le groupe de serveurs backend contient des cibles IPv4 et IPv6 saines ; sinon, les requêtes du protocole correspondant ne peuvent pas être transférées correctement.
Connection Draining
Spécifiez si vous souhaitez activer la vidange de connexion. Cette fonctionnalité est désactivée par défaut.
Si vous activez la vidange de connexion, vous devez également définir le Connection Draining Timeout. Le délai d'expiration peut être réglé de 0 à 900 secondes. Une valeur de 0 indique que les connexions sont vidangées immédiatement.
Lorsqu'un serveur backend est supprimé ou échoue à une vérification d'état :
Si la vidange de connexion est désactivée (par défaut), les connexions existantes ne sont pas interrompues activement. Elles sont interrompues uniquement après la déconnexion du client ou l'expiration de la session.
Si la vidange de connexion est activée, les connexions existantes sont maintenues jusqu'à la fin du délai d'expiration. Ensuite, les connexions sont fermées activement pour assurer une transition de service fluide.
Client IP Preservation
Spécifiez si vous souhaitez activer la préservation de l'adresse IP du client. Si vous activez cette fonctionnalité, les serveurs backend peuvent récupérer les adresses IP source des clients.
Si vous désactivez cette fonctionnalité, les serveurs backend peuvent agir en tant que clients pour accéder à l'instance NLB. Pour récupérer les adresses IP source des clients, vous pouvez activer le protocole Proxy pour l'écouteur.
Après l'activation de la préservation de l'adresse du client, les groupes de serveurs de type IP ne prennent pas en charge le transport automatique de l'adresse source du client. Configurez ProxyProtocol dans l'écouteur pour obtenir l'adresse source.
Multi-port Forwarding
Activez ou désactivez le transfert sur tous les ports. Lorsqu'il est activé, vous n'avez pas besoin de spécifier un port lors de l'ajout de serveurs backend, et NLB transfère le trafic vers les serveurs backend selon le port de la requête frontale.
Si vous activez la fonctionnalité multi-port forwarding pour un écouteur, vous devez également activer cette fonctionnalité pour le groupe de serveurs backend.
Health Check
Spécifiez si vous souhaitez activer les vérifications d'état.
Health Check Settings
Si vous activez les vérifications d'état, vous pouvez cliquer sur Modify pour modifier les paramètres de vérification d'état.
Health Check Protocol
Sélectionnez un protocole pour les vérifications d'état :
TCP (par défaut) : envoie des paquets SYN pour vérifier si le port du serveur est accessible.
HTTP : envoie des requêtes HEAD ou GET pour vérifier si l'application sur le serveur est saine.
UDP : envoie des paquets ICMP Echo Request et des sondes UDP pour obtenir des informations d'état.
Vous pouvez sélectionner UDP pour Health Check Protocol uniquement si le protocole backend du groupe de serveurs est UDP.
Health Check Method
Sélectionnez une méthode de vérification d'état :
GET : si un paquet de réponse est supérieur à 8 Ko, le paquet est tronqué. Cela n'affecte pas le résultat de la vérification d'état.
HEAD : les vérifications d'état des écouteurs HTTP utilisent HEAD par défaut. Assurez-vous que vos serveurs backend prennent en charge les requêtes HEAD. Si votre application backend ne prend pas en charge ou a désactivé les requêtes HEAD, les vérifications d'état peuvent échouer. Dans ce cas, utilisez la méthode GET.
Ce paramètre prend effet uniquement lorsque le protocole de vérification d'état est HTTP.
Health Check Protocol Version
Sélectionnez une version HTTP : HTTP/1,0 (par défaut) ou HTTP/1.1.
La version du protocole de vérification d'état doit correspondre à la version HTTP prise en charge par votre application backend. Sinon, les vérifications d'état peuvent échouer. Si votre serveur backend :
prend en charge uniquement HTTP 1.0, vous devez sélectionner HTTP/1.0.
prend en charge uniquement HTTP 1.1, vous devez sélectionner HTTP/1.1.
prend en charge à la fois HTTP 1.0 et HTTP 1.1, vous pouvez sélectionner l'une ou l'autre version.
Ce paramètre prend effet uniquement lorsque le protocole de vérification d'état est HTTP.
Health Check Port
Sélectionnez le port de sonde que le service de vérification d'état utilise pour accéder au serveur backend.
Backend Server Port : par défaut, le service de vérification d'état utilise les ports des serveurs backend.
Custom Port : spécifiez un port pour les vérifications d'état.
Si vous activez le transfert multi-port, vous devez spécifier un port de vérification d'état.
Health Check Path
Saisissez l'URL de la page de vérification d'état.
Ce paramètre prend effet uniquement lorsque le protocole de vérification d'état est HTTP.
Health Check Domain Name
Saisissez le nom de domaine pour les vérifications d'état.
Backend Server Internal IP (par défaut) : l'adresse IP privée du serveur backend est utilisée comme nom de domaine pour les vérifications d'état.
Custom Domain Name : saisissez un nom de domaine.
Ce paramètre prend effet uniquement lorsque le protocole de vérification d'état est HTTP.
Health Check Status Codes
Sélectionnez les codes d'état qui indiquent une vérification d'état réussie. Vous pouvez sélectionner http_2xx (par défaut), http_3xx, http_4xx et http_5xx.
Ce paramètre prend effet uniquement lorsque le protocole de vérification d'état est HTTP.
Custom Request/Response
Lorsque vous configurez une vérification d'état pour un écouteur UDP, vous pouvez activer Custom Request/Response. Ensuite, saisissez le contenu de la requête dans le champ Custom Request, par exemple youraccountID, et la réponse attendue dans le champ Custom Response, par exemple slb123.
Vous devez également ajouter la logique de réponse de vérification d'état correspondante à l'application sur le serveur backend. Par exemple, si l'application reçoit une requête contenant
youraccountID, elle doit renvoyer une réponse contenant slb123.
Si l'instance NLB reçoit la réponse attendue du serveur backend, la vérification d'état est réussie. Sinon, la vérification d'état échoue. Cette méthode maximise la fiabilité des vérifications d'état UDP.
Ce paramètre prend effet uniquement lorsque le protocole de vérification d'état est UDP.
Response Timeout Period
La période d'attente d'une réponse à une requête de vérification d'état. Si un serveur backend ne répond pas dans le délai spécifié, la vérification d'état échoue.
Health Check Interval
L'intervalle auquel les vérifications d'état sont effectuées.
Si vous définissez Health Check Protocol sur UDP, assurez-vous que la valeur de Health Check Interval est supérieure ou égale à la valeur de Response Timeout Period. Cela évite qu'une sonde UDP ne soit considérée à tort comme sans réponse en raison d'un délai d'expiration.
Healthy Threshold
Le nombre de vérifications d'état réussies consécutives nécessaires pour faire passer l'état d'un serveur backend de malsain à sain.
Unhealthy Threshold
Le nombre d'échecs consécutifs de vérification d'état après lequel l'état de vérification d'état du serveur backend passe de sain à malsain.
Ajout de serveurs backend (type Serveur)
Si vous créez un groupe de serveurs de type Serveur, vous devez ajouter des serveurs backend pour traiter les requêtes entrantes. Vous ne pouvez pas ajouter plusieurs fois la même instance ECS, ENI ou ECI à un groupe de serveurs pour lequel la redirection multi-port est activée.
-
Sur la page Server Groups, localisez le groupe de serveurs que vous souhaitez gérer et utilisez l'une des méthodes suivantes pour accéder à la page des serveurs backend.
Dans la colonne Actions, cliquez sur Modify Backend Server.
Cliquez sur l'ID du groupe de serveurs. Sur la page des détails du groupe de serveurs, cliquez sur l'onglet Backend Servers.
Sous l'onglet Backend Servers, cliquez sur Add Backend Server.
-
Dans le panneau Add Backend Server, sélectionnez un Server Type et cliquez sur Next.
-
Lorsque le type de serveur est ECS/ENI, sélectionnez le serveur cible ou cliquez sur Purchase ECS Instance dans le coin supérieur droit.
Pour sélectionner une ENI, assurez-vous qu'une ENI secondaire est associée à l'instance ECS cible et que le commutateur Advanced Mode est activé. Cliquez ensuite sur l'icône
située à droite de l'ID de l'instance ECS cible et sélectionnez l'ENI.Si la IP Version du groupe de serveurs est définie sur IPv4/IPv6 dual-stack, cliquez sur l'icône de paramètres à côté de l'en-tête de colonne IPv4/IPv6 dual-stack. Dans la boîte de dialogue IP, sélectionnez une politique d'adresse IP :
IP Address : une adresse IPv4 principale disponible est sélectionnée par défaut.
Prefer IPv4 over IPv6 : une adresse IPv6 disponible est sélectionnée par défaut. Si une ENI possède plusieurs adresses IPv6, la première adresse disponible est sélectionnée en fonction de son ordre dans la liste.
Prefer IPv6 over IPv4 : une adresse IPv4 principale disponible et la première adresse IPv6 disponible sont sélectionnées.
Cette option définit uniquement l'adresse IP sélectionnée par défaut pour l'ENI. Vous pouvez toujours modifier manuellement la sélection dans la colonne d'adresse IP.
Lorsque le type de serveur est Dualstack, sélectionnez le serveur cible ou cliquez sur ECI dans le coin supérieur droit.
-
-
Configurez les ports et les pondérations des serveurs, puis cliquez sur Purchase Elastic Container Instance.
Une fois la redirection tous ports activée pour le groupe de serveurs, il n'est pas nécessaire de spécifier un port lors de l'ajout d'un serveur backend. NLB transfère le trafic vers le serveur backend en fonction du port de la requête frontale.
La pondération par défaut est de 100. Un serveur avec une pondération plus élevée reçoit davantage de requêtes.
Vous pouvez survoler l'icône
pour modifier les pondérations et les ports de plusieurs serveurs en masse :Cliquez sur OK : si vous modifiez la pondération ou le port du serveur actuel, les pondérations ou les ports de tous les serveurs situés en dessous prennent la même valeur.
Cliquez sur Replicate to Above : si vous modifiez la pondération ou le port du serveur actuel, les pondérations ou les ports de tous les serveurs situés au-dessus prennent la même valeur.
Cliquez sur Replicate to All : si vous modifiez la pondération ou le port du serveur actuel, les pondérations ou les ports de tous les serveurs du groupe de serveurs prennent la même valeur.
-
Cliquez sur Reset :
Cliquez sur Reset à côté de Weight pour restaurer les pondérations par défaut de tous les serveurs du groupe de serveurs.
Cliquez sur Reset à côté de Port pour effacer les numéros de port de tous les serveurs du groupe de serveurs.
AvertissementSi vous définissez la pondération d'un serveur sur 0, celui-ci ne reçoit plus de nouvelles requêtes.
Ajouter des serveurs backend (type IP)
Si vous créez un groupe de serveurs de type IP, vous devez ajouter des adresses IP en tant que serveurs backend pour traiter les requêtes entrantes. Vous ne pouvez pas ajouter plusieurs fois la même adresse IP à un groupe de serveurs pour lequel la redirection multi-ports est activée.
Vous ne pouvez pas ajouter les adresses IP virtuelles (VIP) des instances NLB situées dans le même VPC, ni les VIP des instances ALB créées dans le même VPC après .
Seules les adresses IP privées sont prises en charge. Les adresses IP publiques ne sont pas prises en charge.
-
Sur la page Server Groups, localisez le groupe de serveurs cible et utilisez l'une des méthodes suivantes pour ajouter une adresse IP.
Dans la colonne Actions, cliquez sur Modify Backend Server.
Cliquez sur l'ID du groupe de serveurs.
Sur la page des détails du groupe de serveurs, cliquez sur l'onglet Backend Servers, puis cliquez sur Add IP Address.
-
Dans l'onglet Select Servers du panneau Add Backend Server, saisissez une adresse IP et cliquez sur Next.
Vous pouvez configurer plusieurs ports et poids pour l'adresse IP.
-
Dans l'onglet Ports/Weights, définissez le port et le poids pour l'adresse IP ajoutée, puis cliquez sur OK.
Une fois la redirection tous-ports activée pour le groupe de serveurs, il n'est pas nécessaire de spécifier un port lors de l'ajout d'un serveur backend. NLB transfère le trafic vers le serveur backend en fonction du port de la requête frontale.
Le poids par défaut est de 100. Un serveur avec un poids plus élevé reçoit davantage de requêtes.
Vous pouvez survoler l'icône
pour modifier les poids et les ports de plusieurs serveurs en masse :Cliquez sur Replicate to Below : si vous modifiez le poids ou le port du serveur actuel, les poids ou les ports de tous les serveurs situés en dessous prennent la même valeur.
Cliquez sur Replicate to Below : si vous modifiez le poids ou le port du serveur actuel, les poids ou les ports de tous les serveurs situés au-dessus prennent la même valeur.
Cliquez sur Replicate to Above : si vous modifiez le poids ou le port du serveur actuel, les poids ou les ports de tous les serveurs du groupe de serveurs prennent la même valeur.
-
Cliquez sur Replicate to All :
Cliquez sur Reset à côté de Reset pour restaurer les poids par défaut de tous les serveurs du groupe de serveurs.
Cliquez sur Weight à côté de Reset pour effacer les numéros de port de tous les serveurs du groupe de serveurs.
AvertissementSi vous définissez le poids d'un serveur sur 0, celui-ci ne reçoit plus de nouvelles requêtes.
Autres opérations
Actions | Procédure |
Modifier les informations de base | Sur la page Port, localisez le groupe de serveurs cible et cliquez sur Server Groups. Dans la boîte de dialogue Modify Basic Information, vous pouvez modifier l'algorithme d'ordonnancement, l'affinité de version IP (disponible uniquement si la Modify Basic Information du groupe de serveurs est IPv4/IPv6 dual-stack), la vidange de connexion et les paramètres de préservation de l'adresse IP client. |
Modifier les paramètres de vérification d'état | Sur la page IPv4/IPv6 dual-stack, localisez le groupe de serveurs cible et cliquez sur Server Groups. Dans la boîte de dialogue Modify Health Check Settings, modifiez les paramètres de vérification d'état. Avertissement
|
Supprimer un serveur backend | Vous pouvez supprimer des serveurs backend d'un groupe de serveurs selon vos besoins. Avertissement La suppression directe d'un serveur backend d'un groupe de serveurs peut entraîner des interruptions de service. Pour éviter cela, définissez d'abord le poids du serveur sur 0, puis supprimez-le du groupe de serveurs.
|
Supprimer un groupe de serveurs | Vous ne pouvez supprimer un groupe de serveurs que s'il n'est associé à aucune règle de redirection d'écouteur. La suppression d'un groupe de serveurs n'affecte pas ses serveurs backend. Si vous n'avez plus besoin des instances ECS, ENI ou ECI enregistrées en tant que serveurs backend, vous pouvez les arrêter ou les libérer. Sur la page OK, localisez le groupe de serveurs cible. Dans la colonne Server Groups, choisissez et cliquez sur Delete. |
Référence API
CreateServerGroup : Crée un groupe de serveurs pour une instance NLB.
DeleteServerGroup : Supprime un groupe de serveurs d'une instance NLB.
AddServersToServerGroup : Ajoute des serveurs backend à un groupe de serveurs d'une instance NLB.
RemoveServersFromServerGroup : Supprime des serveurs backend d'un groupe de serveurs d'une instance NLB.
UpdateServerGroupAttribute : Met à jour la configuration d'un groupe de serveurs pour une instance NLB.
FAQ
NLB prend-il en charge la limitation du transfert des nouvelles connexions par un seuil basé sur le nombre de connexions backend ?
Non. Les algorithmes de planification actuels (Weighted Round Robin, hachage de l'adresse IP source, hachage quadruplet, etc.) ne proposent pas de stratégie de vidage du trafic fondée sur le nombre de connexions. Pour contrôler les nouvelles connexions vers les Pods backend dans des scénarios tels que ACS StatefulSet, vous pouvez utiliser les alternatives suivantes :
Repli sur la vérification d'état : Configurez la OK pour le groupe de serveurs. Lorsqu'un Pod backend ne peut pas répondre aux sondes car ses connexions sont épuisées, NLB marque automatiquement le backend comme étant défectueux et cesse de transférer les nouvelles requêtes dès que le nombre d'échecs consécutifs atteint le Health check. Il est recommandé de réduire judicieusement l'Unhealthy threshold et d'abaisser l'Interval afin de détecter plus rapidement les anomalies backend et de limiter la perte de trafic.
Interruption gracieuse des connexions : Activez l'Unhealthy threshold lors de la création d'un groupe de serveurs. Après qu'un backend a été retiré par les vérifications d'état, les connexions TCP persistantes établies peuvent continuer à transmettre des données normalement pendant la période de délai d'expiration définie, sans être interrompues immédiatement.
Contrôle actif côté Pod : Il est recommandé de mettre en œuvre une surveillance du nombre de connexions au sein du Pod et de rejeter proactivement les nouvelles connexions lorsque leur nombre approche la limite supérieure (par exemple, en renvoyant une réponse d'erreur ou en fermant le port d'écoute), en combinaison avec les vérifications d'état pour obtenir un contrôle du trafic plus précis.