Équilibrage de charge avec AWS ELB

Salut tout le monde! Le cours commence aujourd'hui "AWS pour les développeurs", dans le cadre duquel nous avons organisé un webinaire thématique correspondant dédié à la révision ELB. Nous avons examiné les types d'équilibreurs et créé plusieurs instances EC2 avec un équilibreur. Nous avons également étudié d'autres exemples d'utilisation.

Équilibrage de charge avec AWS ELB

Après avoir écouté le webinaire, Vous serez:

  • comprendre ce qu'est AWS Load Balancing ;
  • connaître les types d'Elastic Load Balancer et ses composants ;
  • utilisez AWS ELB dans votre pratique.

Pourquoi avez-vous besoin de savoir cela ?

  • utile si vous envisagez de passer des examens de certification AWS ;
  • c'est un moyen simple de répartir la charge entre les serveurs ;
  • Il s'agit d'un moyen simple d'ajouter Lambda à votre service (ALB).

Mené une leçon ouverte Rishat Teregulov, ingénieur système dans une société de marketing pour le développement et le support de sites Web.

introduction

Ce qu'est un Elastic Load Balancer peut être vu dans le diagramme ci-dessous, qui montre un exemple simple :

Équilibrage de charge avec AWS ELB

Load Balancer accepte les demandes et les distribue entre les instances. Nous avons une instance distincte, il existe des fonctions Lambda et un groupe AutoScaling (un groupe de serveurs).

Types d'ELB AWS

1. Regardons les principaux types:

Équilibreur de charge classique. Le tout premier équilibreur de charge d'AWS fonctionne à la fois sur les couches 4 et 7 OSI, prenant en charge HTTP, HTTPS, TCP et SSL. Il fournit un équilibrage de charge de base sur plusieurs instances Amazon EC2 et fonctionne à la fois au niveau des requêtes et des connexions. Ouvrons-le (surligné en gris) :

Équilibrage de charge avec AWS ELB

Cet équilibreur est considéré comme obsolète, son utilisation est donc recommandée uniquement dans certains cas. Par exemple, pour les applications créées sur le réseau EC2‑Classic. En principe, personne ne nous empêche de le créer :

Équilibrage de charge avec AWS ELB

2. Équilibreur de charge réseau. Adapté aux charges de travail lourdes, fonctionne au niveau OSI Layer 4 (peut être utilisé dans EKS et ECS), TCP, UDP et TLS sont pris en charge.

Network Load Balancer achemine le trafic vers des cibles dans un Amazon VPC et est capable de traiter des millions de requêtes par seconde avec une latence ultra-faible. De plus, il est optimisé pour gérer les modèles de trafic avec des charges soudaines et changeantes.

3. Équilibreur de charge d'application. Fonctionne au niveau de la couche 7, prend en charge Lambda, prend en charge les règles au niveau de l'en-tête et du chemin, prend en charge HTTP et HTTPS.
Fournit un routage avancé des requêtes axé sur la fourniture d’applications construites sur des architectures modernes, notamment des microservices et des conteneurs. Dirige le trafic vers des cibles dans Amazon VPC en fonction du contenu de la demande.

Pour de nombreux utilisateurs, Application Load Balancer était le premier choix pour remplacer Classic Load Balancer, car TCP n’est pas aussi courant que HTTP.

Créons-le également, grâce à quoi nous aurons déjà deux équilibreurs de charge :

Équilibrage de charge avec AWS ELB

Composants d'équilibrage de charge

Composants courants d'équilibrage de charge (commun à tous les équilibreurs) :

  • Politique de journalisation des accès

— vos journaux d'accès ELB. Pour effectuer les réglages, vous pouvez aller dans Description et sélectionner le bouton « Modifier les attributs » :

Équilibrage de charge avec AWS ELB

Ensuite, nous spécifions S3Bucket - Stockage d'objets Amazon :

Équilibrage de charge avec AWS ELB

  • Schème

— équilibreur interne ou externe. La question est de savoir si votre LoadBalancer doit recevoir des adresses externes pour être accessible de l'extérieur, ou s'il s'agit de votre équilibreur de charge interne ;

  • Groupes de sécurité

— contrôle d'accès à l'équilibreur. Il s'agit essentiellement d'un pare-feu de haut niveau.

Équilibrage de charge avec AWS ELB

Équilibrage de charge avec AWS ELB

  • Sous-réseaux

— les sous-réseaux à l'intérieur de votre VPC (et, par conséquent, la zone de disponibilité). Les sous-réseaux sont spécifiés lors de la création. Si les VPC sont limités par région, les sous-réseaux sont limités par zones de disponibilité. Lors de la création d'un équilibreur de charge, il est préférable de le créer dans au moins deux sous-réseaux (ce qui est utile si des problèmes surviennent avec une zone de disponibilité) ;

  • Les auditeurs

— vos protocoles d'équilibrage. Comme mentionné précédemment, pour Classic Load Balancer, il peut s'agir de HTTP, HTTPS, TCP et SSL, pour Network Load Balancer - TCP, UDP et TLS, pour Application Load Balancer - HTTP et HTTPS.

Exemple pour un équilibreur de charge classique :

Équilibrage de charge avec AWS ELB

Mais dans l'Application Load Balancer, nous voyons une interface légèrement différente et une logique généralement différente :

Équilibrage de charge avec AWS ELB

Composants Load Balancer v2 (ALB et NLB)

Examinons maintenant de plus près les équilibreurs de la version 2, Application Load Balancer et Network Load Balancer. Ces équilibreurs ont leurs propres caractéristiques de composants. Par exemple, un concept tel que les groupes cibles est apparu - des instances (et des fonctions). Grâce à ce composant, nous avons la possibilité de préciser vers quel groupe cible nous souhaitons diriger le trafic.

Équilibrage de charge avec AWS ELB

Équilibrage de charge avec AWS ELB

En termes simples, dans les groupes cibles, nous spécifions les instances d'où viendra le trafic. Si dans le même Classic Load Balancer vous connectez simplement immédiatement l'intensité à l'équilibreur, alors dans l'Application Load Balancer vous devez d'abord :

  • créer un équilibreur de charge ;
  • créer un groupe cible ;
  • diriger via les ports requis ou les règles d'équilibrage de charge vers les groupes cibles requis ;
  • dans Groupes cibles, vous attribuez des instances.

Cette logique de fonctionnement peut paraître plus compliquée, mais en réalité elle est plus pratique.

Le composant suivant est Règles d'écoute (règles de routage). Cela s’applique uniquement à Application Load Balancer. Si dans Network Load Balancer, vous créez simplement un écouteur et qu'il envoie du trafic à un groupe cible spécifique, alors dans Application Load Balancer, tout plus amusant et pratique.

Équilibrage de charge avec AWS ELB

Disons maintenant quelques mots sur le composant suivant - IP élastique (adresses statiques pour NLB). Si les règles de routage des règles d'écoute affectaient uniquement l'Application Load Balancer, alors Elastic IP affectait uniquement le Network Load Balancer.

Créons un Network Load Balancer :

Équilibrage de charge avec AWS ELB

Équilibrage de charge avec AWS ELB

Et juste au cours du processus de création, nous verrons que nous avons la possibilité de sélectionner Elastic IP :

Équilibrage de charge avec AWS ELB

Elastic IP fournit une adresse IP unique qui peut être associée à différentes instances EC2 au fil du temps. Si une instance EC2 possède une adresse IP Elastic et que cette instance est résiliée ou arrêtée, vous pouvez immédiatement associer une nouvelle instance EC2 à une adresse IP Elastic. Cependant, votre application actuelle ne cessera pas de fonctionner, puisque les applications voient toujours la même adresse IP, même si le véritable EC2 a changé.

Ici un autre cas d'utilisation sur la raison pour laquelle Elastic IP est nécessaire. Écoutez, nous voyons 3 adresses IP, mais elles ne resteront pas ici pour toujours :

Équilibrage de charge avec AWS ELB

Amazon les modifie au fil du temps, peut-être toutes les 60 secondes (mais en pratique, bien sûr, moins souvent). Cela signifie que les adresses IP peuvent changer. Et dans le cas de Network Load Balancer, vous pouvez simplement lier une adresse IP et l'indiquer dans vos règles, politiques, etc.

Équilibrage de charge avec AWS ELB

Conclure

ELB assure la distribution automatique du trafic entrant sur plusieurs cibles (conteneurs, instances Amazon EC2, adresses IP et fonctions Lambda). ELB est capable de distribuer du trafic avec des charges variables à la fois au sein d'une seule zone de disponibilité et sur plusieurs zones de disponibilité. L'utilisateur peut choisir parmi trois types d'équilibreurs offrant une haute disponibilité, une mise à l'échelle automatique et une bonne protection. Tout cela est important pour garantir la tolérance aux pannes de vos applications.

Principaux avantages:

  • la haute disponibilité. Le contrat de service suppose une disponibilité de 99,99 % pour l'équilibreur de charge. Par exemple, plusieurs zones de disponibilité garantissent que le trafic est traité uniquement par des objets sains. En fait, vous pouvez équilibrer la charge sur l'ensemble de 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 diverses fonctionnalités de sécurité : gestion intégrée des certificats, authentification des utilisateurs et déchiffrement SSL/TLS. All Together fournit une gestion centralisée et flexible des paramètres TLS ;
  • élasticité. L'ELB peut gérer les changements soudains du trafic réseau. Et une intégration approfondie avec Auto Scaling donne à l'application suffisamment de ressources si la charge change, sans nécessiter d'intervention manuelle ;
  • souplesse. Vous pouvez utiliser des adresses IP pour acheminer les requêtes vers les cibles de vos applications. Cela offre une flexibilité lors de la virtualisation des applications cibles, donnant ainsi la possibilité d'héberger plusieurs applications sur une seule instance. Étant donné que les applications peuvent utiliser un seul port réseau et disposer de groupes de sécurité distincts, la communication entre les applications est simplifiée lorsque nous disposons, par exemple, d'une architecture basée sur des microservices ;
  • suivi et audit. Vous pouvez surveiller les applications en temps réel à l'aide des fonctionnalités Amazon CloudWatch. Nous parlons de métriques, de journaux, de suivi des demandes. En termes simples, vous serez en mesure d’identifier les problèmes et d’identifier les goulots d’étranglement des performances avec assez de précision ;
  • équilibrage de charge hybride. La possibilité d'équilibrer la charge entre les ressources sur site et AWS à l'aide du même équilibreur de charge facilite la migration ou l'extension des applications sur site vers le cloud. La gestion des pannes est également simplifiée grâce au cloud.

Si vous êtes intéressé par des détails, voici quelques liens utiles supplémentaires sur le site officiel d'Amazon :

  1. Équilibrage de charge élastique.
  2. Capacités d’équilibrage de charge élastique.

Source: habr.com

Ajouter un commentaire