Network Load Balancers - Elastic Load Balancing

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Network Load Balancers

Un équilibreur de charge constitue le point de contact unique pour les clients. Les clients envoient des demandes à l'équilibreur de charge, et l'équilibreur de charge les envoie aux cibles, par exemple aux instances EC2, dans une zone de disponibilité ou plus.

Pour configurer votre équilibreur de charge, vous créez des groupes cible et vous enregistrez ensuite les cibles auprès de vos groupes cible. Votre équilibreur de charge est plus efficace si vous vous assurez que chaque zone de disponibilité activée a au moins une cible enregistrée. Vous créez également des écouteurs pour rechercher les demandes de connexion des clients et pour acheminer les demandes des clients vers les cibles dans vos groupes cibles.

Les Network Load Balancers prennent en charge les connexions des clients sur l'appairage de VPC, des VPN gérés par AWS, AWS Direct Connect et des solutions VPN tierces.

États d'un équilibreur de charge

Un équilibreur de charge a l'un des états suivants :

provisioning

L'équilibreur de charge est en cours de mise en place.

active

L'équilibreur de charge est entièrement mis en place et prêt à acheminer le trafic.

failed

L'équilibreur de charge n'a pas pu être configuré.

Attributs de l'équilibreur de charge

Un équilibreur de charge a les attributs suivants :

access_logs.s3.enabled

Indique si les journaux d'accès stockés dans Amazon S3 sont activés. L’argument par défaut est false.

access_logs.s3.bucket

Le nom du compartiment Amazon S3 pour les journaux d'accès. Cet attribut est obligatoire si les journaux d'accès sont activés. Pour plus d’informations, consultez Conditions requises pour le compartiment.

access_logs.s3.prefix

Le préfixe pour l'emplacement dans le compartiment Amazon S3.

deletion_protection.enabled

Indique si la protection contre la suppression est activée. L’argument par défaut est false.

ipv6.deny_all_igw_traffic

Bloque l'accès de la passerelle Internet (IGW) à l'équilibreur de charge, empêchant les accès non prévus à votre équilibreur de charge interne via une passerelle Internet. Il est défini sur false pour les équilibreurs de charge accessibles sur Internet et sur true pour les équilibreurs de charge internes. Cet attribut n'empêche pas l'accès à Internet hors IGW (par exemple, via l'appairage, Transit Gateway, AWS Direct Connect ou AWS VPN).

load_balancing.cross_zone.enabled

Indique si l'équilibrage de charge entre zones est activé. L’argument par défaut est false.

dns_record.client_routing_policy

Indique comment le trafic est réparti entre les zones de disponibilité de l'équilibreur de charge. Les valeurs possibles sont availability_zone_affinity avec 100 % d'affinité zonale, partial_availability_zone_affinity avec 85 % d'affinité zonale et any_availability_zone avec 0 % d'affinité zonale.

Type d’adresse IP

Vous pouvez définir les types d'adresses IP que les clients peuvent utiliser avec votre équilibreur de charge. Voici les types d'adresse IP :

ipv4

Les clients doivent se connecter à l'équilibreur de charge à l'aide d'adresses IPv4 (par exemple, 192.0.2.1). Les équilibreurs de charge compatibles IPv4 (internes et accessibles sur Internet) prennent en charge les écouteurs TCP, UDP, TCP_UDP et TLS.

dualstack

Les clients peuvent se connecter à l'équilibreur de charge à l'aide d'adresses IPv4 (par exemple, 192.0.2.1) et d'adresses  Pv6 (par exemple, 2001:0db8:85a3:0:0:8a2e:0370:7334). Les équilibreurs de charge compatibles double pile (internes et accessibles sur Internet) prennent en charge les écouteurs TCP et TLS.

Considérations relatives aux équilibreurs de charge à double pile
  • L'équilibreur de charge communique avec les cibles en fonction du type d'adresse IP du groupe cible.

  • Lorsque vous activez le mode double pile pour l'équilibreur de charge, Elastic Load Balancing fournit un enregistrement DNS AAAA pour l'équilibreur de charge. Les clients qui communiquent avec l'équilibreur de charge à l'aide d'adresses IPv4 résolvent l'enregistrement DNS A. Les clients qui communiquent avec l'équilibreur de charge à l'aide d'adresses IPv6 résolvent l'enregistrement DNS AAAA.

  • L'accès à vos équilibreurs de charge internes à double pile via la passerelle Internet est bloqué pour empêcher tout accès Internet non prévu. Toutefois, cela n'empêche pas un accès à Internet autre (par exemple, via l'appairage, Transit Gateway, AWS Direct Connect ou AWS VPN).

Pour plus d'informations sur les types d'adresses IP d'équilibreurs de charge, veuillez consulter Mise à jour du type d'adresse.

Zones de disponibilité

Vous activez une ou plusieurs zones de disponibilité pour votre équilibreur de charge lors de sa création. En activant plusieurs zones de disponibilité pour votre équilibreur de charge, vous augmentez la tolérance aux pannes de vos applications. Vous ne pouvez pas désactiver des zones de disponibilité pour un Network Load Balancer après l'avoir créé, mais vous pouvez activer des zones de disponibilité supplémentaires.

Lorsque vous activez une zone de disponibilité, vous spécifiez un sous-réseau depuis cette zone de disponibilité. Elastic Load Balancing crée un nœud d'équilibreur de charge dans la zone de disponibilité et une interface réseau pour le sous-réseau (la description commence par « ELB net » et comprend le nom de l'équilibreur de charge). Chaque nœud d'équilibreur de charge de la zone de disponibilité utilise cette interface réseau pour obtenir une adresse IPv4. Veuillez noter que vous pouvez consulter cette interface réseau, mais vous ne pouvez pas la modifier.

Lorsque vous créez un équilibreur de charge accessible sur Internet, vous pouvez associer une adresse IP Elastic à chaque sous-réseau. Si vous ne choisissez pas l'une de vos propres adresses IP Elastic, Elastic Load Balancing vous fournit une adresse IP Elastic par sous-réseau. Ces adresses IP Elastic fournissent à votre équilibreur de charge des adresses IP statiques qui ne changeront pas pendant la durée de vie de l'équilibreur de charge. Vous ne pouvez pas modifier ces adresses IP Elastic après avoir créé l'équilibreur de charge.

Lorsque vous créez un équilibreur de charge interne, vous pouvez, si vous le souhaitez, spécifier une adresse IP privée pour chaque sous-réseau. Si vous ne spécifiez pas d'adresse IP à partir du sous-réseau, Elastic Load Balancing en choisit une pour vous. Ces adresses IP privées fournissent à votre équilibreur de charge des adresses IP statiques qui ne changeront pas pendant la durée de vie de l'équilibreur de charge. Vous ne pouvez pas modifier ces adresses IP privées après avoir créé l'équilibreur de charge.

Considérations
  • Pour les équilibreurs de charge accessibles sur Internet, les sous-réseaux que vous spécifiez doivent avoir au moins 8 adresses IP disponibles. Pour les équilibreurs de charge internes, cela n'est requis que si vous laissez AWS sélectionner une adresse IPv4 privée à partir du sous-réseau.

  • Vous ne pouvez pas spécifier un sous-réseau dans une zone de disponibilité limitée. Le message d'erreur indique que les équilibreurs de charge du type « réseau » ne sont pas pris en charge dans az_name. Vous pouvez spécifier un sous-réseau dans une autre zone de disponibilité qui n'est pas limitée et utiliser l'équilibrage de charge entre zones pour distribuer le trafic vers les cibles dans la zone de disponibilité limitée.

  • Vous ne pouvez pas spécifier un sous-réseau qui a été partagé avec vous.

  • Vous ne pouvez pas spécifier de sous-réseau dans une zone locale.

Une fois que vous avez activé une zone de disponibilité, l'équilibreur de charge commence à acheminer les demandes vers les cibles enregistrées dans cette zone de disponibilité. Votre équilibreur de charge est plus efficace si vous vous assurez que chaque zone de disponibilité activée a au moins une cible enregistrée.

Pour ajouter des zones de disponibilité à l'aide de la console
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Load Balancers.

  3. Sélectionnez le nom de l'équilibreur de charge afin d'ouvrir sa page de détails.

  4. Sous l'ongletNetwork mapping, choisissez Edit subnets.

  5. Pour activer une zone de disponibilité, sélectionnez la case à cocher correspondante. S'il existe un sous-réseau pour cette zone de disponibilité, elle est sélectionnée. S'il y a plusieurs sous-réseaux dans cette zone de disponibilité, sélectionnez l'un d'eux. Notez que vous ne pouvez sélectionner qu'un seul sous-réseau par zone de disponibilité.

    Pour un équilibreur de charge accessible sur Internet, vous pouvez sélectionner une adresse IP Elastic pour chaque zone de disponibilité. Pour un équilibreur de charge interne, vous pouvez attribuer une adresse IP privée à partir de la plage IPv4 de chaque sous-réseau plutôt que de laisser Elastic Load Balancing en attribuer une.

  6. Sélectionnez Enregistrer les modifications.

Pour ajouter des zones de disponibilité à l'aide de l'AWS CLI

Utilisez la commande set-subnets.

Equilibrage de charge entre zones

Par défaut, chaque nœud d'équilibreur de charge répartit le trafic parmi les cibles enregistrées dans sa zone de disponibilité uniquement. Si vous activez l'équilibrage de charge entre zones, chaque nœud d'équilibreur de charge répartit le trafic entre les cibles enregistrées dans toutes les zones de disponibilité activées. Vous pouvez également activer l'équilibrage de charge entre zones au niveau du groupe cible. Pour plus d'informations, veuillez consulter Équilibrage de charge entre zones pour groupes cibles et Équilibrage de charge entre zones (langue française non garantie) dans le Guide de l'utilisateur Elastic Load Balancing.

Deletion protection (Protection contre la suppression)

Pour éviter la suppression accidentelle de votre équilibreur de charge, vous pouvez activer la protection contre la suppression. Par défaut, la protection contre la suppression est désactivée pour votre équilibreur de charge.

Si vous activez la protection contre la suppression de votre équilibreur de charge, vous devez la désactiver pour pouvoir supprimer l'équilibreur de charge.

Pour activer la protection contre la suppression à l'aide de la console
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Load Balancers.

  3. Sélectionnez le nom de l'équilibreur de charge afin d'ouvrir sa page de détails.

  4. Dans l'onglet Attributes, choisissez Edit.

  5. Sous Configuration, activez la Protection contre la suppression.

  6. Sélectionnez Enregistrer les modifications.

Pour désactiver la protection contre la suppression à l'aide de la console
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Load Balancers.

  3. Sélectionnez le nom de l'équilibreur de charge afin d'ouvrir sa page de détails.

  4. Dans l'onglet Attributes, choisissez Edit.

  5. Sous Configuration, activez la Protection contre la suppression.

  6. Sélectionnez Enregistrer les modifications.

Pour activer ou désactiver la protection contre la suppression à l'aide d'AWS CLI

Utilisez la modify-load-balancer-attributescommande avec l'deletion_protection.enabledattribut.

Délai d'inactivité des connexions

Pour chaque demande TCP effectuée par un client via un Network Load Balancer, l'état de cette connexion est suivi. Si aucune donnée n'est envoyée via la connexion par le client ou la cible au cours d'une période plus longue que le délai d'inactivité, la connexion est fermée. Si un client ou une cible envoie des données après que le délai d'inactivité est écoulé, il reçoit un paquet TCP RST pour indiquer que la connexion n'est plus valide.

Nous définissons la valeur du délai d'inactivité à 350 secondes pour les flux TCP. Vous ne pouvez pas modifier cette valeur. Les clients ou les cibles peuvent utiliser des paquets TCP keepalive pour réinitialiser le délai d'inactivité. Les paquets keepalive envoyés pour maintenir les connexions TLS ne peuvent pas contenir de données ou de charge utile.

Lorsqu'un écouteur TLS reçoit un paquet TCP keepalive d'un client ou d'une cible, l'équilibreur de charge génère des paquets TCP keepalive et les envoie aux connexions frontend et backend toutes les 20 secondes. Vous ne pouvez pas modifier ce comportement.

Même si UDP est sans connexion, l'équilibreur de charge conserve l'état de flux UDP en fonction des ports et des adresses IP source et cible. Cela garantit que les paquets appartenant au même flux sont systématiquement envoyés à la même cible. Après la fin du délai d'inactivité, l'équilibreur de charge considère les paquets UDP entrants en tant que nouveaux flux et les achemine vers une nouvelle cible. Elastic Load Balancing définit la valeur du délai d'inactivité pour les flux UDP à 120 secondes.

Les instances EC2 doivent répondre à une nouvelle demande dans les 30 secondes afin d'établir un chemin de retour.

Nom du DNS

Chaque Network Load Balancer reçoit un nom de système de nom de domaine (DNS) par défaut avec la syntaxe suivante : nom-id.elb.région.amazonaws.com. Par exemple, my-load-balancer -1234567890abcdef. elb.us-east-2.amazonaws.com.

Si vous préférez utiliser un nom de DNS plus facile à mémoriser, vous pouvez créer un nom de domaine personnalisé et l'associer au nom de DNS de votre équilibreur de charge. Lorsqu'un client effectue une demande à l'aide de ce nom de domaine personnalisé, le serveur DNS résout le nom DNS pour votre équilibreur de charge.

Tout d'abord, enregistrez un nom de domaine auprès d'un bureau d'enregistrement de noms de domaine accrédité. Utilisez ensuite votre service DNS, par exemple, votre serveur d'inscriptions de domaine, pour créer un enregistrement DNS afin d'acheminer les demandes vers votre équilibreur de charge. Pour plus d'informations, consultez la documentation de votre service DNS. Par exemple, si vous utilisez Amazon Route 53 comme service DNS, vous créez un enregistrement d'alias qui pointe vers votre équilibreur de charge. Pour plus d'informations, veuillez consulter Routage du trafic vers un équilibreur de charge ELB dans le Guide du développeur Amazon Route 53.

L'équilibreur de charge possède une adresse IP par zone de disponibilité activée. Il s'agit des adresses IP des nœuds d'équilibreur de charge. Le nom de DNS de l'équilibreur de charge est résolu en ces adresses. Par exemple, supposons que le nom de domaine personnalisé de votre équilibreur de charge soit example.networkloadbalancer.com. Utilisez la commande dig ou nslookup suivante pour déterminer les adresses IP des nœuds d'équilibreur de charge.

Linux ou Mac

$ dig +short example.networkloadbalancer.com

Windows

C:\> nslookup example.networkloadbalancer.com

L'équilibreur de charge comporte des enregistrements DNS pour ses nœuds d'équilibreur de charge. Vous pouvez utiliser des noms de DNS avec la syntaxe suivante pour déterminer les adresses IP des nœuds d'équilibreur de charge : az.nom-id.elb.région.amazonaws.com.

Linux ou Mac

$ dig +short us-east-2b.my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com

Windows

C:\> nslookup us-east-2b.my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com

Affinité DNS de zone de disponibilité

Lorsque vous utilisez la stratégie de routage client par défaut, les demandes envoyées au nom DNS de vos Network Load Balancers recevront toutes les adresses IP d'équilibreur de charge saines. Cela conduit à la distribution des connexions client entre les zones de disponibilité des équilibreurs de charge. Avec les stratégies de routage par affinité de zone de disponibilité, les requêtes DNS des clients privilégient les adresses IP des équilibreurs de charge dans leur propre zone de disponibilité. Cela permet d'améliorer à la fois la latence et la résilience, car les clients n'ont pas besoin de franchir les limites de la zone de disponibilité lorsqu'ils se connectent à des cibles.

Stratégies de routage client disponibles pour les Network Load Balancers utilisant Route 53 Resolver :
  • Affinité de zone de disponibilité : 100 % d'affinité zonale

    Les requêtes DNS des clients privilégieront l'adresse IP de l'équilibreur de charge dans leur propre zone de disponibilité. Les requêtes peuvent être résolues vers d'autres zones s'il n'existe aucune adresse IP d'équilibreur de charge saine dans leur propre zone.

  • Affinité de zone de disponibilité partielle : 85 % d'affinité zonale

    85 % des requêtes DNS des clients privilégieront les adresses IP des équilibreurs de charge dans leur propre zone de disponibilité, tandis que les requêtes restantes seront résolues vers n'importe quelle zone saine. Les requêtes peuvent être résolues vers d'autres zones saines s'il n'existe aucune adresse IP saine dans leur zone. Lorsqu'il n'existe aucune adresse IP saine dans une zone, les requêtes sont résolues vers n'importe quelle zone.

  • N'importe quelle zone de disponibilité (par défaut) : 0 % d'affinité zonale

    Les requêtes DNS des clients sont résolues vers les adresses IP d'équilibreurs de charge saines de toutes les zones de disponibilité de l'équilibreur de charge.

Note

Les stratégies de routage par affinité de zone de disponibilité s'appliquent uniquement aux clients résolvant le nom DNS des Network Load Balancers à l'aide de Route 53 Resolver. Pour plus d'informations, veuillez consulter Qu'est-ce qu'Amazon Route 53 Resolver ? dans le Guide du développeur Amazon Route 53.

L'affinité de zone de disponibilité permet d'acheminer les requêtes du client vers l'équilibreur de charge, tandis que l'équilibrage de charge entre zones est utilisé pour aider à acheminer les requêtes de l'équilibreur de charge vers les cibles. Lorsque vous utilisez l'affinité de zone de disponibilité, l'équilibrage de charge entre zones doit être désactivé, afin de garantir que le trafic de l'équilibreur de charge entre les clients et les cibles reste dans la même zone de disponibilité. Avec cette configuration, le trafic client est envoyé vers la même zone de disponibilité du Network Load Balancer. Il est donc recommandé de configurer votre application pour qu'elle évolue indépendamment dans chaque zone de disponibilité. Il s'agit d'une considération importante lorsque le nombre de clients par zone de disponibilité ou le trafic par zone de disponibilité ne sont pas les mêmes. Pour plus d’informations, consultez Équilibrage de charge entre zones pour groupes cibles.

Lorsqu'une zone de disponibilité est considérée comme défectueuse ou lorsqu'un changement de zone est entamé, l'adresse IP zonale est considérée comme défectueuse et ne sera pas renvoyée aux clients, sauf si le mode fail-open est activé. L'affinité de zone de disponibilité est maintenue lorsque l'enregistrement DNS est en mode fail-open. Cela permet de préserver l'indépendance des zones de disponibilité et d'éviter les défaillances potentielles entre zones.

Lorsque vous utilisez l'affinité de zone de disponibilité, des périodes de déséquilibre entre les zones de disponibilité sont attendues. Il est recommandé de s'assurer que vos cibles se mettent à l'échelle au niveau zonal, afin de prendre en charge la charge de travail de chaque zone de disponibilité. Dans les cas où ces déséquilibres sont importants, il est recommandé de désactiver l'affinité de zone de disponibilité. Cela permet une distribution uniforme des connexions client entre toutes les zones de disponibilité d'équilibreurs de charge en 60 secondes, ou durant la TTL du DNS.

Avant d'utiliser l'affinité de zone de disponibilité, tenez compte des éléments suivants :
  • L'affinité de zone de disponibilité entraîne des modifications sur tous les clients Network Load Balancers qui utilisent Route 53 Resolver.

    • Les clients ne sont pas en mesure de choisir entre les résolutions DNS zonales-locales et multizones. L'affinité de zone de disponibilité décide pour eux.

    • Les clients ne disposent pas d'une méthode fiable pour déterminer à quel moment ils sont concernés par l'affinité de zone de disponibilité ou comment savoir quelle adresse IP se trouve dans quelle zone de disponibilité.

  • Les clients resteront affectés à leur adresse IP locale de zone jusqu'à ce qu'elle soit jugée totalement défectueuse selon les surveillances de l'état du DNS et qu'elle soit supprimée du DNS.

  • L'utilisation de l'affinité de zone de disponibilité avec l'équilibrage de charge entre zones activé peut entraîner une répartition déséquilibrée des connexions client entre les zones de disponibilité. Il est recommandé de configurer votre pile d'applications pour qu'elle se mette à l'échelle indépendamment dans chaque zone de disponibilité, afin de garantir qu'elle puisse prendre en charge le trafic des clients zonaux.

  • Si l'équilibrage de charge entre zones est activé, le Network Load Balancer est soumis à un impact entre zones.

  • La charge sur chacune des zones de disponibilité des Network Load Balancers sera proportionnelle aux emplacements zonaux des demandes des clients. Si vous ne configurez pas le nombre de clients exécutés dans chaque zone de disponibilité, vous devrez mettre à l'échelle chaque zone de disponibilité de manière réactive et indépendante.

Surveillance

Il est recommandé de suivre la distribution des connexions entre les zones de disponibilité à l'aide des métriques zonales de l'équilibreur de charge. Vous pouvez utiliser des métriques pour afficher le nombre de connexions nouvelles et actives par zone.

Nous vous recommandons d'effectuer le suivi des éléments suivants :

  • ActiveFlowCount : nombre total de flux (ou connexions) simultanés provenant des clients vers des cibles.

  • NewFlowCount : nombre total de nouveaux flux (ou connexions) établis entre les clients et les cibles pendant la période.

  • HealthyHostCount : nombre de cibles considérées saines.

  • UnHealthyHostCount : nombre de cibles considérées défectueuses.

Pour de plus amples informations, veuillez consulter la page CloudWatch métriques pour votre Network Load Balancer.

Activation de l'affinité de zone de disponibilité

Les étapes de cette procédure expliquent comment activer l'affinité de zone de disponibilité à l'aide de la console Amazon EC2.

Pour activer l'affinité de zone de disponibilité à l'aide de la console
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Load Balancers.

  3. Sélectionnez le nom de l'équilibreur de charge afin d'ouvrir sa page de détails.

  4. Dans l'onglet Attributes, choisissez Edit.

  5. Sous Configuration de l'acheminement de la zone de disponibilité, Politique de routage du client (enregistrement DNS), sélectionnez Affinité de zone de disponibilité ou Affinité partielle de zone de disponibilité.

  6. Sélectionnez Enregistrer les modifications.

Pour activer l'affinité de zone de disponibilité à l'aide de l'AWS CLI

Utilisez la modify-load-balancer-attributescommande avec l'dns_record.client_routing_policyattribut.

Désactivation de l'affinité de zone de disponibilité

Les étapes de cette procédure expliquent comment désactiver l'affinité de zone de disponibilité à l'aide de la console Amazon EC2.

Pour désactiver l'affinité de zone de disponibilité à l'aide de la console
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, choisissez Load Balancers.

  3. Sélectionnez le nom de l'équilibreur de charge afin d'ouvrir sa page de détails.

  4. Dans l'onglet Attributes, choisissez Edit.

  5. Sous Configuration de l'acheminement de la zone de disponibilité, Politique de routage du client (enregistrement DNS), sélectionnez Toute zone de disponibilité.

  6. Sélectionnez Enregistrer les modifications.

Pour désactiver l'affinité de zone de disponibilité à l'aide de l'AWS CLI

Utilisez la modify-load-balancer-attributescommande avec l'dns_record.client_routing_policyattribut.