Configuration d'un équilibreur de charge Application Load Balancer partagé - AWS Elastic Beanstalk

Configuration d'un équilibreur de charge Application Load Balancer partagé

Lorsque vous activez l'équilibrage de charge, votre environnement AWS Elastic Beanstalk est équipé d'un équilibreur de charge Elastic Load Balancing qui permet de répartir le trafic entre les instances de votre environnement. Elastic Load Balancing prend en charge plusieurs types d'équilibreur de charge. Pour en savoir plus, consultez le Guide de l'utilisateur Elastic Load Balancing. Elastic Beanstalk peut créer un équilibreur de charge pour vous, ou vous permettre de spécifier un équilibreur de charge partagé que vous avez créé.

Cette rubrique décrit la configuration d'un équilibreur de charge Application Load Balancer partagé que vous créez et associez à votre environnement. Voir aussi Configuration d'un Application Load Balancer. Pour de plus amples informations sur la configuration de tous les types d'équilibreur de charge pris en charge par Elastic Beanstalk, veuillez consulter Équilibreur de charge pour votre environnement Elastic Beanstalk.

Note

Vous pouvez choisir le type d'équilibreur de charge que votre environnement utilise uniquement lors de la création de l'environnement. Vous pouvez modifier les paramètres pour gérer le comportement de l'équilibreur de charge de votre environnement d'exécution, mais pas en changer le type. Vous ne pouvez pas non plus passer d'un équilibreur de charge dédié à un équilibreur de charge partagé ou inversement.

Introduction

Un équilibreur de charge partagé est un équilibreur de charge que vous créez et gérez vous-même à l'aide du service Amazon Elastic Compute Cloud (Amazon EC2), puis que vous utilisez dans plusieurs environnements Elastic Beanstalk.

Lorsque vous créez un environnement de mise à l'échelle à charge équilibrée et que vous choisissez d'utiliser un équilibreur de charge Application Load Balancer, Elastic Beanstalk crée un équilibreur de charge dédié à votre environnement par défaut. Pour comprendre ce qu'est un équilibreur de charge Application Load Balancer et comment il fonctionne dans un environnement Elastic Beanstalk, veuillez consulter l'introduction à la configuration d'un équilibreur de charge Application Load Balancer pour Elastic Beanstalk.

Dans certaines situations, vous pouvez économiser le coût d'avoir plusieurs équilibreurs de charge dédiés. Cela peut être utile lorsque vous avez plusieurs environnements, par exemple, si votre application est une suite de microservices au lieu d'un service monolithique. Dans de tels cas, vous pouvez choisir d'utiliser un équilibreur de charge partagé.

Pour utiliser un équilibreur de charge partagé, commencez par le créer dans Amazon EC2, puis ajoutez un ou plusieurs écouteurs. Lors de la création d'un environnement Elastic Beanstalk, vous fournissez ensuite l'équilibreur de charge et choisissez un port d'écoute. Elastic Beanstalk associe l'écouteur au processus par défaut dans votre environnement. Vous pouvez ajouter des règles d'écouteur personnalisées pour acheminer le trafic à partir d'en-têtes et de chemins d'accès d'hôte spécifiques vers d'autres processus d'environnement.

Elastic Beanstalk ajoute une balise à l'équilibreur de charge partagé. Le nom de la balise est elasticbeanstalk:shared-elb-environment-count, et sa valeur est le nombre d'environnements partageant cet équilibreur de charge.

L'utilisation d'un équilibreur de charge partagé est différente de l'utilisation d'un équilibreur dédié de plusieurs façons.

Regarding Équilibreur de charge Application Load Balancer dédié Équilibreur de charge Application Load Balancer partagé

Gestion

Elastic Beanstalk crée et gère les écouteurs, les règles d'écoute et les processus (groupes cibles) de l'équilibreur de charge. Elastic Beanstalk les supprime également lorsque vous arrêtez votre environnement. Elastic Beanstalk peut définir la capture des journaux d'accès de l'équilibreur de charge, si vous choisissez cette option.

Vous créez et gérez l'équilibreur de charge et les écouteurs en dehors d'Elastic Beanstalk. Elastic Beanstalk crée et gère une règle par défaut et un processus par défaut, et vous pouvez ajouter des règles et des processus. Elastic Beanstalk supprime les règles et processus d'écoute ajoutés lors de la création de l'environnement.

Règles d'un écouteur

Elastic Beanstalk crée une règle par défaut pour chaque écouteur, pour acheminer l'ensemble du trafic vers le processus par défaut de l'écouteur.

Elastic Beanstalk associe une règle par défaut uniquement à un écouteur de port 80, le cas échéant. Si vous choisissez un autre port d'écoute par défaut, vous devez lui associer la règle par défaut (la console Elastic Beanstalk et l'interface de ligne de commande EB le font pour vous).

Pour résoudre les conflits de condition de règle d'écoute entre les environnements partageant l'équilibreur de charge, Elastic Beanstalk ajoute le CNAME de l'environnement à la règle d'écoute en tant que condition d'en-tête d'hôte.

Elastic Beanstalk traite les paramètres de priorité de règle comme relatifs dans les environnements partageant l'équilibreur de charge et les mappe aux priorités absolues lors de la création.

Groupes de sécurité

Elastic Beanstalk crée un groupe de sécurité par défaut et l'attache à l'équilibreur de charge.

Vous pouvez configurer un ou plusieurs groupes de sécurité à utiliser pour l'équilibreur de charge. Si vous ne le faites pas, Elastic Beanstalk vérifie si un groupe de sécurité existant géré par Elastic Beanstalk est déjà attaché à l'équilibreur de charge. Si ce n'est pas le cas, Elastic Beanstalk crée un groupe de sécurité et l'attache à l'équilibreur de charge. Elastic Beanstalk supprime ce groupe de sécurité lorsque le dernier environnement partageant l'équilibreur de charge s'arrête.

Mises à jour

Vous pouvez mettre à jour votre équilibreur de charge Application Load Balancer après la création de l'environnement. Vous pouvez modifier les écouteurs, les règles des écouteurs et les processus. Vous pouvez configurer la capture du journal d'accès de l'équilibreur de charge.

Vous ne pouvez pas utiliser Elastic Beanstalk pour configurer la capture du journal d'accès dans votre équilibreur de charge Application Load Balancer, et vous ne pouvez pas mettre à jour les écouteurs et les règles d'écoute après la création de l'environnement. Vous ne pouvez mettre à jour que les processus (groupes cibles). Pour configurer la capture du journal d'accès et mettre à jour les écouteurs et les règles d'écoute, utilisez Amazon EC2.

Configuration d'un équilibreur de charge Application Load Balancer partagé à l'aide de la console Elastic Beanstalk

Vous pouvez utiliser la console Elastic Beanstalk pour configurer un équilibreur de charge Application Load Balancer partagé lors de la création de l'environnement. Vous pouvez sélectionner l'un des équilibreurs de charge partageables de votre compte à utiliser dans l'environnement, sélectionner le port de l'écouteur par défaut et configurer d'autres processus et règles de l'écouteur.

Vous ne pouvez pas modifier la configuration de votre équilibreur de charge Application Load Balancer partagé dans la console Application Load Balancer une fois votre environnement créé. Pour configurer les écouteurs, les règles d'écoute, les processus (groupes cibles) et la capture du journal d'accès, utilisez Amazon EC2.

Pour configurer un équilibreur de charge Application Load Balancer dans la console Elastic Beanstalk lors de la création de l'environnement

  1. Ouvrez la console Elastic Beanstalk et, dans la liste Regions (Régions) sélectionnez votre région AWS.

  2. Dans le panneau de navigation, choisissez Environments (Environnements).

  3. Choisissez Create a new environment (Créer un nouvel environnement) pour commencer à créer votre environnement.

  4. Sur la page principale de l'assistant, avant de choisir Créer un environnement, choisissez Configurer plus d'options.

  5. Choisissez le préréglage de configuration Haute disponibilité.

    Sinon, dans la catégorie de configuration Capacité, configurez un type d'environnement avec un Équilibrage de charge. Pour plus d'informations, consultez Capacité.

  6. Dans la catégorie de configuration Load balancer (Équilibreur de charge), choisissez Edit (Modifier).

  7. Sélectionnez l'option Application Load Balancer (Équilibreur de charge d'application), si elle n'est pas déjà sélectionnée, puis sélectionnez l'option Shared (Partagé).

    
            Page de configuration de l'équilibreur de charge Elastic Load Balancing – Choix du type d'équilibreur de charge
  8. Effectuez toutes les modifications de configuration de l'équilibreur de charge Application Load Balancer partagé exigées par votre environnement.

  9. Choisissez Enregistrer, puis effectuez toutes les autres modifications de configuration exigées par votre environnement.

  10. Choisissez Create environment.

Déclencheurs des équilibreurs de charge Application Load Balancer partagé

Équilibreur de charge Application Load Balancer partagé

Utilisez cette section pour choisir un équilibreur de charge Application Load Balancer partagé pour votre environnement et configurer le routage du trafic par défaut.

Avant de pouvoir configurer un équilibreur de charge Application Load Balancer partagé ici, utilisez Amazon EC2 pour définir au moins un équilibreur de charge Application Load Balancer pour le partage, avec au moins un écouteur, dans votre compte. Si vous ne l'avez pas déjà fait, vous pouvez choisir Manage load balancers (Gérer les équilibreurs de charge). Elastic Beanstalk ouvre la console Amazon EC2 dans un nouvel onglet de navigateur.

Une fois que vous avez terminé de configurer des équilibreurs de charge partagés en dehors d'Elastic Beanstalk, configurez les paramètres suivants dans cette section de la console :

  • Load balancer ARN (ARN de l'équilibreur de charge) – Équilibreur de charge partagé à utiliser dans cet environnement. Sélectionnez dans une liste d'équilibreurs de charge ou entrez un nom de ressource Amazon (ARN) d'équilibrage de charge.

  • Default listener port (Port d'écoute par défaut) – Port du processus d'écoute que l'équilibreur de charge partagé écoute. Faites votre choix dans une liste de ports d'écouteur existants. Le trafic de cet écouteur avec le CNAME de l'environnement dans l'en-tête hôte est routé vers un processus par défaut dans cet environnement.


          Configuration de l'équilibreur de charge Application Load Balancer - Choix de l'équilibreur de charge partagé

Processus

Utilisez cette liste pour spécifier les processus de votre équilibreur de charge. Un processus est une cible pour le routage du trafic par les écouteurs. Initialement, la liste affiche le processus par défaut, qui reçoit le trafic de l'écouteur par défaut.


          Configuration de l'équilibreur de charge Application Load Balancer - Liste des processus

Pour configurer un processus existant

  1. Cochez la case en regard de son entrée de table, puis choisissez Actions, Modifier.

  2. Utilisez la boîte de dialogue du processus Environnement pour modifier les paramètres, puis choisissez Enregistrer.

Pour ajouter un processus

  1. Choisissez Ajouter un processus.

  2. Dans la boîte de dialogue Processus d'environnement, configurez les paramètres souhaités, puis choisissez Ajouter.

Paramètres de la boîte de dialogue de processus d'environnement de l'équilibreur de charge Application Load Balancer

Définition

Utilisez ces paramètres pour définir le processus : son nom et le port et le protocole sur lesquels il écoute les requêtes.


            Paramètres de processus d'équilibreur de charge Application Load Balancer pour le nom, le port et le protocole

Vérification de l'état

Utilisez les paramètres suivants pour configurer les processus des vérifications de l'état :

  • HTTP code (Code HTTP) – Code d'état HTTP désignant un processus sain.

  • Path (Chemin) – Chemin d'accès de la demande de vérification de l'état du processus.

  • Timeout (Délai) – Durée, en secondes, d'attente d'une réponse de la vérification de l'état.

  • Interval (Intervalle) – Durée, en secondes, entre les vérifications de l'état d'une instance. L'intervalle doit être supérieur au délai.

  • Unhealthy threshold (Seuil de défectuosité), Healthy threshold (Seuil de bonne santé) – Nombre de vérifications de l'état qui doivent échouer ou réussir avant qu'Elastic Load Balancing modifie l'état de santé d'une instance.

  • Deregistration delay (Retard d'annulation d'enregistrement) – Délai, en secondes, d'attente de la fin des requêtes actives avant l'annulation de l'enregistrement d'une instance.


            Paramètres de processus d'équilibreur de charge Application Load Balancer pour une vérification de l'état
Note

La vérification de l'état Elastic Load Balancing n'a pas d'incidence sur le comportement de vérification de l'état du groupe Auto Scaling d'un environnement. Les instances dont la vérification de l'état Elastic Load Balancing échoue ne sont pas automatiquement remplacées par Amazon EC2 Auto Scaling, sauf si vous configurez manuellement Amazon EC2 Auto Scaling pour le faire. Pour de plus amples informations, veuillez consulter Paramètre de vérification de l'état Auto Scaling.

Pour de plus amples informations sur les vérifications de l'état et leur influence sur l'état global de votre environnement, veuillez consulter Création de rapports d'intégrité de base.

Sessions

Activez ou désactivez la case Stratégie de permanence activée pour activer ou désactiver les sessions permanentes. Utilisez l'option Durée du cookie pour configurer la durée d'une session permanente, pouvant aller jusqu'à 604800 secondes.


            Paramètres de processus d'équilibreur de charge Application Load Balancer pour la permanence de session

Règles

Utilisez cette liste pour spécifier des règles d'écouteur personnalisées pour votre équilibreur de charge. Une règle mappe les requêtes que l'écouteur reçoit sur un modèle de chemin spécifique à un processus cible. Chaque écouteur peut avoir plusieurs règles, acheminer les demandes sur différents chemins vers différents processus sur des instances des différents environnements partageant l'écouteur.

Les règles ont des priorités numériques qui déterminent la priorité selon laquelle elles sont appliquées aux demandes entrantes. Elastic Beanstalk ajoute une règle par défaut qui achemine l'ensemble du trafic de l'écouteur par défaut vers le processus par défaut de votre nouvel environnement. La priorité de la règle par défaut est la plus basse ; elle n'est appliquée que si aucune autre règle pour le même écouteur ne correspond à la requête entrante. Initialement, si vous n'avez pas ajouté de règles personnalisées, la liste est vide. La règle par défaut n'est pas affichée.


          Configuration de l'équilibreur de charge Application Load Balancer - Liste des règles

Vous pouvez modifier les paramètres d'une règle existante ou ajouter une nouvelle règle. Pour commencer la modification d'une règle de la liste ou l'ajout d'une règle, utilisez la procédure définie pour la liste d'écouteurs. La boîte de dialogue Règle d'écouteur s'ouvre, avec les paramètres suivants :

  • Name (Nom) – Nom de la règle.

  • Listener port (Port d'écoute) – Port d'écoute auquel la règle s'applique.

  • Priority (Priorité) – Priorité de la règle. Une valeur de priorité plus faible a une priorité plus élevée. Les priorités des règles d'un écouteur doivent être uniques. Elastic Beanstalk traite les priorités des règles comme relatives dans les environnements de partage et les mappe aux priorités absolues lors de la création.

  • Match conditions (Conditions de correspondance) – Liste des conditions d'URL de requête auxquelles la règle s'applique. Il existe deux types de conditions : HostHeader (la partie domaine de l'URL) et PathPattern (la partie chemin de l'URL). Une condition est réservée au sous-domaine d'environnement et vous pouvez ajouter jusqu'à quatre conditions. Chaque valeur de condition a jusqu'à 128 caractères et peut inclure des caractères génériques.

  • Process (Processus) – Processus auquel l'équilibreur de charge achemine les demandes qui correspondent à la règle.


          Configuration de l'équilibreur de charge Application Load Balancer - Liste des règles

Exemple : utilisation d'un équilibreur de charge Application Load Balancer partagé pour une application sécurisée basée sur des microservices

Dans cet exemple, votre application se compose de plusieurs microservices, chacun implémenté en tant qu'environnement Elastic Beanstalk. En outre, vous avez besoin d'un chiffrement du trafic de bout en bout. Nous allons démontrer l'un des environnements de microservices, qui a un processus principal pour les demandes des utilisateurs et un processus distinct pour le traitement des demandes administratives.

Pour répondre à ces exigences, utilisez Amazon EC2 pour créer un équilibreur de charge Application Load Balancer que vous partagerez entre vos microservices. Ajoutez un écouteur sécurisé sur le port 443 et le protocole HTTPS. Ajoutez ensuite plusieurs certificats SSL à l'écouteur, un par domaine de microservice. Pour de plus amples informations sur la création de l'équilibreur de charge Application Load Balancer et de l'écouteur sécurisé, veuillez consulter Création d'un équilibreur de charge Application Load Balancer et Création d'un écouteur HTTPS pour votre équilibreur de charge Application Load Balancer dans le Guide de l'utilisateur des équilibreurs de charge Application Load Balancer.

Dans Elastic Beanstalk, configurez chaque environnement de microservice pour utiliser l'équilibreur de charge Application Load Balancer partagé et définissez le port de l'écouteur par défaut sur 443. Dans le cas de l'environnement présenté ici, indiquez que le processus par défaut écoute le port 443 sur HTTPS, et ajoutez un processus et une règle d'écouteur pour le trafic admin sur un chemin différent.

Pour configurer l'équilibreur de charge partagé de cet exemple

  1. Dans la section Shared Application Load Balancer (Équilibreur de charge Application Load Balancer partagé), sélectionnez votre équilibreur de charge, puis, pour Default listener port (Port d'écoute par défaut), sélectionnez 443. Le port de l'écouteur doit déjà être sélectionné s'il s'agit du seul écouteur que possède l'équilibreur de charge.

    
            Configuration d'un équilibreur de charge Application Load Balancer – Ajout d'un écouteur sécurisé
  2. Configurez le processus par défaut sur HTTPS. Sélectionnez le processus par défaut, puis, pour Actions, choisissez Edit (Modifier). Pour Port, entrez 443. Pour Protocole, sélectionnez HTTPS.

    
            Exemple de configuration d'un équilibreur de charge Application Load Balancer - Configuration du processus par défaut sur HTTPS
  3. Ajoutez un processus d'administration. Pour Nom, entrez admin. Pour Port, entrez 443. Pour Protocole, sélectionnez HTTPS. Sous Vérification de l'état, pour Chemin, tapez /admin.

    
            Exemple de configuration d'un équilibreur de charge Application Load Balancer - Ajout d'un processus d'administration
  4. Ajoutez une règle pour le trafic d'administration. Pour Nom, entrez admin. Pour Port d'écouteur, entrez 443. Pour les conditions Correspondance, ajoutez un PathPattern avec la valeur /admin/*. Pour Processus, sélectionnez admin.

    
            Exemple de configuration d'un équilibreur de charge Application Load Balancer - Ajout d'une règle d'administration

Configuration d'un équilibreur de charge Application Load Balancer partagé à l'aide de l'interface de ligne de commande EB

L'interface de ligne de commande EB vous invite à choisir un type d'équilibreur de charge lorsque vous exécutez la commande eb create. Si vous choisissez application (valeur par défaut) et si votre compte dispose d'au moins un équilibreur de charge Application Load Balancer partageable, l'interface de ligne de commande EB vous demande également si vous souhaitez utiliser un équilibreur de charge Application Load Balancer partagé. Si vous répondez y, vous êtes également invité à sélectionner l'équilibreur de charge et le port par défaut.

$ eb create Enter Environment Name (default is my-app): test-env Enter DNS CNAME prefix (default is my-app): test-env-DLW24ED23SF Select a load balancer type 1) classic 2) application 3) network (default is 2): Your account has one or more sharable load balancers. Would you like your new environment to use a shared load balancer?(y/N) y Select a shared load balancer 1)MySharedALB1 - arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/MySharedALB1/6d69caa75b15d46e 2)MySharedALB2 - arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/MySharedALB2/e574ea4c37ad2ec8 (default is 1): 2 Select a listener port for your shared load balancer 1) 80 2) 100 3) 443 (default is 1): 3

Vous pouvez également spécifier un équilibreur de charge partagé à l'aide des options de commande.

$ eb create test-env --elb-type application --shared-lb MySharedALB2 --shared-lb-port 443

Espaces de noms d'équilibreurs de charge Application Load Balancer partagés

Vous trouverez les paramètres liés aux équilibreurs Application Load Balancers partagés dans les espaces de noms suivants :

  • aws:elasticbeanstalk:environment – Choisissez le type d'équilibreur de charge pour l'environnement et indiquez à Elastic Beanstalk que vous allez utiliser un équilibreur de charge partagé.

    Vous ne pouvez pas définir ces deux options dans les fichiers de configuration (.Ebextensions).

  • aws:elbv2:loadbalancer – Configurez l'ARN et les groupes de sécurité partagés de l'équilibreur de charge Application Load Balancer.

  • aws:elbv2:listener – Associez les écouteurs de l'équilibreur de charge Application Load Balancer partagé avec l'environnement en listant les règles d'écoute.

  • aws:elbv2:listenerrule – Configurez les règles d'écoute qui acheminent le trafic vers différents processus, selon le chemin de la demande. Les règles sont spécifiques aux équilibreurs de charge Application Load Balancer, qu'ils soient dédiés ou partagés.

  • aws:elasticbeanstalk:environment:process – Configurez les vérifications de l'état et spécifiez le port et le protocole des processus qui s'exécutent sur les instances de votre environnement.

Exemple .ebextensions/application-load-balancer-shared.config

Pour commencer avec un équilibreur de charge Application Load Balancer partagé, utilisez la console Elastic Beanstalk, l'interface de ligne de commande EB ou l'API pour définir le type d'équilibreur de charge sur application et choisissez d'utiliser un équilibreur de charge partagé. Utilisez un fichier de configuration pour configurer l'équilibreur de charge partagé.

option_settings: aws:elbv2:loadbalancer: SharedLoadBalancer: arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/MySharedALB2/e574ea4c37ad2ec8
Note

Vous ne pouvez configurer cette option que lors de la création de l'environnement.

Exemple .ebextensions/alb-shared-secure-listener.config

Le fichier de configuration suivant sélectionne un écouteur sécurisé par défaut sur le port 443 pour l'équilibreur de charge partagé et définit le processus par défaut pour écouter le port 443.

option_settings: aws:elbv2:loadbalancer: SharedLoadBalancer: arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/MySharedALB2/e574ea4c37ad2ec8 aws:elbv2:listener:443: rules: default aws:elasticbeanstalk:environment:process:default: Port: '443' Protocol: HTTPS

Exemple .ebextensions/alb-shared-admin-rule.config

Le fichier de configuration suivant s'appuie sur l'exemple précédent et ajoute une règle qui achemine le trafic avec un chemin de requête de /admin vers un processus nommé admin qui écoute sur le port 4443.

option_settings: aws:elbv2:loadbalancer: SharedLoadBalancer: arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/MySharedALB2/e574ea4c37ad2ec8 aws:elbv2:listener:443: rules: default,admin aws:elasticbeanstalk:environment:process:default: Port: '443' Protocol: HTTPS aws:elasticbeanstalk:environment:process:admin: HealthCheckPath: /admin Port: '4443' Protocol: HTTPS aws:elbv2:listenerrule:admin: PathPatterns: /admin/* Priority: 1 Process: admin