Equilibrage de charge d'une couche - AWS OpsWorks

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Equilibrage de charge d'une couche

Important

Le AWS OpsWorks Stacks le service a pris fin le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez le AWS Support L'équipe sur AWS Re:post ou via AWS Support premium.

AWS OpsWorks Stacks propose deux options d'équilibrage de charge, Elastic Load Balancing et Elastic Load Balancing HAProxy, qui sont généralement utilisées pour équilibrer la charge entre les instances d'une couche de serveur d'applications. Cette rubrique décrit les avantages et les limites de chacune pour vous aider à déterminer quelle option choisir lors de l'ajout d'un équilibrage de charge à une couche. Dans certains cas, la meilleure approche consiste à utiliser les deux.

SSLRésiliation

La HAProxy couche intégrée ne gère pas SSL la terminaison ; vous devez la terminer SSL sur les serveurs. L'avantage de cette approche est que le trafic est chiffré jusqu'à ce qu'il atteigne les serveurs. Toutefois, les serveurs doivent gérer le déchiffrement, ce qui augmente la charge du serveur. En outre, vous devez placer vos SSL certificats sur les serveurs d'applications, qui sont plus accessibles aux utilisateurs.

Avec Elastic Load Balancing, vous pouvez vous connecter SSL à l'équilibreur de charge. Cela réduit la charge sur vos serveurs d'applications, mais le trafic entre l'équilibreur de charge et le serveur n'est pas chiffré. Elastic Load Balancing vous permet également de vous connecter SSL au serveur, mais sa configuration est un peu compliquée.

Mise à l'échelle

Si le trafic entrant dépasse la capacité d'un équilibreur de HAProxy charge, vous devez augmenter sa capacité manuellement.

Elastic Load Balancing s'adapte automatiquement pour gérer le trafic entrant. Pour vous assurer qu'un équilibreur de charge Elastic Load Balancing dispose d'une capacité suffisante pour gérer la charge attendue lors de sa première mise en ligne, vous pouvez le préchauffer.

Échec de l'équilibreur de charge

Si l'instance hébergeant votre HAProxy serveur tombe en panne, l'ensemble de votre site peut être mis hors ligne jusqu'à ce que vous puissiez redémarrer l'instance.

Elastic Load Balancing est plus résistant aux défaillances queHAProxy. Par exemple, il fournit des nœuds d'équilibrage de charge dans chaque zone de disponibilité contenant EC2 des instances enregistrées. Si le service d'une zone est interrompu, les autres nœuds continuent à gérer le trafic entrant. Pour plus d'informations, consultez Elastic Load Balancing Concepts.

Délai d'inactivité

Les deux équilibreurs de charge mettent une connexion hors service si un serveur est inactif pendant plus d'une valeur de délai d'inactivité spécifiée.

  • HAProxy— La valeur du délai d'inactivité n'a pas de limite supérieure.

  • Elastic Load Balancing — La valeur du délai d'inactivité par défaut est de 60 secondes, avec un maximum de 3 600 secondes (60 minutes).

La limite de temps d'inactivité d'Elastic Load Balancing est suffisante dans la plupart des cas. Nous vous recommandons de l'utiliser HAProxy si vous avez besoin d'un délai d'inactivité plus long. Par exemple :

  • HTTPConnexion de longue durée utilisée pour les notifications push.

  • Une interface d'administration que vous utilisez pour exécuter des tâches susceptibles de durer un maximum de 60 minutes.

URLCartographie basée sur

Vous souhaiterez peut-être qu'un équilibreur de charge transfère une demande entrante à un serveur particulier en fonction de URL la demande. Par exemple, supposons que vous ayez un groupe de dix serveurs d'applications qui prend en charge une application de commerce en ligne. Huit des serveurs gèrent le catalogue et deux gèrent les paiements. Vous souhaitez diriger toutes les HTTP demandes liées au paiement vers les serveurs de paiement, en fonction de la demande. URL Dans ce cas, vous dirigerez tout ce URLs qui inclut le « paiement » ou le « paiement » vers l'un des serveurs de paiement.

AvecHAProxy, vous pouvez utiliser le mappage URL basé pour diriger le URLs contenu d'une chaîne spécifiée vers des serveurs particuliers. Pour utiliser le mappage URL basé sur AWS OpsWorks Stacks, vous devez créer un fichier de HAProxy configuration personnalisé en remplaçant le haproxy-default.erb modèle dans le livre de recettes haproxy intégré. Pour plus d'informations, consultez le manuel HAProxy de configuration etUtilisation de modèles personnalisés. Vous ne pouvez pas utiliser le mappage URL basé sur les HTTPS demandes. Une HTTPS demande est cryptée, il n'y HAProxy a donc aucun moyen de l'examinerURL.

Elastic Load Balancing propose un support limité pour le URL mappage. Pour de plus amples informations, veuillez consulter Écouteurs de votre Classic Load Balancer.

Recommandation : Nous vous recommandons d'utiliser Elastic Load Balancing pour l'équilibrage de charge, sauf si vous avez des exigences qui ne peuvent être traitées que parHAProxy. Dans ce cas, la meilleure approche consiste peut-être à combiner les deux en utilisant Elastic Load Balancing comme équilibreur de charge frontal qui distribue le trafic entrant vers un ensemble de HAProxy serveurs. Pour cela :

  • Configurez une HAProxy instance dans chacune des zones de disponibilité de votre stack pour distribuer les demandes aux serveurs d'applications de la zone.

  • Assignez les HAProxy instances à un équilibreur de charge Elastic Load Balancing, qui distribue ensuite les demandes entrantes aux équilibreurs de HAProxy charge.

Cette approche vous permet d'utiliser HAProxy le mappage URL basé sur des s pour distribuer différents types de demandes aux serveurs d'applications appropriés. Toutefois, si l'un des HAProxy serveurs est hors ligne, le site continuera de fonctionner car l'équilibreur de charge Elastic Load Balancing distribue automatiquement le trafic entrant aux HAProxy serveurs sains. Notez que vous devez utiliser Elastic Load Balancing comme équilibreur de charge frontal ; un HAProxy serveur ne peut pas distribuer de demandes à d'autres HAProxy serveurs.