Application Load Balancer

Équilibrez la charge du trafic HTTP et HTTPS grâce à un routage de requêtes avancé destiné à la fourniture d'applications modernes.

Pourquoi choisir Application Load Balancer ?

L'Application Load Balancer fonctionne au niveau des requêtes (couche 7), en acheminant le trafic vers les cibles, à savoir des instances EC2, des conteneurs, des adresses IP ou des fonctions Lambda, selon le contenu de la requête. L'Application Load Balancer est parfaitement adapté à l'équilibrage amélioré des charges du trafic HTTP et HTTPS et fournit un routage des requêtes avancé afin de fournir des architectures d'application moderne, notamment des microservices et des applications conteneurisées. L'Application Load Balancer simplifie et optimise la sécurité de votre application en veillant à ce que les chiffrements et les protocoles SSL/TLS les plus récents soient utilisés en permanence.

Page Topics

Fonctionnalités

Fonctionnalités

Mutual TLS est un protocole d'authentification bidirectionnelle entre les clients et les serveurs qui utilisent des identités basées sur des certificats x509. Grâce à cette fonctionnalité, l'ALB authentifiera les certificats des clients et effectuera des contrôles de révocation pour les certificats émis à la fois par des autorités de certification (CA) tierces ou par des autorités de certification privées (ACM PCA). L'équilibreur de charge transmettra également les informations du certificat client aux cibles, qui peuvent être utilisées pour les décisions d'autorisation par l'application. 

Les pondérations cibles automatiques (ATW) utilisent un nouvel algorithme d'équilibrage de charge aléatoire pondéré qui améliore la disponibilité des applications même lorsque les cibles de l'application sont altérées. L'algorithme analyse les codes d'état HTTP et les taux d'erreur TCP/TLS afin d'identifier les cibles présentant des taux d'erreur plus élevés que leurs homologues du même groupe cible. Lorsqu'ATW identifie des cibles sous-performantes, cette fonctionnalité ajuste le volume de trafic dirigé vers chaque cible en fonction des performances, aidant ainsi la cible en difficulté à se rétablir avec succès.

Vous pouvez équilibrer la charge du trafic HTTP/HTTPS vers les cibles (instances Amazon EC2, microservices et conteneurs) en fonction des attributs de la requête (tels que les en-têtes X-Forwarded-For).

Lorsque vous utilisez Amazon Virtual Private Cloud (VPC), vous pouvez créer et gérer des groupes de sécurité associés à Elastic Load Balancing afin de définir des options supplémentaires de mise en réseau et de sécurité. Vous pouvez configurer un Application Load Balancer de façon qu'il dispose d'un accès Internet, ou créer un équilibreur de charge sans adresses IP publiques afin de l'utiliser comme équilibreur de charge interne (non accessible sur Internet).

ALB prend en charge la mise en œuvre de protections de désynchronisation basées sur la bibliothèque http_desync_guardian. Grâce à cette nouvelle fonctionnalité, les applications des clients sont protégées contre les vulnérabilités HTTP dues à la désynchronisation sans faire de compromis majeurs en termes de disponibilité et/ou de latence. Les clients ont également la possibilité de choisir leur niveau de tolérance aux demandes suspectes en fonction de l'architecture de leur application.

Les Application Load Balancers (ALB) prennent désormais en charge AWS Outposts, un service entièrement géré qui étend l’infrastructure, les services et les outils AWS à pratiquement tous les centres de données, les espaces de colocation ou les installations sur site pour une véritable expérience hybride cohérente. Les clients peuvent provisionner des ALB sur les types d'instances pris en charge et l'ALB se mettra automatiquement à l'échelle jusqu'à la capacité disponible sur le rack pour répondre aux différents niveaux de charge des applications sans intervention manuelle. Les clients peuvent également recevoir des notifications qui les aideront à gérer leurs besoins de capacité liés à l'équilibrage de charge. Les clients peuvent utiliser la même console AWS, les mêmes API et la même CLI pour approvisionner et gérer les ALB sur Outposts que pour la gestion actuelle des ALB de la région.

L’équilibreur de charge d'application prend en charge la terminaison HTTPS entre les clients et l’équilibreur de charge. Les Application Load Balancer permettent également de gérer les certificats SSL à travers la gestion des identités et de accès AWS (IAM) et AWS Certificate Manager pour les politiques de sécurité prédéfinies.

HTTP/2 est une nouvelle version du protocole HTTP (HyperText Transfer Protocol), qui utilise une connexion unique et multiplexée pour autoriser l'envoi de plusieurs requêtes sur la même connexion. Ce protocole compresse également les données de l'en-tête avant de les envoyer au format binaire et prend en charge les connexions SSL vers les clients.

L'ALB peut acheminer et équilibrer la charge du trafic gRPC entre les microservices ou entre les clients et les services compatibles gRPC. Cela permet une introduction fluide de la gestion du trafic gRPC dans les architectures sans modifier l'infrastructure sous-jacente des clients ou des services des consommateurs. gRPC utilise HTTP/2 pour le transport et devient le protocole de choix pour les communications interservices dans les architectures de microservices. Il possède des fonctionnalités telles que la sérialisation binaire efficace et la prise en charge de nombreux langages, en plus des avantages inhérents à HTTP/2 tels que la réduction de l'encombrement du réseau, la compression et le streaming bidirectionnel, ce qui le rend meilleur que les protocoles existants tels que REST.

Vous pouvez créer un écouteur HTTPS qui utilise des connexions chiffrées (également appelées déchargement SSL). Cette fonctionnalité permet de chiffrer le trafic entre votre équilibreur de charge et les clients qui initient des sessions SSL ou TLS. L'Application Load Balancer prend en charge la terminaison de session TLS client. Cela vous permet de transférer les tâches de terminaison TLS sur l'équilibreur de charge sans perdre l'adresse IP source utile pour vos applications backend. Pour respecter les standards de conformité et de sécurité, vous avez la possibilité de choisir parmi les politiques de sécurité prédéfinies pour vos écouteurs TLS. Vous pouvez gérer vos certificats de serveur avec AWS Certificate Manager (ACM) ou AWS Identity and Access Management (IAM).

De même, vous pouvez utiliser SNI pour servir plusieurs sites Web sécurisés à l'aide d'un seul écouteur TLS. L'équilibreur de charge sélectionne le meilleur certificat à utiliser en fonction d'un algorithme de sélection intelligent si le nom d'hôte dans le client correspond à plusieurs certificats.

Les sessions permanentes désignent un mécanisme qui permet d'acheminer les requêtes d'un même client vers la même cible. Les Application Load Balancer prennent en charge à la fois les cookies basés sur la durée et les cookies basés sur les applications. La clé pour gérer les sessions permanentes est de déterminer pendant combien de temps votre équilibreur de charge doit acheminer systématiquement la demande de l'utilisateur vers la même cible. Les sessions permanentes sont activées au niveau du groupe cible. Vous pouvez utiliser une combinaison de permanence basée sur la durée ou sur l'application et aucune permanence pour tous vos groupes cibles.

Les Application Load Balancers prennent en charge IPv6 (Internet Protocol version 6) en natif dans un VPC. Cela permet aux clients de se connecter à l'équilibreur de charge d'application via IPv4 ou IPv6.

L'Application Load Balancer injecte un nouvel en-tête HTTP « X-Amzn-Trace-Id » d'identifiant personnalisé dans toutes les requêtes en provenance de l'équilibreur de charge. Le suivi des requêtes vous permet de suivre une requête à partir de son identifiant unique tandis qu'elle transite par les différents services qui créent la masse de trafic de vos sites Web et vos applications distribuées. Cet identifiant de suivi unique peut être utilisé pour identifier des problèmes de performance ou de temporisation dans votre stack d'application à l'échelle d'une requête individuelle.

Application Load Balancer peut rediriger une requête entrante d'une URL vers une autre. Il a notamment la capacité de rediriger des requêtes HTTP vers des requêtes HTTPS, ce qui vous permet d'atteindre vos objectifs de conformité en matière de navigation sécurisée tout en obtenant un meilleur classement des recherches, ainsi qu'un score SSL/TLS élevé pour votre site. Vous pouvez également utiliser les redirections pour renvoyer les utilisateurs vers un site web différent, comme la redirection depuis une ancienne version d'une application vers une plus récente.

Application Load Balancer peut contrôler les requêtes de clients desservies par vos applications. Cela vous permet de répondre aux requêtes avec des codes de réponse d'erreur HTTP et des messages d'erreur personnalisés directement à partir de l'équilibreur de charge, sans avoir à transférer la requête vers l'application.

WebSockets permet à un serveur d'échanger des messages en temps réel avec des utilisateurs finaux sans que ces derniers n'aient à demander une mise à jour au serveur (ou à l'interroger). Le protocole WebSockets fournit des canaux de communication bidirectionnels entre un client et un serveur, via une connexion TCP de longue durée.

SNI (Server Name Indication) est une extension au protocole TLS grâce auquel un client indique le nom d'hôte auquel se connecter au démarrage de la liaison TLS. L'équilibreur de charge peut présenter plusieurs certificats via le même auditeur sécurisé, ce qui lui permet de prendre en charge plusieurs sites Web sécurisés à l'aide d'un seul auditeur sécurisé. Les écouteurs équilibreurs de charge d'application prennent également en charge un algorithme de sélection de certificat intelligent avec SNI. Si le nom d'hôte indiqué par un client correspond à plusieurs certificats, l'équilibreur de charge détermine le meilleur certificat à utiliser d'après plusieurs facteurs, dont les capacités du client.

Vous pouvez équilibrer les charges de n'importe quelle application hébergée dans AWS ou en local en utilisant les adresses IP de backends de l'application comme cibles. Cela permet d'équilibrer la charge vers un backend d'application hébergée sur n'importe quelle adresse IP ou n'importe quelle interface sur une instance. Chaque application hébergée sur la même instance peut disposer d'un groupe de sécurité et utiliser le même port. Vous pouvez également utiliser les adresses IP comme cibles pour équilibrer la charge d'applications hébergées sur site (via une connexion Direct Connect ou VPN), sur des VPC appairés et EC2 Classic (avec ClassicLink). La possibilité d'équilibrer la charge sur AWS et sur des ressources sur site simplifie la migration vers le cloud, le passage au cloud et le basculement vers le cloud.

Les équilibreurs de charge d'application prennent désormais en charge l'appel des fonctions Lambda pour répondre aux requêtes HTTP(S) et permettre aux utilisateurs d'accéder aux applications sans serveur à partir de n'importe quel client HTTP, y compris les navigateurs Internet. Vous pouvez enregistrer des fonctions Lambda en tant que cibles et tirer parti de la prise en charge des règles de routage basé sur le contenu pour acheminer les demandes vers différentes fonctions Lambda. Vous pouvez utiliser un équilibreur de charge d'application comme point de terminaison HTTP commun pour les applications qui utilisent des serveurs et le calcul sans serveur. Vous pouvez créer la totalité d'un site web à l'aide de fonctions Lambda, ou combiner des instances EC2, des conteneurs, des serveurs sur site et des fonctions Lambda pour générer des applications.

Si votre application se compose de plusieurs services individuels, un Application Load Balancer peut acheminer une requête à un service en se basant sur le contenu de celle-ci, tel que le champ Host, le chemin de l'URL, l'en-tête HTTP, la méthode HTTP, la chaîne de requête ou l'adresse IP source.

Routage basé sur l'hôte : vous pouvez acheminer une requête client en fonction du champ hôte de l'en-tête HTTP, ce qui vous permet de l'acheminer vers plusieurs domaines depuis le même équilibreur de charge.

Routage basé sur le chemin : vous pouvez acheminer une requête client en fonction du chemin de l'URL de l'en-tête HTTP.

Routage basé sur un en-tête HTTP : vous pouvez acheminer une requête client en fonction de la valeur d'un en-tête HTTP standard ou personnalisé.

Routage basé sur une méthode HTTP : vous pouvez acheminer une requête client en fonction de la méthode HTTP standard ou personnalisée.

Routage basé sur les paramètres dans la chaîne de requête : vous pouvez acheminer une requête client en fonction de la chaîne de requête ou des paramètres de la requête.

Routage basé sur le CIDR de l'adresse IP source : vous pouvez acheminer une requête client en fonction du CIDR de l'adresse IP source d'où provient la requête.

L'Application Load Balancer fournit un support amélioré en matière de conteneurs en équilibrant la charge sur plusieurs ports de la même instance Amazon EC2. Intégration approfondie à Amazon Elastic Container Service (ECS) fournit une offre de conteneurs entièrement gérés. ECS vous permet de spécifier un port dynamique dans la définition de tâches ECS, en attribuant au conteneur un port non utilisé lorsqu'il est programmé sur l'instance EC2. Le planificateur ECS ajoute automatiquement la tâche à l'équilibreur de charge via ce port.

Vous pouvez désormais utiliser AWS WAF pour protéger vos applications Web sur vos équilibreurs de charges d’applications. AWS WAF est un pare-feu d'application Web qui vous aide à protéger vos applications Web contre les codes malveillants les plus répandus pouvant affecter la disponibilité, compromettre la sécurité ou consommer de manière excessive les ressources de votre application.

Application Load Balancer prend en charge un algorithme d'équilibrage de charge round-robin. De plus, l'Application Load Balancer prend en charge un mode de démarrage lent avec un algorithme round-robin vous permettant d'ajouter de nouvelles cibles sans les submerger de requêtes. Grâce au mode Démarrage lent, les cibles s'échauffent avant d'accepter leur juste part de requêtes d'après une période de croissance que vous définissez. Le démarrage lent est très utile pour les applications reposant sur le cache et nécessitant une période d'échauffement avant de pouvoir répondre aux requêtes avec des performances optimales.

Vous pouvez décharger la fonctionnalité d'authentification de vos applications pour la transférer à l'Application Load Balancer. L'Application Load Balancer authentifie en toute sécurité les utilisateurs lorsqu'ils accèdent aux applications cloud. Application Load Balancer s'intègre en toute fluidité à Amazon Cognito, ce qui permet aux utilisateurs finaux de s'authentifier par l'intermédiaire des fournisseurs d'identité sociale comme Google, Facebook et Amazon, et par l'intermédiaire de fournisseurs d'identité d'entreprise tels que Microsoft Active Directory via SAML ou un autre fournisseur d'identité (IdP) compatible avec OpenID Connect. Si vous disposez déjà d'une solution IdP personnalisée compatible avec OpenID Connect, Application Load Balancer peut également authentifier les utilisateurs entreprise par une connexion directe avec votre fournisseur d'identité.