Balanceamento de carga de uma camada - AWS OpsWorks

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Balanceamento de carga de uma camada

Importante

O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no AWS re:POST ou por meio do Premium AWS Support.

AWS OpsWorks O Stacks fornece duas opções de balanceamento de carga, Elastic Load Balancing HAProxye, que normalmente são usadas para balancear a carga nas instâncias de uma camada de servidor de aplicativos. Este tópico descreve os benefícios e limitações de cada uma para ajudar você a decidir qual opção escolher ao adicionar o balanceamento de carga para uma camada. Em alguns casos, a melhor abordagem é usar as duas opções.

Terminação SSL

A HAProxy camada incorporada não lida com a terminação SSL; você deve encerrar a SSL nos servidores. A vantagem dessa abordagem é que o tráfego é criptografado até chegar aos servidores. No entanto, os servidores devem lidar com a descriptografia, o que aumenta a carga do servidor. Além disso, é necessário colocar os certificados SSL em servidores de aplicativos, que são mais acessíveis aos usuários.

Com o Elastic Load Balancing, é possível encerrar o SSL no balanceador de carga. Isso reduz a carga nos servidores de aplicativos, mas o tráfego entre o balanceador de carga e o servidor não é criptografado. O Elastic Load Balancing também permite encerrar o SSL no servidor, mas isso é algo complicado de configurar.

Escalabilidade

Se o tráfego de entrada exceder a capacidade de um balanceador de HAProxy carga, você deverá aumentar sua capacidade manualmente.

O Elastic Load Balancing escala automaticamente para processar o tráfego. Para garantir que um balanceador de carga do Elastic Load Balancing tenha capacidade suficiente para suportar a carga esperada quando ele for lançado on-line, é possível preparar o balanceador de carga.

Falha no balanceamento de carga

Se a instância que hospeda seu HAProxy servidor falhar, todo o site poderá ficar off-line até que você possa reiniciar a instância.

O Elastic Load Balancing é mais resistente a falhas do que. HAProxy Por exemplo, ele provisiona nós de balanceamento de carga em cada zona de disponibilidade que tem EC2 instâncias registradas. Se o serviço em uma região for interrompido, os outros nós permanecem suportando o tráfego de entrada. Para obter mais informações, consulte Elastic Load Balancing Concepts.

Intervalo ocioso

Ambos os load balancers encerram uma conexão se um servidor estiver inativo por mais de um tempo limite de ociosidade especificado.

  • HAProxy — O valor do tempo limite de inatividade não tem um limite superior.

  • Elastic Load Balancing: o valor padrão do intervalo ocioso é de 60 segundos, com máximo de 3.600 segundos (60 minutos).

O limite de tempo ocioso do Elastic Load Balancing é suficiente para a maioria das finalidades. Recomendamos usar HAProxy se você precisar de um tempo limite de inatividade mais longo. Por exemplo:

  • Uma conexão HTTP de longa duração que é usada para enviar notificações.

  • Uma interface administrativa usada para executar tarefas que podem demorar mais de 60 minutos.

Mapeamento com base em URL

Você pode querer ter um load balancer encaminhar uma solicitação recebida para um servidor específico com base na solicitação do URL. Por exemplo, suponha que você tem um grupo de dez servidores de aplicativos que fornece suporte a um aplicativo de comércio eletrônico online. Oito dos servidores processam o catálogo e dois processam pagamentos. Direcione todas as solicitações HTTP relacionadas ao pagamento para os servidores de pagamento, com base no URL solicitado. Nesse caso, você direcionaria tudo o URLs que incluísse “pagamento” ou “finalização da compra” para um dos servidores de pagamento.

Com HAProxy, você pode usar o mapeamento baseado em URL para direcionar o conteúdo URLs de uma string especificada para servidores específicos. Para usar o mapeamento baseado em URL com o AWS OpsWorks Stacks, você deve criar um arquivo de HAProxy configuração personalizado substituindo o haproxy-default.erb modelo no livro de receitas integrado. haproxy Para obter mais informações, consulte o Manual de HAProxy configuração Uso de modelos personalizados e. Não é permitido usar o mapeamento baseado em URL para solicitações HTTPS. Uma solicitação HTTPS é criptografada, portanto, não HAProxy há como examinar a URL da solicitação.

O Elastic Load Balancing tem suporte limitado para mapeamento de URL. Para obter mais informações, consulte Listener Configurations for Elastic Load Balancing. (Configurações do ouvinte para Elastic Load Balancing).

Recomendação: Recomendamos usar o Elastic Load Balancing para balanceamento de carga, a menos que você tenha requisitos que só possam ser atendidos por. HAProxy Nesse caso, a melhor abordagem pode ser combinar os dois usando o Elastic Load Balancing como um balanceador de carga front-end que distribui o tráfego de entrada para um conjunto de servidores. HAProxy Para fazer isso:

  • Configure uma HAProxy instância em cada uma das zonas de disponibilidade da sua pilha para distribuir solicitações aos servidores de aplicativos da zona.

  • Atribua as HAProxy instâncias a um balanceador de carga do Elastic Load Balancing, que então distribui as solicitações recebidas para os balanceadores de carga. HAProxy

Essa abordagem permite que você use HAProxy o mapeamento baseado em URL para distribuir diferentes tipos de solicitações aos servidores de aplicativos apropriados. No entanto, se um dos HAProxy servidores ficar off-line, o site continuará funcionando porque o balanceador de carga do Elastic Load Balancing distribui automaticamente o tráfego de entrada para os servidores íntegros. HAProxy Observe que você deve usar o Elastic Load Balancing como balanceador de carga front-end; um HAProxy servidor não pode distribuir solicitações para outros servidores. HAProxy