J'ai des N
webapps. Chaque application Web est desservie par un nom d'hôte différent dans mon domaine et déployée sur 2 instances exécutées dans AWS. En d'autres termes, j'ai des 2N
instances, divisées en paires qui exécutent N
des webapps distinctes.
Je souhaite configurer un seul AWS Elastic Load Balancer qui procurera une requête à l'une des deux instances qui la servent en fonction de l'en- Host
tête. Est-ce possible en utilisant un seul ELB ou je N
devrai déployer des ELB, un pour chaque paire d'instances?
amazon-web-services
amazon-elb
thesamet
la source
la source
Réponses:
Un seul ELB achemine le trafic vers exactement un ensemble d'instances et distribue le trafic entrant à toutes les instances "derrière". Il n'achemine pas le trafic de manière sélective sur la base d'une analyse de la couche 7 du trafic, telle que l'en-
Host:
tête.Vous avez besoin d' un ELB pour chaque ensemble d'instances. Comme vous le décrivez, c'est un ELB pour chaque webapp.
Si votre objectif principal pour exécuter ELB est de décharger le SSL à l'aide d'un certificat générique (j'ai un système conçu comme celui-ci, avec des dizaines d'applications vivant sur many-different-domains.my-wildcard-cert-domain.com), alors les instances "derrière" l'ELB pourrait exécuter un proxy inverse tel que HAProxy (ou plusieurs autres alternatives, comme Varnish) qui peut prendre des décisions de routage de couche 7, puis transférer le trafic vers le sous-ensemble approprié de machines derrière eux, ce qui permet également des opérations plus sophistiquées. l'équilibrage de charge et a l'avantage de vous fournir des statistiques et des compteurs de trafic, agrégés et séparés.
Les instances intermédiaires ^^^^ peuvent évaluer les en-
Host:
têtes (entre autres) et même capturer la valeur du cookie de session dans leurs journaux pour analyse.Cette configuration me permet également d'exécuter plusieurs applications sur des sous-ensembles d'instances qui se chevauchent, le cas échéant, et de faire beaucoup d'autres choses que ELB en soi ne prend pas directement en charge. Il renvoie également une page "503" personnalisée dans le cas où une application est surchargée ou devient indisponible, ce que ELB ne fait pas de lui-même. J'ai représenté 2 serveurs proxy ici, sans autre raison que votre mention du numéro 2 dans la question. Ma configuration a en fait 3, un pour chaque zone de disponibilité dans la région où cela est déployé.
la source
Host:
tête. Cette réponse était correcte lorsque je l'ai écrite en 2014, mais il semble qu'il soit temps pour une mise à jour. Merci de l'avoir porté à mon attention.Depuis août 2016, Amazon ELB propose deux types d'équilibreurs de charge différents:
Pour votre cas d'utilisation, Application Load Balancer semble idéal. Il est limité à 10 règles, cependant, il ne fonctionnera donc facilement que si votre
N
taille n'est pas supérieure à 10.la source
Sur votre liste d'instances ec2, vous voyez deux instances, non? Mais sur chaque instance, avez-vous de nombreuses applications Web? Vous utilisez un hôte virtuel pour déployer chacun?
Vous avez besoin d'un seul ELB pour partager la charge sur vos hôtes. Exemple:
Je pense que c'est mieux que vous me donniez plus de votre scénario et peut-être que je peux vous aider.
Cordialement.
MISE À JOUR
Si vous disposez de différentes applications Web sur les instances EC2, vous devez disposer de deux Elastic Load Balancers (ELB). Chacun pour une paire d'instances. Au total, quatre instances
la source
2N
applications. Il existe N webapps, deux instances pour chacune. Je vais modifier la question pour clarifier cela.