Équilibrage de la charge avec AWS ELB

Bonjour à tous ! Aujourd'hui commence le cours «AWS pour les développeurs», 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.

Équilibrage de la charge avec AWS ELB

AprÚs avoir écouté le webinaire, 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 Rishat Teregulov, 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 :

Équilibrage de la charge avec AWS ELB

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) :

Équilibrage de la charge avec AWS ELB

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 :

Équilibrage de la charge avec AWS ELB

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 :

Équilibrage de la charge avec AWS ELB

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 » :

Équilibrage de la charge avec AWS ELB

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

Équilibrage de la charge avec AWS ELB

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

Équilibrage de la charge avec AWS ELB

Équilibrage de la charge avec AWS ELB

  • 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 :

Équilibrage de la charge avec AWS ELB

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

Équilibrage de la charge avec AWS ELB

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.

Équilibrage de la charge avec AWS ELB

Équilibrage de la charge avec AWS ELB

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 plus gai et plus pratique..

Équilibrage de la charge avec AWS ELB

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 :

Équilibrage de la charge avec AWS ELB

Équilibrage de la charge avec AWS ELB

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 :

Équilibrage de la charge avec AWS ELB

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 un autre cas d'utilisation sur le sujet du besoin d'Elastic IP. Regardez, nous voyons 3 adresses IP, mais elles ne resteront pas ici pour toujours :

Équilibrage de la charge avec AWS ELB

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.

Équilibrage de la charge avec AWS ELB

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 :

  1. Elastic Load Balancing.
  2. Fonctionnalités d'Elastic Load Balancing.

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster