Équilibrage de charge élastique dans AWS
Publié: 2022-08-10Elastic Load Balancing est le cœur des applications dans AWS. Apprenez tout sur ELB, ses types et ses fonctionnalités dans cet article.
De nos jours, la plupart des organisations ont besoin de gérer et d'augmenter l'évolutivité, la disponibilité et la tolérance aux pannes de leurs applications. AWS fournit une excellente solution pour cela, à savoir le service Elastic Load Balancing. Ce service consiste en un équilibreur de charge qui peut répartir les charges de travail sur de nombreuses ressources de calcul telles que des serveurs virtuels.

Les services d'équilibrage de charge nous permettent de configurer des vérifications de l'état pour surveiller l'état des ressources de calcul. Cela nous permet également de décharger le travail de chiffrement et de déchiffrement sur votre équilibreur de charge afin que les ressources de calcul puissent se concentrer sur leur travail principal.
Équilibrage de charge élastique (ELB) : Présentation
ELB est un service qui distribue automatiquement le trafic entrant sur plusieurs instances EC2. Cela permet d'atteindre des niveaux de tolérance aux pannes plus élevés dans vos applications en fournissant la capacité d'équilibrage de charge pour la distribution du trafic des applications.

De plus, Elastic Load Balancing peut détecter les instances EC2 défectueuses, et dès qu'une instance EC2 s'avère défectueuse, ELB arrête de lui envoyer du trafic jusqu'à ce qu'elle redevienne saine. Les clients peuvent facilement activer Elastic Load Balancing dans une ou plusieurs zones de disponibilité pour des performances applicatives plus cohérentes.
Fonctionnalités d'équilibrage de charge élastique
Sécurité
Vous pouvez gérer et créer des groupes de sécurité associés à Elastic Load Balancing dans Amazon Virtual Private Cloud (VPC) pour offrir des options de mise en réseau et de sécurité supplémentaires pour Application Load Balancer et Classic Load Balancer.
La haute disponibilité
Un équilibreur de charge élastique est hautement disponible. Vous pouvez répartir le trafic entrant vers votre application vers des instances EC2 dans une seule zone de disponibilité ou plusieurs zones de disponibilité.
Haut débit
Les équilibreurs de charge élastiques sont conçus pour gérer le trafic au fur et à mesure de leur croissance et peuvent charger et équilibrer des millions de requêtes/s. Il peut également gérer des pics de trafic soudains.
Bilans de santé
Avec Elastic Load Balancing, vous pouvez contrôler l'intégrité de vos instances EC2 et ne pas risquer d'envoyer du trafic vers une instance défaillante.
Surveillance opérationnelle et journalisation
Amazon CloudWatch rapporte les métriques d'application et d'équilibreur de charge classique telles que le nombre d'erreurs, les types d'erreurs, la latence des demandes, le nombre de demandes, etc.
Supprimer la protection
Vous pouvez activer la protection contre la suppression sur un Elastic Load Balancer pour l'empêcher d'être supprimé accidentellement.
Composants des équilibreurs de charge élastiques
Les auditeurs
Vous devez configurer un ou plusieurs écouteurs pour votre équilibreur de charge. C'est un processus qui vérifie les demandes de connexion. Il est configuré avec un protocole et un port pour les connexions pour les connexions front-end (client à load balancer) et un protocole pour les connexions back-end (load balancer à instance back-end).
Les protocoles pris en charge pour l'équilibrage de charge élastique incluent :
- HTTPS (HTTP sécurisé)
- TCP
- SSL (TCP sécurisé)
Équilibreur de charge
Un équilibreur de charge sert de "policier du trafic" devant vos serveurs, répartissant les demandes des clients sur tous les serveurs équipés pour les gérer de manière à maximiser la vitesse et l'utilisation de la capacité et à garantir qu'aucun serveur n'est surchargé, ce qui peut entraîner une dégradation des performances.
L'équilibreur de charge achemine le trafic vers les serveurs actifs au cas où un serveur se déconnecte. L'équilibreur de charge lance des requêtes vers un nouveau serveur lorsqu'il est ajouté au groupe de serveurs.
Groupes cibles
Les requêtes sont acheminées vers une ou plusieurs cibles enregistrées à l'aide de chaque groupe cible. Vous définissez un groupe cible et des conditions lorsque vous créez chaque règle d'écouteur. Lorsqu'une condition de règle est satisfaite, le trafic est acheminé vers le groupe cible approprié.
Pour différents types de demandes, vous pouvez créer des groupes cibles distincts. Par exemple, créez différents groupes cibles pour les requêtes vers les microservices et les requêtes génériques de votre application.
Types d'équilibreurs de charge
Équilibreur de charge d'application
Application Load Balancer permet aux développeurs de configurer et de diriger le trafic entrant des utilisateurs finaux vers les applications exécutées sur le cloud public AWS.
L'équilibrage de charge est crucial dans un environnement cloud avec de nombreuses applications Web. Un équilibreur de charge garantit qu'aucun serveur n'est surchargé en divisant le trafic réseau et les flux d'informations entre plusieurs serveurs. Cela améliore l'expérience utilisateur, augmente la réactivité et la disponibilité des applications et peut se défendre contre les attaques par déni de service distribué (DDoS).
L'accès aux applications Web s'est considérablement développé ces dernières années. Cependant, une augmentation inattendue du trafic peut ralentir les services en ligne et réduire leur disponibilité. L'équilibreur de charge d'application distribue efficacement la charge du réseau dans le cloud public pour augmenter la stabilité et la disponibilité.
L'équilibreur de charge d'application ne dirigera le trafic vers une cible saine à l'intérieur de la ressource cloud que si une application problématique atteint la couche 7. WebSocket est un autre protocole pris en charge par l'équilibreur de charge d'application pour une connectivité accrue avec le serveur sous-jacent.

Les sites Web et les applications mobiles qui s'exécutent dans des conteneurs ou sur des instances AWS EC2 bénéficient le plus de l'utilisation d'un équilibreur de charge d'application. Dans une architecture de microservices, Application Load Balancer peut être utilisé comme équilibreur de charge interne devant des instances EC2 ou des conteneurs Docker qui implémentent un service spécifique. De plus, il peut être utilisé devant une application API RESTful.
De nombreux services AWS sont compatibles avec l'équilibreur de charge d'application, notamment :
- Mise à l'échelle automatique AWS
- Service de conteneur élastique Amazon
- AWS CloudFormation
- AWS CodeDeploy
- Gestionnaire de certificats AWS
Équilibreur de charge classique
Le trafic des applications entrantes est réparti sur de nombreuses instances EC2 dans différentes zones de disponibilité à l'aide d'un équilibreur de charge classique. Un équilibreur de charge classique agit comme l'unique point de contact du client. Cela rend votre application plus accessible. Sans altérer le flux général des requêtes vers votre application, vous pouvez ajouter/supprimer des instances de votre équilibreur de charge classique au fur et à mesure que vos besoins évoluent.
Un écouteur utilise le protocole et le port que vous avez définis pour surveiller les demandes de connexion client. L'écouteur transmet ensuite les demandes à une ou plusieurs instances enregistrées à l'aide du protocole et du port configurés. Vous modifiez votre équilibreur de charge en ajoutant un ou plusieurs écouteurs.
Pour vous assurer que l'équilibreur de charge achemine uniquement les demandes vers des instances saines, vous pouvez configurer des vérifications de l'état, qui sont utilisées pour surveiller l'état des instances enregistrées.
L'équilibreur de charge classique, par défaut, répartit uniformément le trafic entre les zones de disponibilité que vous activez pour votre équilibreur de charge. Activez l'équilibrage de charge entre zones sur votre équilibreur de charge pour répartir le trafic entre toutes les instances enregistrées dans toutes les zones de disponibilité activées.

Types d'équilibreur de charge classique :
- Équilibreurs de charge classiques accessibles sur Internet : un équilibreur de charge accessible sur Internet peut acheminer les demandes des clients vers les instances EC2 enregistrées auprès de l'équilibreur de charge sur Internet, grâce à son domaine DNS résolvable publiquement. Votre équilibreur de charge reçoit un nom DNS public lors de sa création, que les clients peuvent utiliser pour effectuer des requêtes. Les serveurs DNS traduisent le nom DNS de votre équilibreur de charge en adresses IP publiques des nœuds de l'équilibreur de charge. Les adresses IP privées connectent chaque nœud d'équilibrage de charge aux instances principales.
- Équilibreurs de charge classiques internes : les nœuds d'un équilibreur de charge interne n'ont que des adresses IP personnelles. Le nom DNS d'un équilibreur de charge interne peut être résolu publiquement en adresses IP des nœuds. Par conséquent, les demandes ne peuvent être acheminées que par des équilibreurs de charge internes à partir de clients ayant accès au VPC de l'équilibreur de charge.
Équilibreur de charge réseau
L'équilibreur de charge réseau fonctionne au niveau de la quatrième couche du modèle OSI. Il peut traiter des millions de requêtes par seconde.
L'équilibreur de charge choisit une cible dans le groupe cible pour la règle par défaut après avoir reçu une demande de connexion. Il essaie d'établir une connexion TCP à la cible sélectionnée sur le port indiqué dans les paramètres d'écoute.
Pour augmenter la tolérance aux pannes de votre application, vous pouvez activer plusieurs zones de disponibilité, un service payant dans AWS pour les équilibreurs de charge réseau. Si une zone de disponibilité tombe en panne, votre application ne cessera pas de fonctionner.
Pour le trafic TCP, une cible est sélectionnée à l'aide d'un algorithme de hachage de flux basé sur le protocole, le port source, l'adresse IP source, le port de destination, l'adresse IP de destination et le numéro de séquence TCP.
Les connexions TCP des clients ont des numéros de séquence et des ports source différents, de sorte que les connexions sont acheminées vers d'autres cibles. Chaque connexion TCP unique est acheminée vers une seule cible pendant toute la durée de la connexion.
Équilibreur de charge de passerelle
Vos appliances virtuelles tierces peuvent être simplement déployées, mises à l'échelle et gérées à l'aide de Gateway Load Balancer. Il fournit une passerelle unique pour répartir le trafic entre de nombreuses appliances virtuelles et les augmenter ou les réduire en fonction de la demande. Cela élimine les points de défaillance potentiels de votre réseau et augmente la disponibilité.
Les appliances virtuelles de fabricants indépendants peuvent être trouvées, testées et achetées directement via AWS Marketplace. Que vous souhaitiez continuer à travailler avec vos fournisseurs actuels ou essayer quelque chose de nouveau, cette expérience intégrée accélère le processus de déploiement afin que vous puissiez bénéficier plus rapidement de vos appliances virtuelles.
Avantages de l'équilibreur de charge de passerelle :
- Déploiement plus rapide d'appliances virtuelles tierces.
- Faire évoluer vos appliances virtuelles tout en maîtrisant les coûts.
- Améliorer la disponibilité de l'appliance virtuelle
Derniers mots
Les équilibreurs de charge élastiques sont un élément essentiel de nombreuses infrastructures créées sur AWS. Les fonctionnalités que nous obtenons d'un ELB facilitent la gestion de votre infrastructure. Elastic Load Balancing est une méthode éprouvée de répartition des demandes de trafic applicatif et Web sur plusieurs cibles ou instances.
Vous pouvez faire évoluer automatiquement vos différentes charges de travail à l'aide d'Elastic Load Balancer. Nous avons couvert tous les types d'équilibreurs de charge fournis par AWS, et vous pouvez les utiliser selon les demandes de votre application.




