Quelle est la différence entre l’équilibrage de charge d’application, réseau et de passerelle ?


Quelle est la différence entre l’équilibrage de charge d’application, réseau et de passerelle ?

L’équilibreur de charge d’application (Application Load Balancer, ALB), l’équilibreur de charge réseau (Network Load Balancer, NLB) et l’équilibreur de charge de passerelle (Gateway Load Balancer, GLB) sont trois types d’équilibreurs de charge utilisés dans le cloud. L’équilibrage de charge est le processus qui consiste à répartir le trafic réseau de manière égale sur un ensemble de ressources prenant en charge une application. Les applications modernes traitent simultanément des millions d’utilisateurs. Ces volumes de trafic élevés nécessitent de nombreux serveurs de ressources avec des données dupliquées. Pour rediriger le trafic des applications, les ALB examinent le contenu demandé, tel que les en-têtes HTTP ou les ID de session SSL. Les NLB examinent les adresses IP et d’autres informations réseau pour rediriger le trafic de manière optimale. Les GLB agissent comme une passerelle réseau transparente (un point d’entrée et de sortie unique pour tout le trafic) et distribuent le trafic tout en adaptant vos appliances virtuelles à la demande.

En savoir plus sur l’équilibrage de charge

Comment ils fonctionnent : ALB vs NLB vs GLB

Les ALB, NLB et GLB offrent tous des fonctions différentes. De ce fait, ils fonctionnent de manière légèrement différente et incluent des composants distincts. 

Fonctionnement d’un équilibreur de charge d’application

Les ALB répartissent le trafic entrant sur plusieurs cibles, telles que les instances EC2. Par exemple, une application de commerce électronique possède un répertoire de produits, un panier d’achat et des fonctions de paiement. L’ALB envoie des demandes de navigation de produits aux serveurs qui contiennent des images et des vidéos, mais qui n’ont pas besoin de maintenir des connexions ouvertes. En comparaison, il envoie les demandes de panier d’achat à des serveurs capables de maintenir de nombreuses connexions clients et d’enregistrer les données du panier pendant une longue période.

L’ALB possède un composant d’écoute qui vérifie les demandes de connexion des clients. Vous pouvez définir des règles pour un écouteur qui déterminent la manière dont l’équilibreur de charge achemine les requêtes vers ses cibles enregistrées. Un groupe cible trie les cibles enregistrées en groupes. Vous pouvez définir des règles pour acheminer le trafic commun vers l’ensemble d’un groupe. Par exemple, vous pouvez créer un groupe cible pour les demandes générales et d’autres groupes cibles pour les demandes adressées aux microservices de votre application.

Le schéma suivant montre le fonctionnement d’un ALB.

Fonctionnement d’un équilibreur de charge réseau

Les NLB distribuent le trafic en fonction des conditions du réseau. Par exemple, si plusieurs serveurs de base de données contiennent des données dupliquées, le NLB achemine le trafic en fonction des adresses IP des serveurs ou de la disponibilité des serveurs prédéterminées.

Le NLB surveille l’état de ses cibles enregistrées et n’achemine le trafic que vers les cibles saines. Une fois que l’équilibreur de charge a reçu une demande de connexion, il sélectionne une cible dans le groupe cible pour la règle par défaut. Il tente d’ouvrir une connexion TCP vers la cible sélectionnée sur le port spécifié dans la configuration du module d’écoute. Chaque connexion TCP est acheminée vers une cible unique pendant toute la durée de vie de la connexion. De même, vous pouvez également acheminer un flux UDP de manière cohérente vers une cible unique tout au long de sa durée de vie. 

Fonctionnement d’un équilibreur de charge de passerelle

Avec un GLB, vous pouvez déployer, gérer et mettre à l’échelle des appliances virtuelles, telles que la détection et la prévention des intrusions, les pare-feux et les systèmes d’inspection approfondie des paquets. Il crée un point d’entrée et de sortie unique pour l’ensemble du trafic des appliances et met à l’échelle vos appliances virtuelles en fonction de la demande. Vous pouvez également l’utiliser pour échanger du trafic au-delà des limites du cloud privé virtuel (VPC). 

Dans le GLB, vous établissez des règles à l’aide de tables de routage. En fonction des règles que vous définissez, il sélectionne différents groupes cibles vers lesquels transférer le trafic. Il reçoit des paquets IP et transmet le trafic à des groupes cibles spécifiques.

Principales différences : ALB vs NLB vs GLB

Les ALB, NLB et GLB fonctionnent à différents niveaux de votre communication réseau. Un ALB fonctionne sur la couche OSI 7 et permet la manipulation et le routage du trafic au niveau de l’application. Un NLB fonctionne sur la couche 4 pour la gestion du trafic au niveau du réseau en fonction des ports et des adresses IP. Un GLB fonctionne sur les couches 3 et 7, fournissant des services d’équilibrage et de routage au niveau du réseau ainsi que des fonctionnalités de passerelle.

En savoir plus sur le modèle OSI

Voici d’autres différences clés entre les ALB, les NLB et les GLB.

Types de cibles

Le type de cible est le point de terminaison vers lequel chacun de ces équilibreurs de charge achemine le trafic. Un ALB fonctionne avec les cibles de type adresses IP, instances et AWS Lambda. Les NLB fonctionnent avec les adresses IP et les instances, et peuvent également acheminer le trafic vers un ALB pour des demandes plus complexes. Les GLB fonctionnent avec les cibles de type IP et instance.

En savoir plus sur les instances dans le cloud computing

Comportement du proxy

L’action entreprise par un équilibreur de charge lorsqu’il reçoit une demande client dépend de deux facteurs :

  • si l’équilibreur de charge agit comme un proxy puis met fin à la connexion du client ;
  • s’il transmet la demande sans mettre fin au flux.

La terminaison du flux permet aux équilibreurs de charge d’exécuter des fonctions de gestion du trafic supplémentaires, telles que la terminaison SSL, la persistance des sessions et le routage basé sur le contenu. 

Un ALB met fin à la connexion client puis établit une nouvelle connexion, agissant en tant que proxy. Un NLB met également fin à la connexion client et en établit une nouvelle pour le compte du client. Cependant, un GLB n’agit pas en tant que proxy et ne met pas fin à la connexion ; il transmet le trafic directement.

Protocoles

Ces équilibreurs de charge prennent en charge différents protocoles pour gérer des types de trafic spécifiques et exécuter des fonctions avancées. Les ALB prennent en charge les protocoles HTTP, HTTPS et gRPC pour le trafic Web. Un NLB prend en charge les protocoles TCP, UDP et TLS, qui couvrent la distribution du trafic au niveau du réseau. Enfin, un GLB couvre le routage basé sur IP et gère tous les protocoles basés sur IP. 

Algorithmes

Ces équilibreurs de charge utilisent différents types d’algorithmes pour répartir le trafic de manière uniforme vers leurs cibles. Un ALB utilise un algorithme round-robin par défaut, acheminant le trafic l’un après l’autre. Cependant, un NLB utilise un algorithme de hachage de flux afin que le trafic soit acheminé vers des cibles spécifiques d’une manière prédéterminée. Un GLB utilise les recherches dans les tables de routage pour déterminer où acheminer le trafic. 

Quand utiliser : ALB vs NLB vs GLB

Un ALB est un bon choix lorsque vous avez besoin d’une gestion et d’un routage flexibles du trafic au niveau de l’application. C’est ce qu’il y a de mieux avec les microservices, les environnements conteneurisés et les applications Web. Ses fonctionnalités, telles que la terminaison SSL, la persistance des sessions et le routage basé sur le contenu, lui permettent de fournir une assistance dans le cadre de scénarios de routage complexes. 

Un NLB est idéal pour un équilibrage au niveau du réseau à hautes performances, à faible latence et évolutif. Les applications qui distribuent le trafic sur la couche de transport utilisent des NLB, notamment compte tenu de leur fiabilité. Les systèmes de jeu, les services de streaming multimédia et les principaux systèmes IoT utilisent les NLB. 

Un GLB est idéal lorsque vous effectuez un équilibrage au niveau de la passerelle réseau. Par exemple, un GLB fonctionne bien si vous gérez le trafic entre des environnements cloud et sur site ou entre différentes régions. Comme il combine l’équilibrage des couches OSI 3 et 4, il peut acheminer le trafic entre des régions et des réseaux distincts. Prenant en charge le routage basé sur IP, il peut répartir le trafic entre les passerelles virtuelles, offrant ainsi une capacité de mise à l’échelle et une disponibilité élevées.

Récapitulatif des différences : ALB vs NLB vs GLB

 

Application Load Balancer (ALB)

Network Load Balancer (NLB)

Gateway Load Balancer (GLB)

Couche OSI

Fonctionne sur la couche 7, la couche « application ».

Fonctionne sur la couche 4, la couche « transport ».

Fonctionne sur la couche « réseau », c’est-à-dire la couche 3 et sur la couche 7.

Types de cibles

Fonctionne avec les types de cibles IP, instance et Lambda.

Fonctionne avec les types de cibles IP, instance et ALB.

Fonctionne avec les types de cibles IP et instance.

Comportement du proxy

Met fin à la connexion.

Met fin à la connexion.

Ne met pas fin au flux.

Protocoles

Supporte les protocoles HTTP, HTTPS et gRPC.

Supporte les protocoles TCP, UDP et TLS.

Supporte le routage basé sur IP. 

Algorithmes

Round-robin.

Hachage du flux.

Recherche dans une table de routage.

Comment AWS peut-il vous aider à répondre à vos besoins en matière d’équilibrage de charge ?

Elastic Load Balancing (ELB) est un service d’équilibrage de charge entièrement géré. Il distribue automatiquement le trafic applicatif entrant vers plusieurs cibles et appliances virtuelles au sein des Amazon Web Services (AWS) et des ressources sur site. En outre, il prend en charge l’équilibrage de charge entre zones dans les Régions AWS. Vous pouvez utiliser ELB pour configurer l’ALB, le NLB ou le GLB selon vos besoins. 

L’ALB est l’un des composants d’ELB. ELB prend également en charge le NLB, le GLB et le Classic Load Balancer. Ces équilibreurs de charge sont des points de contact avec les clients et contribuent à améliorer la capacité de mise à l’échelle des applications grâce à une gestion sécurisée. Vous pouvez choisir un ou plusieurs équilibreurs de charge et les configurer lorsque vous configurez ELB pour votre environnement cloud.

Commencez à utiliser l’équilibrage de charge sur AWS en créant un compte dès aujourd’hui.