Eu tenho N
webapps. Cada aplicativo da web é servido por um nome de host diferente no meu domínio e implantado em 2 instâncias em execução na AWS. Em outras palavras, tenho 2N
instâncias, divididas em pares que executam aplicativos da N
web distintos.
Gostaria de configurar um único AWS Elastic Load Balancer que faça proxy de uma solicitação para uma das duas instâncias que a atendem com base no Host
cabeçalho. Isso é possível usando um único ELB ou precisarei implantar N
ELBs, um para cada par de instâncias?
amazon-web-services
amazon-elb
thesamet
fonte
fonte
Respostas:
Um único ELB roteia o tráfego para exatamente um conjunto de instâncias e distribui o tráfego recebido para todas as instâncias "por trás" dele. Ele não roteia seletivamente o tráfego com base em qualquer análise da camada 7 do tráfego, como o
Host:
cabeçalho.Você precisa de um ELB para cada conjunto de instâncias. Como você descreve, esse é um ELB para cada aplicativo da web.
Se o seu objetivo principal de executar o ELB for descarregar o SSL usando um certificado curinga (eu tenho um sistema projetado assim, com dezenas de aplicativos vivendo em muitos domínios diferentes.my-wildcard-cert-domain.com), as instâncias "atrás", o ELB pode estar executando um proxy reverso, como o HAProxy (ou várias outras alternativas, como o Varnish), que pode tomar decisões de roteamento da camada 7 e encaminhar o tráfego para o subconjunto apropriado de máquinas por trás deles, o que também permite mais sofisticado balanceamento de carga e tem a vantagem de fornecer estatísticas e contadores de tráfego, agregados e separados.
As instâncias intermediárias podem avaliar os
Host:
cabeçalhos (entre outras coisas) e até capturar o valor do cookie da sessão em seus logs para análise.Essa configuração também me permite executar vários aplicativos em subconjuntos de instâncias sobrepostos, quando apropriado, e fazer muitas outras coisas que o ELB por si só não suporta diretamente. Ele também retorna uma página "503" personalizada no caso em que um aplicativo fica sobrecarregado ou fica indisponível, o que o ELB não faz por conta própria. Eu descrevi dois servidores proxy aqui, por nenhum motivo específico além da sua menção ao número 2 na pergunta. Minha configuração na verdade tem 3, um para cada zona de disponibilidade na região em que isso é implantado.
fonte
Host:
cabeçalho. Esta resposta estava correta quando a escrevi em 2014, mas parece que é hora de uma atualização. Obrigado por trazer de volta à minha atenção.Em agosto de 2016, o Amazon ELB oferece dois tipos diferentes de balanceadores de carga:
Para o seu caso de uso, o Application Load Balancer parece ideal. No entanto, ele é limitado a 10 regras, portanto, só funcionará facilmente se o seu
N
não for maior que 10.fonte
Na sua lista de instâncias ec2, você vê duas instâncias, certo? Mas em cada instância você tem muitos aplicativos da web? Você usa host virtual para implantar cada um?
Você precisa de apenas um ELB para dividir a cobrança em seus hosts. Exemplo:
Eu acho que é melhor você me dar mais do seu cenário e talvez eu possa ajudá-lo.
Saudações.
ATUALIZAR
Se você tiver aplicativos da web diferentes nas instâncias do EC2, precisará de dois Elastic Load Balancers (ELB). Cada um para um par de instâncias. Totalmente, quatro instâncias
fonte
2N
aplicativos. Existem N aplicativos da web, duas instâncias para cada. Vou editar a pergunta para esclarecer isso.