Bonjour à tous ! Aujourd'hui commence le cours , c'est pourquoi nous avons organisé un webinaire thématique dédié à la présentation de l'ELB. Nous avons examiné les types de répartiteurs de charge et créé plusieurs instances EC2 avec le répartiteur de charge. Nous avons également étudié d'autres exemples d'utilisation.

, vous serez :
- capable de comprendre ce qu'est l'AWS Load Balancing ;
- de connaĂźtre les types d'Elastic Load Balancer et ses composants ;
- d'utiliser AWS ELB dans votre pratique.
Pourquoi est-il important de maĂźtriser cela :
- c'est utile si vous prévoyez de passer les examens de certification AWS ;
- c'est une méthode simple de répartition de la charge entre les serveurs ;
- c'est un moyen facile d'ajouter Lambda Ă votre service (ALB).
La leçon ouverte a été présentée par , ingénieur systÚme dans une entreprise marketing spécialisée dans le développement et le maintien de sites web.
Introduction
Vous pouvez voir ce qu'est un Elastic Load Balancer sur le diagramme ci-dessous, qui présente un exemple simple :

Le rĂ©partiteur de charge reçoit les requĂȘtes et les redistribue aux instances. Nous avons une instance distincte, des fonctions Lambda et un groupe d'AutoScaling (groupe de serveurs).
Types d'AWS ELB
1. Examinons les principaux types:
Classic Load Balancer. Le tout premier rĂ©partiteur de charge d'AWS, fonctionne au niveau 4 et 7 de l'OSI, prend en charge HTTP, HTTPS, TCP et SSL. Il fournit une rĂ©partition de charge de base entre plusieurs instances Amazon EC2 et fonctionne Ă la fois au niveau des requĂȘtes et au niveau des connexions. Ouvrons-le (en gris) :

Ce rĂ©partiteur est considĂ©rĂ© comme obsolĂšte, il est donc recommandĂ© de l'utiliser uniquement dans des cas particuliers. Par exemple, pour des applications construites sur le rĂ©seau EC2-Classic. En principe, rien ne nous empĂȘche de le crĂ©er :

2. Network Load Balancer. Convient pour une forte charge, fonctionne au niveau 4 de l'OSI (peut ĂȘtre utilisĂ© dans EKS et ECS), prend en charge TCP, UDP et TLS.
Le Network Load Balancer dirige le trafic vers des cibles dans Amazon VPC et est capable de traiter des millions de requĂȘtes par seconde avec des latences extrĂȘmement basses. De plus, il est optimisĂ© pour gĂ©rer des modĂšles de trafic avec des charges soudaines et changeantes.
3. Application Load Balancer. Fonctionne au niveau 7, prend en charge Lambda, prend en charge les rĂšgles au niveau des en-tĂȘtes et des chemins, prend en charge HTTP et HTTPS.
Fournit un routage avancĂ© des requĂȘtes, axĂ© sur la livraison d'applications construites sur des architectures modernes, y compris les microservices et les conteneurs. Oriente le trafic vers des cibles dans Amazon VPC en fonction du contenu de la requĂȘte.
Pour de nombreux utilisateurs, l'Application Load Balancer a d'abord remplacé le Classic Load Balancer, car le TCP est moins couramment utilisé que le HTTP.
Créons-en un aussi, ce qui nous donnera déjà deux équilibreurs de charge :

Composants de Load Balance
Composants généraux de Load Balance (communs à tous les équilibreurs de charge) :
- Politique de Journalisation d'AccĂšs
â vos journaux d'accĂšs Ă l'ELB. Pour effectuer les rĂ©glages, vous pouvez aller dans Description et sĂ©lectionner le bouton « Modifier les attributs » :

Ensuite, nous spĂ©cifions S3Bucket â un stockage d'objets Amazon :

- Scheme
â un Ă©quilibreur interne ou externe. L'idĂ©e est de savoir si votre LoadBalancer doit recevoir des adresses externes pour ĂȘtre accessible de l'extĂ©rieur, ou si c'est votre Ă©quilibreur interne ;
- Groupes de Sécurité
â contrĂŽle d'accĂšs Ă l'Ă©quilibreur. En substance, c'est un pare-feu de haut niveau.


- Sous-réseaux
â sous-rĂ©seaux au sein de votre VPC (et donc zones de disponibilitĂ©). Les sous-rĂ©seaux sont spĂ©cifiĂ©s lors de la crĂ©ation. Si VPC est limitĂ© Ă une rĂ©gion, les sous-rĂ©seaux sont limitĂ©s aux zones de disponibilitĂ©. Lorsque vous crĂ©ez un Load Balancer, il est prĂ©fĂ©rable de le crĂ©er dans au moins deux sous-rĂ©seaux (cela aide en cas de problĂšmes dans une zone de disponibilitĂ©) ;
- Listeners
â vos protocoles de rĂ©partition de charge. Comme mentionnĂ© prĂ©cĂ©demment, pour le Classic Load Balancer, cela peut ĂȘtre HTTP, HTTPS, TCP et SSL, pour le Network Load Balancer â TCP, UDP et TLS, pour l'Application Load Balancer â HTTP et HTTPS.
Exemple pour le Classic Load Balancer :

Et dans l'Application Load Balancer, nous voyons une interface légÚrement différente et une logique complÚtement différente :

Composants de Load Balancer v2 (ALB et NLB)
Examinons plus en dĂ©tail les Ă©quilibreurs de charge de la version 2, l'Application Load Balancer et le Network Load Balancer. Ces Ă©quilibreurs de charge ont leurs propres caractĂ©ristiques composantes. Par exemple, un nouveau concept est apparu, celui des Groupes de Cibles â instances (et fonctions). GrĂące Ă ce composant, nous avons la possibilitĂ© d'indiquer sur quel Groupe de Cibles nous voulons diriger le trafic.


En termes simples, dans les Groupes de Cibles, nous spĂ©cifions les instances oĂč le trafic arrivera. Si dans le Classic Load Balancer vous connectez directement les instances Ă l'Ă©quilibreur, dans l'Application Load Balancer, vous devez d'abord :
- créer un Load Balancer ;
- créer un groupe de cibles ;
- diriger via les ports ou rÚgles nécessaires le Load Balancer vers les Groupes de Cibles appropriés ;
- Dans les groupes cibles, vous assignez des instances.
Cette logique de fonctionnement peut sembler plus complexe, mais en réalité, elle est plus pratique.
Le composant suivant est RÚgles d'écoute (rÚgles pour le routage). Cela concerne uniquement l'Application Load Balancer. Dans le Network Load Balancer, vous créez simplement un Listener, et il envoie le trafic à un groupe cible spécifique, tandis que dans l'Application Load Balancer, tout est .

Passons maintenant Ă quelques mots sur le composant suivant â Elastic IP (adresses statiques pour NLB). Si les rĂšgles pour le routage des RĂšgles d'Ă©coute ne concernaient que l'Application Load Balancer, l'Elastic IP concerne uniquement le Network Load Balancer.
Créons un Network Load Balancer :


Et c'est précisément lors de la création que nous verrons qu'il nous est donné la possibilité de choisir un Elastic IP :

Elastic IP fournit une adresse IP unique qui peut ĂȘtre associĂ©e Ă diffĂ©rentes instances EC2 dans le temps. Si une instance EC2 a une adresse Elastic IP et que cette instance est arrĂȘtĂ©e ou terminĂ©e, vous pouvez immĂ©diatement associer une nouvelle instance EC2 Ă l'adresse Elastic IP. Cela garantit que votre application actuelle ne s'arrĂȘte pas, car les applications voient toujours la mĂȘme adresse IP, mĂȘme si l'EC2 rĂ©el a changĂ©.
Voici sur le sujet du besoin d'Elastic IP. Regardez, nous voyons 3 adresses IP, mais elles ne resteront pas ici pour toujours :

Amazon les change avec le temps, peut le faire toutes les 60 secondes (mais en pratique, en général, moins souvent). Cela signifie que les adresses IP peuvent changer. Et dans le cas de Network Load Balancer, vous pouvez effectivement lier l'IP et l'indiquer dans vos rÚgles, politiques, etc.

Faisons des conclusions.
ELB assure une répartition automatique du trafic entrant sur plusieurs cibles (conteneurs, instances Amazon EC2, adresses IP et fonctions Lambda). ELB peut répartir le trafic avec une charge variable à la fois dans une zone de disponibilité et entre plusieurs zones de disponibilité. L'utilisateur peut choisir parmi trois types de load balancers qui assurent à la fois haute disponibilité, auto-scaling et une protection correcte. Tout cela est important pour garantir la résilience de vos applications.
Les principaux avantages :
- haute disponibilité.. L'accord de service implique une disponibilité de 99,99 % pour le répartiteur de charge. Par exemple, plusieurs zones de disponibilité garantissent que le trafic sera traité uniquement par des entités fonctionnelles. En fait, il est possible de répartir la charge sur toute la région, en redirigeant le trafic vers des cibles saines dans différentes zones de disponibilité;
- sĂ©curitĂ©. ELB fonctionne avec Amazon VPC, offrant diffĂ©rentes options de sĂ©curitĂ© â gestion intĂ©grĂ©e des certificats, authentification des utilisateurs et dĂ©chiffrement SSL/TLS. Cela garantit une gestion centralisĂ©e et flexible des paramĂštres TLS;
- élasticité. ELB peut gérer les changements soudains du trafic réseau. Une intégration approfondie avec l'Auto Scaling permet à l'application de bénéficier de ressources suffisantes en cas de changement de charge, sans nécessiter d'intervention manuelle;
- flexibilitĂ©. Des adresses IP peuvent ĂȘtre utilisĂ©es pour router les requĂȘtes vers les cibles de vos applications. Cela assure la flexibilitĂ© lors de la virtualisation des applications cibles, permettant ainsi de dĂ©ployer plusieurs applications sur une seule instance. Les applications peuvent utiliser un mĂȘme port rĂ©seau et possĂ©der des groupes de sĂ©curitĂ© distincts, ce qui simplifie les interactions entre les applications, en particulier dans une architecture basĂ©e sur les microservices;
- surveillance et audit. Il est possible de surveiller les applications en temps rĂ©el en utilisant les fonctionnalitĂ©s d'Amazon CloudWatch. Cela inclut les mĂ©triques, les journaux et le suivi des requĂȘtes. Pour le dire simplement, vous serez en mesure d'identifier les problĂšmes et de localiser prĂ©cisĂ©ment les goulets d'Ă©tranglement de performance;
- rĂ©partition de charge hybride. La possibilitĂ© de rĂ©partir la charge entre les ressources locales et AWS en utilisant le mĂȘme rĂ©partiteur simplifie la migration ou l'expansion des applications locales vers le cloud. Le traitement des pannes est Ă©galement facilitĂ©e par l'utilisation du cloud.
Si vous souhaitez plus de détails, voici quelques liens utiles du site officiel d'Amazon :
- .
Source : habr.com
