Comment créer et configurer l'équilibreur de chargement réseau sur AWS

Comment créer et configurer l'équilibreur de chargement réseau sur AWS
Lorsque l'utilisateur demande une application ou un serveur Web augmente au-delà d'une certaine limite, il est difficile pour un seul serveur de gérer la charge et les utilisateurs commencent à faire face à des difficultés à accéder à l'application. Pour résoudre ce problème, la plupart des applications Web s'exécutent sur plus d'un serveur pour gérer la demande de charges élevées des utilisateurs. Mais nous avons besoin d'un mécanisme pour diviser les demandes entre les différents serveurs. Pour résoudre ce problème, nous devons utiliser un équilibreur de charge qui peut distribuer le trafic sur les serveurs en fonction de certains algorithmes. Les algorithmes les plus courants utilisés sont Round Robin, Round-Robin pondéré, le moins de connexion, le moins de temps de réponse, le hachage de débit, etc. En tant que l'un des plus grands fournisseurs de services cloud, AWS propose différents types d'équilibreurs de charge, et vous devez décider lequel est le plus adéquat et économique pour gérer votre travail d'application.

Types d'équilibreurs de charge dans AWS

Dans AWS, vous obtenez les quatre types d'équilibreurs de charge suivants:

Équilibreur de charge classique

Il fonctionne sur la couche de transport (TCP) et la couche d'application (HTTP). Il ne prend pas en charge la cartographie des ports dynamiques et nécessite une relation entre le port d'équilibreur de charge et le port d'instance. Maintenant, c'est un service hérité et non recommandé d'utiliser beaucoup.

Équilibreur de chargement d'application

Il s'agit de l'équilibre de charge le plus couramment utilisé qui achemine le trafic en fonction de la couche d'application (HTTP / HTTPS). Il prend également en charge la fonction de mappage de port dynamique et fournit un routage intelligent.

Équilibreur de chargement de réseau

L'équilibreur de charge de réseau utilise un algorithme de hachage de flux et fonctionne à la couche de transport (TCP), I.e., Couche 4 du modèle OSI. Il peut gérer plus de demandes que l'équilibreur de charge d'application et fournit le moins de latence.

Balancer de chargement de passerelle

Il s'agit d'un équilibreur de charge qui offre d'autres avantages tels que la sécurité du réseau et le pare-feu. Il prend des décisions de routage sur la 3e couche OSI (couche réseau) et utilise le protocole Geneve sur le port 6081.

Création d'équilibreur de charge de réseau à l'aide de la console de gestion AWS

Dans cet article, nous créerons et configurerons un équilibreur de chargement réseau. La première étape consiste à configurer le service sur lequel nous voulons appliquer notre équilibreur de chargement. Il peut s'agir d'instances EC2, de fonctions lambda, d'adresses IP ou d'équilibreurs de chargement d'application. Ici, nous choisirons les instances EC2, alors recherchez un service EC2 dans la console.

Configurez autant d'instances que vous le souhaitez pour votre application.

Avant de créer notre équilibreur de charge, nous devons créer un groupe cible. Ouvrez la console des groupes cibles à partir du menu de gauche dans la section EC2.

Maintenant, cliquez sur Créer un groupe cible pour commencer.

Tout d'abord, vous devez choisir le service que vous souhaitez créer le groupe cible. Ce seront les cas dans notre cas:

Ensuite, fournissez le nom de votre groupe cible, du protocole de réseau, du numéro de port et du VPC (réseau privé virtuel) à laquelle appartiennent vos instances EC2.

Pour un groupe cible qui sera utilisé avec un équilibreur de charge de réseau, le protocole doit être un protocole de couche 4 comme TCP, TLS, UDP ou TCP_UDP car l'équilibreur de charge de réseau fonctionne à la couche 4 du modèle de couche OSI.

Le port ici montre le port sur lequel votre application s'exécute dans les instances EC2. Lors de la configuration de votre application sur plusieurs instances EC2 avec un groupe cible, assurez-vous que votre application sur toutes les instances EC2 fonctionne sur le même port. Dans cette démo, notre application s'exécute sur le port 80 des instances EC2.

Pour VPC, vous devez sélectionner le VPC où existe vos instances EC2. Sinon, vous ne pouvez pas ajouter les instances EC2 au groupe cible.

Vous pouvez également configurer les contrôles de santé afin que si une cible baisse, l'équilibreur de charge cessera automatiquement d'envoyer le trafic réseau vers cette cible.

Maintenant, vous devez enregistrer vos instances à votre groupe cible. Les demandes de l'utilisateur seront transmises aux cibles enregistrées.

Pour enregistrer la cible, sélectionnez simplement ces cibles ou l'instance dans ce cas et cliquez sur «Inclure en attente ci-dessous». Ici, nous avons choisi des cas appartenant à différentes zones de disponibilité pour maintenir notre application en cours d'exécution même si un AZ baisse.

Enfin, cliquez sur Créer un groupe cible et vous êtes prêt à partir.

Maintenant, nous allons créer notre équilibreur de chargement réseau, alors ouvrez la section Balancer Load dans le menu et cliquez sur Créer l'équilibreur de chargement.

À partir des types suivants, sélectionnez l'équilibreur de charge du réseau:

Tout d'abord, définissez le nom de votre équilibreur de charge de réseau dans la section de configuration de base.

Maintenant, choisissez le schéma de réseau, je.e., Soit vous voulez que votre équilibreur de charge soit public, soit simplement l'utiliser dans votre réseau privé (VPC).

Le type d'adresse IP définit si vos instances EC2 utilisent des adresses IPv4 ou IPv6. Si vos instances EC2 utilisent uniquement les adresses IPv4, vous pouvez sélectionner le Ipv4 option. Sinon, sélectionnez le Dualstack option.

Sélectionnez le VPC pour l'équilibreur de charge. Ce doit être le même que celui des instances et des groupes cibles.

Ensuite, vous pouvez sélectionner les zones et sous-réseaux de disponibilité dans lesquels vos instances cibles EC2 existent. Plus de zones de disponibilité signifient que plus vos applications sont très disponibles. Lors de l'exécution de votre application sur plusieurs instances EC2, assurez-vous que vos instances EC2 s'exécutent dans différentes zones de disponibilité.

Comme nos instances appartiennent à chacune des zones de disponibilité présentes dans la région, nous les sélectionnerons tous avec leurs sous-réseaux respectifs.

US-East-2A

US-East-2b

US-East-2C

Maintenant, nous devons définir le protocole et le port réseau et sélectionner notre groupe cible pour notre équilibreur de chargement. L'équilibreur de charge acheminera tout le trafic vers cette cible.

Enfin, notre configuration est complète. Cliquez simplement sur l'équilibreur de chargement dans le coin à droite du bouton, et nous sommes prêts à aller.

Une fois configuré, vous trouverez un point de terminaison pour votre équilibreur de charge dans la section description. Vous utiliserez ce point de terminaison pour accéder à votre application.

Les demandes de l'utilisateur seront reçues via le point de terminaison de l'équilibreur de charge, qui l'attendra vers l'instance configurée via le groupe cible. Si vous essayez plusieurs demandes, vos demandes seront répondues au hasard par n'importe quelle instance.

Ainsi, nous avons créé et configuré avec succès un équilibreur de charge de réseau à l'aide de la console de gestion AWS.

Création d'équilibreur de charge de réseau à l'aide d'AWS CLI

La console AWS est facile à utiliser et à gérer les services et les ressources dans votre compte, mais la plupart des professionnels de l'industrie préfèrent l'interface de ligne de commande. C'est pourquoi AWS a trouvé la solution de fourniture de CLI pour ses utilisateurs, qui peuvent être configurés sur n'importe quel environnement, soit Windows, Linux ou Mac. Alors, voyons comment nous pouvons créer un équilibreur de chargement en utilisant l'interface de ligne de commande.

Ainsi, après avoir configuré votre CLI, exécutez simplement la commande suivante pour créer un équilibreur de chargement de réseau:

$: aws elbv2 create-wad-balancer --name --Type Network - Soubinets

Ensuite, nous devons créer un groupe cible pour cet équilibreur de chargement de réseau.

$: aws elbv2 create-target-group --name --protocole TCP --port 80 --vpc-id

Ensuite, nous devons ajouter des cibles à notre groupe cible en utilisant la commande suivante:

$: AWS ELBV2 Registre-cibles - Target-Groupe-Arn --cible id =

Enfin, en tant qu'auditeur, nous attacherons notre groupe cible à notre équilibreur de chargement.

$: aws elbv2 create-listener --load-balancer-arn --protocole TCP --port 80 - Default-Action Type = Forward, TargetGrouparn =

Nous avons donc réussi à créer un équilibreur de chargement de réseau et à ajouter un groupe cible en tant qu'auditeur à l'équilibreur de chargement à l'aide de l'interface de ligne de commande AWS.

Conclusion

L'équilibrage des charges est essentiel pour tout type d'application Web, car cela aide à assurer la satisfaction des utilisateurs en promettant une disponibilité et un bon temps de réponse. Ils réduisent les temps d'arrêt en fournissant les vérifications de santé nécessaires, facilitant le déploiement du groupe d'automate, acheminez le trafic vers le serveur offrant le moins de latence et acheminez le trafic vers une autre zone de disponibilité en cas de défaillance du système. Pour gérer les demandes massives sur notre serveur, nous pouvons augmenter les ressources de notre instance, telles que plus de CPU, de la mémoire et plus de bande passante réseau. Mais cela ne peut être atteint qu'à un certain niveau et ne sera pas réussi et adapté à de nombreux aspects, tels que le coût, la fiabilité et l'évolutivité. Donc, certainement, nous devrons appliquer plus de serveurs pour notre application. Un simple point à retenir est que l'équilibreur de charge élastique AWS (ELB) est responsable uniquement de l'acheminement et de la distribution des demandes de l'utilisateur. Cela n'ajoutera ni ne supprimera pas les serveurs ou les instances de votre infrastructure. Nous utilisons AWS Auto Scaling Group (ASG). Nous espérons que vous avez trouvé cet article utile. Consultez les autres articles sur les conseils pour plus de conseils et de tutoriels.