Comment configurer le routage basé sur les chemins dans un équilibreur de charge d’applications AWS

Dans AWS, ELB et Elastic Load Balancing existe un concept où les serveurs peuvent être ajoutés ou libérés en fonction de la demande de notre application et 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 de réseau (NLB), les équilibreurs de charge de passerelle (récemment lancés) et les équilibreurs de charge classiques. Ces équilibreurs de charge ont des configurations différentes, par exemple,

1. Équilibreur de charge d’application : 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 en fonction du 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 aux ressources AWS comme EC2, les microservices et les conteneurs. Il s’agit d’un équilibreur de charge de couche 4.

3. Équilibreur de charge de passerelle : Ils sont utilisés avec des appliances virtuelles tierces comme les pare-feu NextGen (NGFW), IPS, IDS, etc. fonctionnant sur des instances EC2. Il fonctionne en plaçant une seule passerelle pour le trafic provenant de plusieurs appliances virtuelles et ces multiples appliances virtuelles peuvent être mises à l’échelle ou réduites en fonction de la demande. Cela 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 dans le réseau EC2-Classic. Il s’agit d’un équilibreur de charge de niveau 4/7. Il est recommandé par AWS d’éviter cet équilibreur de charge.

Aperçu de ce guide

Dans ce tutoriel, nous allons configurer le routage basé sur le chemin pour un équilibreur de charge d’application sur AWS. Nous allons utiliser un compte utilisateur IAM pour cette tâche. Nous disposons des ressources suivantes pour cette configuration :

1. Deux zones de disponibilité contenant chacune au moins une instance EC2.

2. Un VPC ayant au minimum 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. Installe un serveur Web sur chaque instance et autorise 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 le serveur Web Apache Httpd installé sur chacune d’elles. Sur l’un des serveurs, nous avons un répertoire ‘signin’ contenant un fichier index.html avec le contenu suivant : « Bienvenue utilisateur ? Connecte-toi pour continuer… »

Sur un autre serveur, nous avons un répertoire ‘signup’ contenant un fichier index.html avec le contenu suivant : « Nouvel utilisateur ? Inscris-toi d’abord… »

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

Configurer le groupe cible

Étape 1. Pour acheminer la demande, nous allons d’abord créer deux groupes cibles, un pour chaque serveur. Ouvre la console EC2 et sur le panneau latéral gauche, trouve et sélectionne ‘Groupes cibles’ (sous Répartition de charge).

Étape 2. Sur la nouvelle page, clique sur le bouton ‘Créer un groupe cible’ :

Non Groupes cibles

Étape 3. Nous sommes maintenant sur la page ‘Spécifier les détails du groupe’. Sous la configuration de base, fais ce qui suit :

  1. Choisis un type de cible : Sélectionne ‘Instances’ ici.
  2. Nom du groupe cible : Donne un nom approprié au groupe cible(‘Sign-In’ dans notre cas.)
  3. Protocole : HTTP
  4. Port : 80
  5. VPC : Sélectionne ton nom de VPC ici.
  6. Version du protocole : Garde la valeur par défaut sélectionnée.(HTTP1)

Dans les paramètres des ‘Contrôles de santé’ :

  1. Protocole de contrôle de santé : HTTP
  2. Chemin du bilan de santé : ‘Chemin que tu veux utiliser'(‘/signin’ dans notre cas)
  3. Garde les ‘Paramètres avancés des contrôles de santé’ par défaut. Ajoute des balises si tu en as besoin (facultatif). Clique sur ‘Suivant’ pour continuer.

Enregistrement des instances EC2 dans les groupes cibles

Étape 1. Ajoute maintenant l’une des instances EC2 aux groupes cibles ci-dessus. Sélectionne une instance, puis clique sur le bouton « Inclure comme en attente ci-dessous ».

Enregistrer les instances EC2 dans les groupes cibles

Étape 2. L’instance sélectionnée ci-dessus apparaîtra sous ‘Review targets’. Clique maintenant sur ‘Créer un groupe cible’.

Créer un groupe cible
Étape 3. Dans la fenêtre suivante, clique à nouveau sur ‘continuer’. Répète maintenant la même procédure pour un autre groupe cible et nomme-le ‘Sign-Up’. Utilise une autre instance( dans une autre zone de disponibilité) avec ce groupe cible et utilise un chemin de contrôle de santé différent(‘/signup’ dans notre cas) :

Groupes cibles

Créer l’équilibreur de charge d’application

Étape 1. Dans la console EC2, va dans Équilibreurs de charge et clique sur le bouton Créer un équilibreur de charge, puis sélectionne l’équilibreur de charge d’application affiché sur la nouvelle page :

Application Load Balancer’ page
Étape 2. Donne un nom approprié (ici ‘My_Path_ALB’) à ton équilibreur de charge. Garde le schéma par défaut (‘Internet-facing’), sélectionne le type d’adresse IP comme IPv4.

Configuration de base de l'équilibreur de charge

Étape 3. Dans la section Network mapping, sélectionne le VPC cible et dans la section Mappings, sélectionne les deux zones de disponibilité contenant tes cibles vers lesquelles l’équilibreur de charge acheminera le trafic.

Cartographie du réseau
Étape 4. Configure les groupes de sécurité pour l’équilibreur de charge et autorise le port de ta cible (le port 80 dans notre cas) à écouter :

Configurer les groupes de sécurité
Étape 5. Sélectionne un auditeur (HTTP dans notre cas) et entre un port d’écoute ou choisis de conserver le port 80 par défaut pour les demandes HTTP. Sous l’action par défaut, sélectionne la cible ‘Sign-in’ dans la colonne ‘forward to’ :

Configuration de l'écouteur
Étape 6. Les étapes facultatives peuvent être ignorées. Regarde maintenant le résumé et clique sur le bouton « Créer un équilibreur de charge » :

Examine le résumé de l'équilibreur de charge
Étape 7. Va à nouveau sur la page ‘Équilibreurs de charge’ et trouve ton équilibreur de charge cible ici :

Load Balancers’ page

Ajout de règles de transfert basées sur les chemins

Étape 1. Une fois que l’état de l’ALB est passé à Actif, nous allons passer aux Règles de transfert. Clique sur le nom de l’équilibreur de charge, puis passe à l’onglet Écouteurs.

Étape 2. Clique sur ‘View/Edit rules’ (Afficher/Modifier les règles) dans la colonne ‘Rules’ (Règles), puis clique sur le symbole ‘+’ suivi de ‘Insert Rule’ (Insérer une règle) :

Règles basées sur le chemin

Ajout de règles de transfert basées sur le chemin

Étape 3. Sous la colonne ‘SI(tous correspondent)’, clique sur la flèche déroulante ‘+ Ajouter une condition’ et sélectionne ‘Chemin’ comme type de règle et mets ‘/signin*’ dans le champ de texte correspondant à l’étiquette ‘is’.

Étape 4. Dans la colonne ‘Ensuite’, clique sur la flèche déroulante ‘+Ajouter une action’ et sélectionne ‘Transférer vers’ comme action. Ici, sélectionne le groupe cible ‘Sign-In’.

Répète les étapes 2 et 3 ci-dessus pour le groupe cible ‘SignUp’ avec le chemin d’accès ‘/signup*’. Après avoir enregistré les règles, nous aurons deux règles :

Résumé des règles basées sur le chemin

Vérifier la configuration…

Pour vérifier si tout fonctionne comme prévu, ouvre un navigateur Web et colle les DNS de l’équilibreur de charge et ajoute-les :

1) Chemin du groupe cible ‘Sign-Up’ : ‘/signup’.

Test de l'installation 1

2) Chemin du groupe cible ‘Sign-In’ : ‘/signin’.

Test de l'installation 2

Conclusion

Félicitations, nous avons enfin configuré un scénario fonctionnel pour le routage basé sur le chemin d’accès sur l’équilibreur de charge d’application AWS.

Vous aimerez aussi...