Passer au contenu

Comment configurer le routage basé sur le chemin sur un Application Load Balancer ?

Lecture de 7 minute(s)
0

Je prévois d'exécuter plusieurs microservices derrière mon Application Load Balancer. Je souhaite transférer les requêtes vers des groupes cibles spécifiques en fonction du chemin URL.

Brève description

Vous pouvez utiliser un Application Load Balancer pour créer un écouteur avec des règles qui transmettent les requêtes à des groupes cibles en fonction de l'URL. Les règles de modèle de chemin s'appliquent uniquement au chemin de l'URL et non aux paramètres de requête de l'URL. Pour plus d'informations sur les modèles de chemin, consultez la section Conditions de chemin.

Remarque : Cette fonctionnalité n'est pas prise en charge pour Classic Load Balancer, Network Load Balancer ou Gateway Load Balancer.

Pour établir un routage basé sur le chemin sur votre Application Load Balancer, procédez comme suit :

  1. Créez un groupe cible.
  2. Configurez les règles d'écouteur.

Prérequis :

Résolution

Créer un groupe cible

Après avoir créé les instances, enregistrez-les auprès d'un groupe cible. Sur la base des règles d'écouteur configurées, l'Application Load Balancer envoie des requêtes aux cibles enregistrées en fonction du port et du protocole que vous avez spécifiés. Cependant, vous pouvez modifier les informations de port lorsque vous enregistrez des cibles individuellement. Pour plus d'informations, consultez la section Créer un groupe cible pour votre Application Load Balancer.

Supposons, par exemple, que vous disposiez de deux services, le service A et le service B. Les applications qui exécutent ces services utilisent le port 80. Le service A exécute une application sur le chemin /svcA, et le service B exécute une application sur le chemin /svcB.

  • Vous créez deux groupes cibles avec le protocole HTTP et le port 80, chacun avec une application déployée.
  • Vous enregistrez l'instance Amazon EC2 qui exécute le service A auprès de target-group-A. Pour ce groupe cible, vous pouvez définir le protocole HealthCheckProtocol HTTP et le chemin HealthCheckPath /svcA.
  • Vous enregistrez l'instance Amazon EC2 qui exécute le service B auprès de target-group-B. Pour ce groupe cible, vous pouvez définir le protocole HealthCheckProtocol HTTP et le chemin HealthCheckPath /svcB.

Vous pouvez ajouter des cibles à vos groupes cibles à tout moment ou en supprimer. Pour plus d'informations, consultez la section Enregistrer des cibles auprès de votre groupe cible de l’Application Load Balancer.

Une fois que vous avez spécifié un groupe cible, l'équilibreur de charge surveille en permanence l'état de toutes les cibles qui se trouvent dans la zone de disponibilité activée. L'équilibreur de charge achemine les requêtes vers les cibles enregistrées qui sont saines. Pour plus d'informations, consultez la section Surveillances de l’état des groupes cibles de l'Application Load Balancer.

Configuration des règles d'écouteur

Lorsque vous créez un écouteur pour un Application Load Balancer, vous pouvez définir une ou plusieurs règles en plus de la règle par défaut. Une règle comprend une priorité, une action et une ou plusieurs conditions. Vous ne pouvez pas définir de conditions pour la règle par défaut. Si aucune des conditions pour les règles définies n'est remplie, l'action relative à la règle par défaut est effectuée.

Pour implémenter le routage basé sur le chemin sur un Application Load Balancer, vous devez configurer des règles d'écouteur. Configurez une règle pour chaque modèle de chemin en fonction de l'emplacement où vous souhaitez acheminer vos requêtes.

Exemple de règles d’écouteur

L'exemple suivant illustre les règles d'écouteur pour les services A et B :

Règle d’écouteur 1 : Si le chemin de votre URL de requête contient la chaîne /svcA, transférez la requête vers target-group-A. Vous effectuez cette opération parce que Target-Group-A inclut le service A qui exécute une application sur le chemin donné.

Règle d’écouteur 2 : Si le chemin de votre URL de requête contient la chaîne /svcB, transférez cette requête vers target-group-B. Vous effectuez cette opération parce que Target-Group-B inclut le service B qui exécute une application sur le chemin donné.

Pour mettre à jour les règles d'écouteur avec des conditions et des actions, procédez comme suit :

  1. Ouvrez la console Amazon EC2.
  2. Dans le volet de navigation, sous Équilibrage de charge, choisissez Équilibreurs de charge.
  3. Choisissez l'équilibreur de charge, puis Écouteurs et règles.
  4. Pour mettre à jour l'écouteur, choisissez l'onglet Écouteurs et règles, puis sélectionnez le texte dans la colonne Protocol:Port pour ouvrir la page détaillée de l’écouteur.
  5. Dans la section Règles d’écouteur de l’onglet Règles, sélectionnez la règle que vous souhaitez modifier.
  6. Sélectionnez Actions, puis Modifier la règle.
  7. Sélectionnez Ajouter des règles.
  8. Modifiez le nom et les identifications si nécessaire. Pour ajouter des identifications supplémentaires, sélectionnez Ajouter des identifications supplémentaires.
  9. Sélectionnez Suivant.
  10. Pour ajouter une règle basée sur le chemin pour /svcA, sélectionnez Ajouter une condition, Chemin, puis entrez le modèle de chemin /svcA. Sélectionnez Confirmer.
  11. Sélectionnez Suivant.
  12. Pour ajouter une action de transfert, choisissez Actions de routage comme Transférer vers les groupes cibles, puis, dans le menu, choisissez le groupe cible target-group-A.
  13. Sélectionnez Suivant.
  14. Choisissez la priorité appropriée.
  15. Vérifiez vos informations et les configurations mises à jour pour votre règle. Lorsque vous êtes satisfait de vos choix, sélectionnez Enregistrer les modifications.

Répétez les étapes précédentes pour le chemin /svcB avec les modifications suivantes :

  • Pour l'étape 10, entrez le modèle de chemin /svcB.
  • Pour l'étape 12, choisissez le groupe cible target-group-B f.

Pour en savoir plus, consultez la section Règles d’écouteur pour vos Application Load Balancers.

Remarque : Les règles de routage basées sur le chemin recherchent une correspondance exacte. Si votre application exige que les requêtes soient acheminées plus loin sur ces chemins, incluez un caractère générique dans la condition de la règle de routage basée sur le chemin. Utilisez des modèles de chemin similaires à /svcA* ou /svcB* pour tenir compte de tous les documents figurant sur ces chemins lors du routage des requêtes.

Tester le routage basé sur le chemin

Pour tester le routage basé sur le chemin, copiez le nom DNS de votre Application Load Balancer dans un navigateur Web, puis ajoutez le chemin URL /svcA ou /svcB.

Supposons, par exemple, que votre Application Load Balancer ait pour nom DNS alb-demo-1234567890.us-west-2.elb.amazonaws.com.

  • http://alb-demo-1234567890.us-west-2.elb.amazonaws.com/svcA doit renvoyer le service A.
  • http://alb-demo-1234567890.us-west-2.elb.amazonaws.com/svcB doit renvoyer le service B.

Lorsque l'écouteur de l’Application Load Balancer reçoit la requête, il la transmet au groupe cible approprié en fonction de la condition du chemin.

Si vous utilisez le routage basé sur le chemin, vous pouvez héberger plusieurs microservices derrière un seul Application Load Balancer. Vous pouvez acheminer le trafic vers chaque service en fonction des règles d'écouteur et des groupes cibles. Vous pouvez également acheminer le trafic en fonction de conditions telles que l'en-tête d'hôte, l'en-tête user-agent ou les valeurs des paramètres de requête. Pour plus d'informations, consultez la section Routage avancé des requêtes pour les Application Load Balancers AWS.

Informations connexes

Comment résoudre les problèmes liés à l’échec de la surveillance de l’état des Application Load Balancers ?

Résoudre les problèmes liés à vos Application Load Balancers