GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer le routage basé sur l'hôte sur l'équilibreur de charge d'application AWS

Dans AWS, ELB ou Elastic Load Balancing est un concept où les serveurs peuvent être ajoutés ou libérés selon la demande de notre application. Le trafic entrant d'une application est réparti entre plusieurs cibles. Ces cibles peuvent être des instances EC2, des conteneurs et des adresses IP dans une ou plusieurs zones de disponibilité. Les types d'équilibreurs de charge élastiques AWS pris en charge sont les équilibreurs de charge d'application (ALB), les équilibreurs de charge réseau (NLB), les équilibreurs de charge de passerelle (récemment lancés) et les équilibreurs de charge classiques. Ces équilibreurs de charge ont différentes configurations, par exemple 

  1. Application Load Balancer :il fonctionne en distribuant automatiquement le trafic d'application entrant entre deux ou plusieurs instances EC2. Nous pouvons définir des règles de routage selon le contenu de la demande (routage basé sur le contenu). Il s'agit d'un équilibreur de charge de couche 7.
  2. Équilibreurs de charge réseau :NLB utilise les données du protocole IP (TCP et UDP) pour acheminer les connexions vers les ressources AWS comme EC2, les microservices et les conteneurs. Il s'agit d'un équilibreur de charge de couche 4.
  3. Gateway Load Balancer :ils sont utilisés avec des appliances virtuelles tierces telles que les pare-feu NextGen (NGFW), IPS, IDS, etc. exécutés sur des instances EC2. Cela fonctionne en plaçant une seule passerelle pour le trafic de plusieurs appliances virtuelles et ces multiples appliances virtuelles peuvent être augmentées ou réduites en fonction de la demande. C'est bon pour la stabilité du réseau. Il s'agit d'un équilibreur de charge de couche 3 (passerelle) et de couche 4 (équilibrage de charge).
  4. Équilibreur de charge classique :CLB est un équilibreur de charge hérité d'AWS qui est utilisé pour l'équilibrage de charge sur plusieurs instances EC2. Il est recommandé pour les applications conçues au sein du réseau EC2-Classic. Il s'agit d'un équilibreur de charge de couche 4/7. Il est recommandé par AWS d'éviter cet équilibreur de charge.

Aperçu de ce guide


Dans ce didacticiel, nous allons configurer le routage basé sur le chemin pour Application Load Balancer sur AWS. Nous allons utiliser un compte utilisateur IAM avec des privilèges limités requis pour cette tâche. Nous disposons des ressources suivantes pour ce test :

  1. Deux zones de disponibilité contenant chacune au moins une instance EC2.
  2. Un VPC a au moins un sous-réseau public dans chacune des deux zones de disponibilité ci-dessus. Ce sous-réseau public sera utilisé pour configurer l'équilibreur de charge.
  3. Installez un serveur Web sur chaque instance et autorisez l'accès au port 80 sur ces instances à l'aide du groupe de sécurité.

Configuration des instances EC2

Pour ce guide, nous avons configuré deux instances Amazon Linux EC2 avec apache Httpd installé sur chacune d'elles. Sur un serveur, nous avons un répertoire "signin" et un fichier index.html à l'intérieur avec le contenu : "Welcome User ? Connectez-vous pour continuer...”

Sur un autre serveur, nous avons un répertoire "signup" et un fichier index.html à l'intérieur avec le contenu :"Nouvel utilisateur ? Inscrivez-vous d'abord...”

Les répertoires "signin" et "signup" se trouvent dans le répertoire racine (/var/www/html).

Configuration du groupe cible

Étape 1. Pour acheminer la demande, nous allons d'abord créer deux groupes cibles, un pour chaque serveur. Ouvrez la console EC2 et sur le panneau de gauche, recherchez et sélectionnez "Groupes cibles" (il se trouve sous Équilibrage de charge) :

Étape 2. Sur la nouvelle page, cliquez sur le bouton "Créer un groupe cible" :


Étape 3. Nous sommes maintenant sur la page "Spécifier les détails du groupe". Dans la configuration de base, procédez comme suit :

  1. Choisissez un type de cible :sélectionnez "Instances" ici.
  2. Nom du groupe cible :donnez un nom approprié au groupe cible ("Connexion" dans notre cas.)
  3. Protocole :HTTP
  4. Port :80
  5. VPC :sélectionnez votre nom de VPC ici.
  6. Version du protocole :conservez la version sélectionnée par défaut. (HTTP1)

Sous les paramètres "Vérifications de l'état" :

Protocole de vérification de l'état :HTTP

Chemin de vérification de l'état :"Chemin que vous souhaitez utiliser" (‘/signin’ dans notre cas)

Conservez les "Paramètres de vérification de l'état avancés" par défaut. Ajoutez des balises si vous en avez besoin (facultatif). Cliquez sur "Suivant" pour continuer.

Enregistrement des instances EC2 auprès des groupes cibles

Étape 3. Ajoutez maintenant l'une des instances EC2 aux groupes cibles ci-dessus. Sélectionnez une instance, puis cliquez sur le bouton "Inclure comme en attente ci-dessous"


L'instance sélectionnée ci-dessus apparaîtra sous "Revoir les cibles". Cliquez maintenant sur "Créer un groupe cible".


Dans la fenêtre suivante, cliquez à nouveau sur « continuer ». Répétez maintenant la même procédure pour un autre groupe cible et nommez-le "Inscription". Utilisez une autre instance (dans une autre zone de disponibilité) avec ce groupe cible et utilisez un chemin de vérification de l'état différent ('/signup' dans notre cas) :



Création de l'équilibreur de charge d'application

Étape 1. À partir de la console EC2, accédez à Équilibreurs de charge et cliquez sur le bouton Créer un équilibreur de charge, puis sélectionnez "Équilibreur de charge d'application" affiché sur la nouvelle page :


Étape 2. Donnez un nom approprié (ici 'My-Path-ALB') à votre équilibreur de charge. Conservez le schéma par défaut ("accès Internet"), sélectionnez le type d'adresse IP comme IPv4



Étape 3. Dans la section Mappage réseau, sélectionnez le VPC cible et dans Dans la section Mappages, sélectionnez les deux zones de disponibilité contenant vos cibles vers lesquelles l'équilibreur de charge acheminera le trafic.


Étape 4. Configurez les groupes de sécurité pour l'équilibreur de charge et autorisez votre port cible (port 80 dans notre cas) à écouter :


Étape 5.  Sélectionnez un écouteur (HTTP dans notre cas) et entrez un port sur lequel écouter ou choisissez de vous en tenir au port par défaut 80 pour les requêtes HTTP. Sous l'action par défaut, sélectionnez la cible "Connexion" pour la colonne "transférer vers" :



Étape 6. Les étapes facultatives peuvent être ignorées. Passez maintenant en revue le résumé et cliquez sur le bouton "Créer un équilibreur de charge" :

Ajout de règles de transfert basées sur l'hôte

Étape 1. Maintenant, allez à nouveau sur la page "Load Balancers" et trouvez votre équilibreur de charge cible ici :


 

Étape 2. Une fois que l'état de l'ALB passe à Actif, nous poursuivons avec les règles de transfert. Cliquez sur le nom de l'équilibreur de charge, puis accédez à l'onglet Écouteurs

Étape 3. Cliquez sur "Afficher/Modifier les règles" dans la colonne "Règles", puis cliquez sur le symbole "+" suivi de "Insérer une règle" :




Étape 4. Sous la colonne "IF(all match)", cliquez sur la flèche déroulante "+ Add condition" et sélectionnez "Host" comme type de règle et mettez votre nom d'hôte ou nom de domaine ("www.signin.tecofers.com" dans notre cas) dans le champ de texte correspondant à l'étiquette "est".

Étape 5. Dans la colonne "Alors", cliquez sur la flèche déroulante "+ Ajouter une action" et sélectionnez "Transférer à" comme action. Ici, sélectionnez le groupe cible "Sign-In".
Répétez les étapes 2 et 3 ci-dessus pour le groupe cible "SignUp" avec le nom d'hôte ou le nom de domaine ("www.signup.tecofers.com" dans notre cas). Après avoir enregistré les règles, nous aurons deux règles :

La dernière règle est pour l'action par défaut si les deux conditions ci-dessus ne sont pas remplies.

Enregistrer le domaine dans Route 53

Pour enregistrer les hôtes/domaines pour le routage basé sur l'hôte sur Internet, nous devons ajouter le nom DNS de leurs instances EC2 correspondantes avec leur nom d'hôte/domaine dans Route 53 .

Étape 1. Ouvrez le tableau de bord Route 53 depuis la console de gestion et cliquez sur "Créer une zone hébergée" :


Étape 2. Sur la page de configuration de la zone hébergée, saisissez le nom de domaine et sélectionnez le type ' Zone hébergée publique" et sélectionnez "Créer une zone hébergée" :


Étape 3. Sur la nouvelle page, cliquez sur « Créer un enregistrement » :


Étape 4. Sur la nouvelle page, cliquez sur l'étiquette "Passer à l'assistant" et sélectionnez Option 'Routage Simple'


Étape 5. Cliquez ici sur 'Définir un enregistrement simple'


Étape 6. Saisissez divers détails pour cet enregistrement :

Domaine :sous-domaine correspondant à votre zone hébergée.

Type d'enregistrement :sélectionnez un type ici.

Valeur/Acheminement du trafic vers :

  1. Sélectionnez "Alias ​​vers l'application et l'équilibreur de charge classique"
  2. Sélectionnez la région où se trouve l'équilibreur de charge
  3. Sélectionnez l'équilibreur de charge cible.




Enfin, appuyez sur "Définir un enregistrement simple".

L'enregistrement ci-dessus apparaîtra maintenant comme indiqué ici :


Répétez les étapes ci-dessus pour l'autre hôte.

Vérification de la configuration…

Pour vérifier si tout fonctionne comme prévu, ouvrez un navigateur Web et collez le DNS de l'équilibreur de charge et ajoutez-le avec :

1) Nom d'hôte pour la cible "Inscription"



2) Nom d'hôte pour la cible "Connexion"





Conclusion

Félicitations, nous avons enfin configuré un scénario de travail pour le routage basé sur l'hôte sur l'équilibreur de charge d'application AWS.


Linux
  1. Comment configurer NGINX en tant qu'équilibreur de charge TCP/UDP sous Linux

  2. Comment configurer l'équilibreur de charge HAProxy

  3. Comment installer et configurer l'équilibreur de charge HAProxy sur Debian 11

  4. Comment installer et configurer l'équilibreur de charge HAProxy sur Rocky Linux/Alma Linux 8

  5. Comment installer et configurer l'équilibreur de charge HAProxy sur Ubuntu 20.04

Comment lancer RHEL 8 à partir d'Amazon EC2 dans le cloud AWS

Comment configurer HAProxy comme équilibreur de charge pour Nginx dans CentOS 7

Comment fonctionne un équilibreur de charge ? Qu'est-ce que l'équilibrage de charge ?

Comment configurer l'équilibrage de charge avec NGINX sur Jelastic Cloud

Configurer un site Web WordPress à charge équilibrée sur AWS EC2 - Partie 2

Comment effacer les informations d'identification dans AWS Configure ?