Configuration d'un équilibreur de charge classique - AWS Elastic Beanstalk

Configuration d'un équilibreur de charge classique

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 Classic Load Balancer créé par Elastic Beanstalk et dédié à votre environnement. 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. Ultérieurement, vous pourrez 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.

Introduction

Un équilibreur de charge Classic Load Balancer est l'équilibreur de charge Elastic Load Balancing de génération précédente. Il prend en charge l'acheminement du trafic des demandes HTTP, HTTPS ou TCP vers différents ports sur des instances d'environnement.

Lorsque votre environnement utilise un équilibreur de charge Classic Load Balancer, Elastic Beanstalk le configure par défaut pour écouter le trafic HTTP sur le port 80 et le transférer aux instances du même port. Pour prendre en charge les connexions sécurisées, vous pouvez configurer votre équilibreur de charge avec un écouteur sur le port 443 et un certificat TLS.

L'équilibreur de charge utilise une vérification de l'état pour déterminer si les instances Amazon EC2 exécutant votre application sont saines. La vérification de l'état envoie une demande à une URL spécifiée selon un intervalle défini. Si l'URL renvoie un message d'erreur ou ne répond pas dans un délai spécifique, la vérification de l'état échoue.

Si votre application enregistre de meilleures performances en traitant plusieurs demandes à partir du même client sur un seul serveur, vous pouvez configurer votre équilibreur de charge pour utiliser des sessions permanentes. Avec les sessions permanentes, l'équilibreur de charge ajoute un cookie aux réponses HTTP, qui identifie l'instance Amazon EC2 ayant traité la demande. Lorsqu'une demande ultérieure est reçue du même client, l'équilibreur de charge utilise le cookie pour envoyer la demande à la même instance.

Avec l'équilibrage de charge entre zones, chaque nœud de l'équilibreur de charge pour votre équilibreur de charge Classic Load Balancer répartit les demandes uniformément entre les instances enregistrées dans toutes les zones de disponibilité activées. Si l'équilibrage de charge entre zones est désactivé, chaque nœud de l'équilibreur de charge répartit les demandes uniformément entre les instances enregistrées dans sa zone de disponibilité uniquement.

Lorsqu'une instance est supprimée de l'équilibreur de charge parce qu'elle n'est plus saine ou parce que la capacité de l'environnement est diminuée, Connection Draining laisse à l'instance le temps de terminer les demandes avant de fermer la connexion entre l'instance et l'équilibreur de charge. Vous pouvez modifier le laps de temps accordé aux instances pour l'envoi d'une réponse ou désactiver totalement le drainage de la connexion.

Note

Connection Draining est activé par défaut lorsque vous créez un environnement via la console Elastic Beanstalk ou l'interface de ligne de commande EB. Pour les autres clients, vous pouvez l'activer via les options de configuration.

Vous pouvez utiliser les paramètres avancés de l'équilibreur de charge pour configurer des écouteurs sur des ports arbitraires, modifier des paramètres de session permanente supplémentaires et configurer l'équilibreur de charge pour vous connecter en toute sécurité aux instances EC2. Ces paramètres sont disponibles via les options de configuration que vous pouvez définir avec des fichiers de configuration dans votre code source, ou directement sur un environnement via l'API Elastic Beanstalk. Un grand nombre de ces paramètres sont également disponibles dans la console Elastic Beanstalk. Vous pouvez également configurer un équilibreur de charge pour charger les journaux d'accès dans Amazon S3.

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

Vous pouvez utiliser la console Elastic Beanstalk pour configurer le port, le certificat HTTPS et d'autres paramètres d'un équilibreur Classic Load Balancer lors de la création de l'environnement ou plus tard, lorsque votre environnement est en cours d'exécution.

Pour configurer un équilibreur de charge Classic 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 Classic Load Balancer si elle n'est pas déjà sélectionnée.

    
            Page de configuration de l'équilibreur de charge – choix du type d'équilibreur de charge
  8. Effectuez toutes les modifications de configuration de l'équilibreur de charge Classic Load Balancer 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.

Pour configurer un équilibreur de charge Classic Load Balancer d'un environnement en cours d'exécution dans la console Elastic Beanstalk

  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), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans le panneau de navigation, choisissez Configuration.

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

    Note

    Si la catégorie de configuration Load balancer (Équilibreur de charge) ne dispose pas du bouton Edit (Modifier), cela signifie que votre environnement ne dispose pas d'un équilibreur de charge. Pour apprendre à en configurer un, consultez Changement de type d'environnement.

  5. Effectuez les modifications de configuration de l'équilibreur de charge Classic Load Balancer exigées par votre environnement.

  6. Choisissez Apply.

Paramètres de l'équilibreur de charge Classic Load Balancer

Écouteurs

Utilisez cette liste pour spécifier plusieurs écouteurs pour votre équilibreur de charge. Chaque écouteur achemine le trafic client entrant sur un port spécifié à l'aide d'un protocole spécifié vers vos instances. Au départ, la liste affiche l'écouteur par défaut, lequel achemine le trafic HTTP entrant sur le port 80 vers les serveurs d'instance de votre environnement qui écoutent le trafic HTTP sur le port 80.


          Configuration d'un équilibreur de charge Classic Load Balancer – Modification des écouteurs

Pour configurer un écouteur existant

  1. Cochez la case en regard de son entrée de table, puis choisissez Actions et sélectionnez l'action de votre choix.

  2. Si vous choisissez Modifier, utilisez la boîte de dialogue Écouteur Classic Load Balancer pour modifier les paramètres, puis choisissez Enregistrer.

Par exemple, vous pouvez modifier l'écouteur par défaut et remplacer la valeur du paramètre Protocole, HTTP, par TCP si vous souhaitez que l'équilibreur de charge transfère la demande en l'état. Ce paramètre évite que l'équilibreur de charge réécrive les en-têtes (y compris X-Forwarded-For). La technique ne fonctionne pas avec les sessions permanentes.


          Configuration de l'équilibreur de charge Classic Load Balancer – Remplacement du protocole d'écouteur par défaut par TCP

Pour ajouter un écouteur

  1. Choisissez Ajouter un écouteur.

  2. Dans la boîte de dialogue Écouteur Classic Load Balancer, configurez les paramètres de votre choix, puis sélectionnez Ajouter.

L'ajout d'un écouteur sécurisé est une cas d'utilisation courant. L'exemple présenté dans l'image qui suit illustre l'ajout d'un écouteur pour le trafic HTTPS sur le port 443. Cet écouteur achemine le trafic entrant vers les serveurs d'instances de l'environnement qui écoutent le trafic HTTPS sur le port 443.

Pour pouvoir configurer un écouteur HTTPS, assurez-vous que vous disposez d'un certificat SSL valide. Effectuez l'une des actions suivantes :

  • Si AWS Certificate Manager (ACM) est disponible dans votre région AWS, créez ou importez un certificat à l'aide d'ACM. Pour de plus amples informations sur la demande d'un certificat ACM, veuillez consulter Demande de certificat dans le Guide de l'utilisateur AWS Certificate Manager. Pour de plus amples informations sur l'importation de certificats tiers dans ACM, veuillez consulter Importation de certificats dans le Guide de l'utilisateur AWS Certificate Manager.

  • Si ACM n'est pas disponible dans votre région AWS, chargez votre clé et votre certificat existants dans IAM. Pour de plus amples informations sur la création et le chargement des certificats dans IAM, veuillez consulter Utilisation des certificats de serveur dans le Guide de l'utilisateur IAM.

Pour de plus amples informations sur la configuration HTTPS et l'utilisation des certificats dans Elastic Beanstalk, veuillez consulter Configuration de HTTPS pour votre environnement Elastic Beanstalk.

Pour Certificat SSL, choisissez l'ARN de votre certificat SSL. Par exemple, arn:aws:iam::123456789012:server-certificate/abc/certs/build ou arn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678.


          Configuration d'un équilibreur de charge Classic Load Balancer – Ajout d'un écouteur sécurisé

Pour de plus amples informations sur la configuration HTTPS et l'utilisation des certificats dans Elastic Beanstalk, veuillez consulter Configuration de HTTPS pour votre environnement Elastic Beanstalk.

Sessions

Activez ou désactivez la case Permanence de la session 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'à 1000000 secondes. Dans la liste Load balancer ports (Ports de l'équilibreur de charge, sélectionnez les ports écouteurs auxquels la stratégie par défaut (AWSEB-ELB-StickinessPolicy) s'applique.


          Paramètres de l'équilibreur de charge Classic Load Balancer pour la permanence et la durée des sessions

Equilibrage de charge entre zones

Cochez ou décochez Équilibrage de charge entre plusieurs zones de disponibilité activé pour activer ou désactiver l'équilibrage de charge entre zones.


          Paramètres de l'équilibreur de charge Classic Load Balancer pour l'équilibrage de charge entre zones

Drainage de la connexion

Activez ou désactivez la case Drainage de la session activée pour activer ou désactiver le drainage de la connexion. Définissez le délai de drainage, pouvant aller jusqu'à 3600 secondes.


          Paramètres de l'équilibreur de charge Classic Load Balancer pour Connection Draining et le délai de drainage

Vérification de l'état

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

  • Health check path (Chemin de vérification de l'état) – Chemin d'accès vers lequel l'équilibreur de charge envoie les demandes de vérification de l'état. Si ce chemin n'est pas défini, l'équilibreur de charge tente d'établir une connexion TCP sur le port 80 pour vérifier l'intégrité.

  • 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.


          Paramètres de l'équilibreur de charge Classic Load Balancer pour la 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.

Configuration d'un équilibreur de charge Classic Load Balancer à 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.

$ 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 1):

Appuyez sur Entrée pour sélectionner l'option classic.

Vous pouvez également spécifier un type d'équilibreur de charge à l'aide de l'option --elb-type.

$ eb create test-env --elb-type classic

Espaces de noms pour la configuration d'un équilibreur de charge Classic Load Balancer

Vous trouverez les paramètres liés aux équilibreurs Classic Load Balancer dans les espaces de noms suivants :

  • aws:elb:healthcheck – Configurez les seuils, l'intervalle de vérification et le délai d'attente pour les vérifications de l'état de l'équilibreur de charge.

  • aws:elasticbeanstalk:application – Configurez l'URL de la vérification de l'état.

  • aws:elb:loadbalancer – Activez l'équilibrage de charge entre zones. Affectez des groupes de sécurité à l'équilibreur de charge et remplacez le groupe de sécurité par défaut créé par Elastic Beanstalk. Cet espace de noms inclut également des options obsolètes pour la configuration des écouteurs standard et sécurisés, qui ont été remplacées par les options de l'espace de noms aws:elb:listener.

  • aws:elb:listener – Configurez l'écouteur par défaut sur le port 80, un écouteur sécurisé sur le port 443 ou des écouteurs supplémentaires pour n'importe quel protocole sur n'importe quel port. Si vous spécifiez l'espace de noms aws:elb:listener, les paramètres s'appliquent à l'écouteur par défaut sur le port 80. Si vous spécifiez un port (par exemple, aws:elb:listener:443), un écouteur est configuré sur ce port.

  • aws:elb:policies – Configurez des paramètres supplémentaires pour votre équilibreur de charge. Utilisez les options de cet espace de noms pour configurer des écouteurs sur des ports arbitraires, modifier des paramètres de session permanente supplémentaires et configurer l'équilibreur de charge pour vous connecter en toute sécurité aux instances Amazon EC2.

L'interface de ligne de commande EB et la console Elastic Beanstalk appliquent les valeurs recommandées pour les options précédentes. Vous devez supprimer ces paramètres si vous voulez utiliser des fichiers de configuration pour configurer la même chose. Pour de plus amples informations, veuillez consulter Valeurs recommandées.

Exemple .ebextensions/loadbalancer-terminatehttps.config

L'exemple de fichier de configuration suivant crée un écouteur HTTPS sur le port 443, affecte un certificat que l'équilibreur de charge utilise pour mettre la connexion sécurisée hors service, et désactive l'écouteur par défaut sur le port 80. L'équilibreur de charge transmet les demandes déchiffrées aux instances EC2 de votre environnement sur le port HTTP:80.

option_settings: aws:elb:listener:443: ListenerProtocol: HTTPS SSLCertificateId: arn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678 InstancePort: 80 InstanceProtocol: HTTP aws:elb:listener: ListenerEnabled: false