Configuration d'un Classic Load Balancer - AWS Elastic Beanstalk

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration d'un Classic Load Balancer

Lorsque vous activez la répartition de charge, votre environnement AWS Elastic Beanstalk est équipé d'un équilibreur de charge Elastic Load Balancing qui permet de distribuer 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 plus d'informations sur la configuration de tous les types d'équilibreur de charge pris en charge par Elastic Beanstalk, consultez É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 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 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. Bien que vous ne puissiez pas supprimer l'écouteur par défaut du port 80, vous pouvez le désactiver, ce qui permet d'obtenir les mêmes fonctionnalités en bloquant le trafic. Notez que vous pouvez ajouter ou supprimer d'autres écouteurs. 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 séances permanentes. Avec les séances 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 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 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 Classic Load Balancer lors de la création de l'environnement ou plus tard, lorsque votre environnement est en cours d'exécution.

Note

L'option Classic Load Balancer (CLB) est désactivée dans l'assistant de création d'un environnement de la console. Si vous disposez d'un environnement existant configuré avec un Classic Load Balancer, vous pouvez en créer un nouveau en clonant l'environnement existant à l'aide de la console Elastic Beanstalk ou de l'interface de ligne de commande EB. Vous avez également la possibilité d'utiliser l'interface de ligne de commande EB ou AWS CLIde créer un nouvel environnement configuré avec un Classic Load Balancer. Ces outils de ligne de commande créeront un nouvel environnement avec un CLB, même s'il n'en existe pas déjà un dans votre compte.

Pour configurer un 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 du Classic Load Balancer exigées par votre environnement.

  6. Pour enregistrer les modifications, cliquez sur Appliquer en bas de la page.

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

Note

Bien que vous ne puissiez pas supprimer l'écouteur par défaut du port 80, vous pouvez le désactiver, ce qui permet d'obtenir les mêmes fonctionnalités en bloquant le trafic.

Configuration d'un 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 du Classic Load Balancer – Remplacement du protocole d'écouteur par défaut par TCP
Pour ajouter un écouteur
  1. Choisissez Add listener (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 plus d'informations sur une demande de certificat ACM, consultez Request a Certificate (Demande de certificat) dans le AWS Certificate Manager User Guide (Guide de l'utilisateur AWS Certificate Manager). Pour plus d'informations sur l'importation de certificats tiers dans ACM, consultez Importing Certificates (Importation de certificats) dans le AWS Certificate Manager User Guide (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 plus d'informations sur la création et le chargement des certificats dans IAM, consultez Utilisation des certificats de serveur dans le Guide de l'utilisateur IAM.

Pour plus d'informations sur la configuration HTTPS et l'utilisation des certificats dans Elastic Beanstalk, consultez 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 Classic Load Balancer – Ajout d'un écouteur sécurisé

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

Séances

Activez ou désactivez la case Permanence de la séance 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 politique par défaut (AWSEB-ELB-StickinessPolicy) s'applique.

Paramètres du Classic Load Balancer pour la permanence et la durée des séances

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 du Classic Load Balancer pour l'équilibrage de charge entre zones

Drainage de la connexion

Sélectionnez ou désélectionnez la case Drainage de la séance 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 du Classic Load Balancer pour Connection Draining et le délai de drainage

Surveillance 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 du 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. Consultez Paramètre de vérification de l'état Auto Scaling pour plus de détails.

Pour plus d'informations sur les surveillances de l'état et leur influence sur l'état global de votre environnement, consultez Création de rapports d'intégrité de base.

Configuration d'un 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 Classic Load Balancer

Vous trouverez les paramètres liés aux 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 (CLI) 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. Consultez Valeurs recommandées pour plus de détails.

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