Qu'est-ce que l'équilibrage de charge ?
L'équilibrage de charge est la méthode qui permet de répartir le trafic réseau de manière égale sur un groupe de ressources prenant en charge une application. Les applications modernes doivent traiter des millions d'utilisateurs simultanément et renvoyer des données correctes comme du texte, des vidéos, des images et d'autres à chaque utilisateur de manière rapide et fiable. Pour gérer de tels volumes de trafic, la plupart des applications disposent de nombreux serveurs de ressources contenant des données en double. Un équilibreur de charge est un dispositif qui se trouve entre l'utilisateur et le groupe de serveurs, et qui fait office de facilitateur invisible, garantissant que tous les serveurs de ressources sont utilisés de la même manière.
Quels sont les avantages de l'équilibrage de charge ?
L'équilibrage de charge dirige et contrôle le trafic Internet entre les serveurs d'applications et leurs visiteurs ou clients. Par conséquent, il améliore la disponibilité, la capacité de mise à l'échelle, la sécurité et les performances d'une application.
Disponibilité de l'application
Une panne ou une maintenance du serveur peut augmenter les temps d'arrêt des applications, rendant ainsi votre application indisponible pour les visiteurs. Les équilibreurs de charge augmentent la tolérance aux pannes de vos systèmes en détectant automatiquement les problèmes de serveur et en redirigeant le trafic client vers les serveurs disponibles. Vous pouvez utiliser l'équilibrage de charge pour simplifier les tâches suivantes :
- Exécuter la maintenance ou des mises à niveau du serveur d'applications sans interruption de l'application
- Fournir une reprise après sinistre automatique aux sites de sauvegarde
- Effectuer une surveillance de l'état et prévenir les problèmes pouvant entraîner des temps d'arrêt
Capacité de mise à l'échelle des applications
Vous pouvez utiliser des équilibreurs de charge pour diriger intelligemment le trafic réseau entre plusieurs serveurs. Vos applications peuvent traiter des milliers de demandes de clients, car l'équilibrage de charge effectue les opérations suivantes :
- Empêcher les goulots d'étranglement du trafic sur n'importe quel serveur
- Prédire le trafic des applications afin que vous puissiez ajouter ou supprimer différents serveurs, si nécessaire
- Ajouter de la redondance à votre système afin que vous puissiez effectuer une mise à l'échelle en toute confiance
Sécurité des applications
Les équilibreurs de charge sont dotés de fonctionnalités de sécurité intégrées qui ajoutent un niveau de sécurité supplémentaire à vos applications Internet. Ils constituent un outil utile pour faire face aux attaques par déni de service distribué, dans lesquelles des pirates inondent un serveur d'applications de millions de demandes simultanées qui provoquent une défaillance du serveur. Les équilibreurs de charge peuvent également effectuer les opérations suivantes :
- Surveiller le trafic et bloquez les contenus malveillants
- Rediriger automatiquement le trafic des attaques vers plusieurs serveurs dorsaux afin de minimiser l'impact
- Acheminer le trafic via un groupe de pare-feux réseau pour plus de sécurité
Performance des applications
Les équilibreurs de charge améliorent les performances des applications en augmentant le temps de réponse et en réduisant la latence du réseau. Ils effectuent plusieurs tâches critiques telles que les suivantes :
- Répartir la charge uniformément entre les serveurs pour améliorer les performances des applications
- Rediriger les demandes des clients vers un serveur géographiquement plus proche afin de réduire la latence
- Garantir la fiabilité et les performances de ressources informatiques physiques et virtuelles
Comment fonctionne l'équilibrage de charge ?
Les entreprises exécutent généralement leurs applications sur plusieurs serveurs. Un tel arrangement de serveurs s'appelle une batterie de serveurs. Les demandes des utilisateurs adressées à l'application sont d'abord envoyées vers l'équilibreur de charge. L'équilibreur de charge achemine ensuite chaque demande vers un seul serveur de la batterie de serveurs la mieux adaptée pour traiter la demande.
L'équilibrage de charge est comparable au travail effectué par un gérant de restaurant. Prenons l'exemple d'un restaurant avec cinq serveurs. Si les clients étaient autorisés à choisir leurs serveurs, un ou deux serveurs pourraient être surchargés de travail tandis que les autres resteraient inactifs. Pour éviter ce scénario, le gérant du restaurant attribue les clients aux serveurs spécifiques qui sont les mieux placés pour les servir.
Que sont les algorithmes d'équilibrage de charge ?
Un algorithme d'équilibrage de charge est l'ensemble de règles que suit un équilibreur de charge pour déterminer le meilleur serveur pour chacune des demandes des différents clients. Les algorithmes d'équilibrage de charge se répartissent en deux catégories principales.
Équilibrage de charge statique
Les algorithmes d'équilibrage de charge statique suivent des règles fixes et sont indépendants de l'état actuel du serveur. Voici des exemples d'équilibrage de charge statique.
Méthode de tourniquet
Les serveurs ont des adresses IP qui indiquent au client où envoyer les demandes. L'adresse IP est un long numéro difficile à mémoriser. Pour vous faciliter la tâche, un système de noms de domaine mappe les noms de sites web aux serveurs. Lorsque vous saisissez aws.amazon.com dans votre navigateur, la demande est d'abord envoyée à notre serveur de noms, qui renvoie notre adresse IP à votre navigateur.
Dans la méthode de tourniquet, un serveur de noms faisant autorité effectue l'équilibrage de charge au lieu d'utiliser du matériel ou des logiciels spécialisés. Le serveur de noms renvoie les adresses IP des différents serveurs de la batterie de serveurs tour à tour ou en tourniquet.
Méthode de tourniquet pondéré
Dans l'équilibrage de charge à tourniquet pondéré, vous pouvez attribuer différentes pondérations à chaque serveur en fonction de sa priorité ou de sa capacité. Les serveurs dont le poids est plus élevé recevront davantage de trafic d'applications entrant provenant du serveur de noms.
Méthode de hachage IP
Dans la méthode de hachage IP, l'équilibreur de charge effectue un calcul mathématique, appelé hachage, sur l'adresse IP du client. Il convertit l'adresse IP du client en numéro, qui est ensuite mappé à des serveurs individuels.
Équilibrage de charge dynamique
Les algorithmes d'équilibrage de charge dynamique examinent l'état actuel des serveurs avant de distribuer le trafic. Voici quelques exemples d'algorithmes d'équilibrage de charge dynamique.
Méthode de connexion minimale
Une connexion est un canal de communication ouvert entre un client et un serveur. Lorsque le client envoie la première demande au serveur, il s'authentifie et établit une connexion active entre eux. Dans la méthode de connexion minimale, l'équilibreur de charge vérifie quels serveurs ont le moins de connexions actives et adresse le trafic à ces serveurs. Cette méthode suppose que toutes les connexions nécessitent une puissance de traitement égale pour tous les serveurs.
Méthode de connexion minimale pondérée
Les algorithmes de connexion minimale pondérée supposent que certains serveurs peuvent gérer plus de connexions actives que d'autres. Par conséquent, vous pouvez attribuer des pondérations ou des capacités différentes à chaque serveur, et l'équilibreur de charge envoie les nouvelles demandes de clients au serveur ayant le moins de connexions par capacité.
Méthode du temps de réponse minimal
Le temps de réponse est le temps total dont dispose le serveur pour traiter les demandes entrantes et envoyer une réponse. La méthode du temps de réponse minimal combine le temps de réponse du serveur et les connexions actives pour déterminer le meilleur serveur. Les équilibreurs de charge utilisent cet algorithme pour garantir un service plus rapide à tous les utilisateurs.
Méthode basée sur les ressources
Dans la méthode basée sur les ressources, les équilibreurs de charge répartissent le trafic en analysant la charge actuelle du serveur. Un logiciel spécialisé appelé agent s'exécute sur chaque serveur et calcule l'utilisation des ressources du serveur, telles que sa capacité de calcul et sa mémoire. Ensuite, l'équilibreur de charge vérifie si l'agent dispose de suffisamment de ressources libres avant de distribuer le trafic vers ce serveur.
Quels sont les types d'équilibrage de charge ?
Nous pouvons classer l'équilibrage de charge en trois catégories principales en fonction de ce que l'équilibreur de charge vérifie dans la demande du client pour rediriger le trafic.
Équilibrage de charge des applications
Les applications modernes complexes disposent de plusieurs batteries de serveurs avec plusieurs serveurs dédiés à une seule fonction applicative. Les Application Load Balancers examinent le contenu de la demande, tel que les en-têtes HTTP ou les ID de session SSL, pour rediriger le trafic.
Par exemple, une application de commerce électronique possède un répertoire de produits, un panier d'achat et des fonctions de paiement. L'Application Load Balancer envoie des demandes de navigation de produits aux serveurs qui contiennent des images et des vidéos, mais qui n'ont pas besoin de maintenir des connexions ouvertes. En comparaison, il envoie les demandes de panier d'achat à des serveurs capables de maintenir de nombreuses connexions clients et d'enregistrer les données du panier pendant une longue période.
Équilibrage de charge réseau
Les Network Load Balancers examinent les adresses IP et d'autres informations réseau pour rediriger le trafic de manière optimale. Ils suivent la source du trafic des applications et peuvent attribuer une adresse IP statique à plusieurs serveurs. Les Network Load Balancers utilisent les algorithmes d'équilibrage de charge statique et dynamique décrits précédemment pour équilibrer la charge du serveur.
Équilibrage de charge global du serveur
L'équilibrage de charge global du serveur s'effectue sur plusieurs serveurs répartis géographiquement. Par exemple, les entreprises peuvent avoir des serveurs dans plusieurs centres de données, dans différents pays et chez des fournisseurs de cloud tiers dans le monde entier. Dans ce cas, les équilibreurs de charge locaux gèrent la charge des applications au sein d'une région ou d'une zone. Ils essaient de rediriger le trafic vers une destination de serveur géographiquement plus proche du client. Ils peuvent rediriger le trafic vers des serveurs situés en dehors de la zone géographique du client uniquement en cas de défaillance du serveur.
Équilibrage de charge DNS
Dans l'équilibrage de charge DNS, vous configurez votre domaine pour acheminer les demandes réseau sur un groupe de ressources de votre domaine. Un domaine peut correspondre à un site web, à un système de messagerie, à un serveur d'impression ou à un autre service rendu accessible via Internet. L'équilibrage de charge DNS est utile pour maintenir la disponibilité des applications et équilibrer le trafic réseau sur un groupe de ressources distribué à l'échelle mondiale.
Quels sont les types de technologie d'équilibrage de charge ?
Les équilibreurs de charge sont de deux types : équilibreur de charge matériel et équilibreur de charge logiciel.
Équilibreurs de charge matériels
Un équilibreur de charge matériel est une appliance matérielle capable de traiter et de rediriger en toute sécurité des gigaoctets de trafic vers des centaines de serveurs différents. Vous pouvez les stocker dans vos centres de données et utiliser la virtualisation pour créer plusieurs équilibreurs de charge numériques ou virtuels que vous pouvez gérer de manière centralisée.
Équilibreurs de charge logiciels
Les équilibreurs de charge logiciels sont des applications qui exécutent toutes les fonctions d'équilibrage de charge. Vous pouvez les installer sur n'importe quel serveur ou y accéder en tant que service tiers entièrement géré.
Comparaison entre les équilibreurs matériels et logiciels
Les équilibreurs de charge matériels nécessitent un investissement initial, une configuration et une maintenance continue. Il se peut également que vous ne les utilisiez pas à pleine capacité, en particulier si vous n'en achetez qu'un pour gérer les pics de trafic aux heures de pointe. Si le volume de trafic augmente soudainement au-delà de sa capacité actuelle, cela affectera les utilisateurs jusqu'à ce que vous puissiez acheter et configurer un autre équilibreur de charge.
En revanche, les équilibreurs de charge basés sur logiciel sont beaucoup plus flexibles. Ils peuvent facilement être augmentés ou diminués et ils sont davantage compatibles avec les environnements modernes de cloud computing. Ils coûtent également moins cher à configurer, à gérer et à utiliser au fil du temps.
Comment AWS peut-il être utile en ce qui concerne l'équilibrage de charge ?
Elastic Load Balancing (ELB) est un service d'équilibrage de charge entièrement géré qui distribue automatiquement le trafic des applications entrant vers plusieurs cibles et appliances virtuelles sur AWS et les ressources sur site. Vous pouvez l'utiliser pour faire mettre à l'échelle des applications modernes sans configurations complexes ni passerelles d'API. Vous pouvez utiliser ELB pour configurer quatre types d'équilibreurs de charge logiciels différents.
-
Un Application Load Balancer achemine le trafic pour les demandes basées sur HTTP.
-
Un Network Load Balancer achemine le trafic en fonction des adresses IP. Il est idéal pour équilibrer les demandes basées sur TCP et UDP (User Datagram Protocol).
-
Gateway Load Balancer achemine le trafic vers des appliances virtuelles tierces. Il est idéal pour intégrer une appliance tierce, telle qu'un pare-feu réseau, dans votre trafic réseau de manière évolutive et facile à gérer.
-
Un Classic Load Balancer achemine le trafic vers les applications du réseau Amazon EC2-Classic, un réseau plat unique que vous partagez avec d'autres clients.
Vous pouvez sélectionner l'équilibreur de charge en fonction de vos besoins. Par exemple, Terminix, une marque mondiale de lutte antiparasitaire, utilise Gateway Load Balancer pour gérer un débit supérieur de 300 %. Second Spectrum, une société qui fournit une technologie de suivi basée sur l'intelligence artificielle pour les émissions sportives, utilise AWS Load Balancer Controller pour réduire ses coûts d'hébergement de 90 %. Code.org, une organisation à but non lucratif vouée à élargir l'accès à l'informatique dans les écoles, utilise Application Load Balancer pour gérer efficacement un pic de trafic de 400 % lors d'événements de codage en ligne.
Commencez à utiliser l'équilibrage de charge en créant un compte AWS dès aujourd'hui !
L'équilibrage de charge dans AWS : prochaines étapes
Commencez à créer avec AWS dans la Console de gestion AWS.