AWS Associate

Configurando o AWS ELB

O ELB permite configurar muitos aspectos do balanceador de carga, incluindo tempo limite de conexão ociosa, balanceamento de carga entre zonas, drenagem de conexão, protocolo proxy, sessões sticky e verificações de segurança. As configurações podem ser modificadas usando o AWS Management Console ou a Interface de linha de comando (CLI).

Tempo limite de conexão ociosa

Para cada solicitação que um cliente faz através de um balanceador de carga, o balanceador de carga mantém duas conexões. Uma conexão é com o cliente e a outra conexão é para a instância de back-end. Para cada conexão, o balanceador de carga gerencia um tempo limite ocioso que é acionado quando nenhum dado é enviado sobre a conexão por um período de tempo especificado. Após o período de tempo limite ocioso ter decorrido, se nenhum dado foi enviado ou recebido, o balanceador de carga fecha a conexão.

Por padrão, o Elastic Load Balancing ajusta o tempo de espera ocioso para 60 segundos para ambas as conexões. Se uma solicitação HTTP não for concluída dentro do período de tempo limite ocioso, o balanceador de carga fecha a conexão, mesmo que os dados ainda estejam sendo transferidos. Você pode alterar a configuração de tempo limite ocioso para as conexões para garantir que operações longas, como os carregamentos de arquivos, tenham tempo para serem concluídas.

Se você usa listeners HTTP e HTTPS, recomenda-se que você ative a opção keep-alive para suas instâncias da Amazon EC2. Você pode ativar keep-alive nas configurações do seu servidor web ou nas configurações do kernel para suas instâncias da Amazon EC2. Keep-alive, quando ativado, permite que o balanceador de carga reutilize conexões para sua instância back-end, o que reduz a utilização da CPU.

Para garantir que o balanceador de carga seja responsável por fechar as conexões ao seu instância de back-end, certifique-se de que o valor que você definiu para manter o tempo de vida é maior do que a configuração de tempo limite ocioso em seu balanceador de carga.

Balanceamento de carga entre zonas

Para garantir que o tráfego do pedido seja encaminhado uniformemente em todas as instâncias de back-end para o seu balanceador de carga, independentemente da Zona de Disponibilidade na qual estão localizadas, você deve ativar o balanceamento de carga entre zonas no balanceador de carga. O balanceamento de carga em zona cruzada reduz a necessidade de manter um número equivalente de instâncias de back-end em cada Zona de Disponibilidade e melhora a capacidade do seu aplicativo para lidar com a perda de uma ou mais instâncias de back-end.

No entanto, ainda é recomendável que você mantenha números aproximadamente equivalentes de instâncias em cada Zona de Disponibilidade para maior tolerância a falhas.

Para ambientes onde os clientes armazenam pesquisas de DNS, as solicitações recebidas podem favorecer uma das Zonas de Disponibilidade. Usando o balanceamento de carga de zona cruzada, esse desequilíbrio na carga de solicitação é distribuído em todas as instâncias de back-end disponíveis na região, reduzindo o impacto de clientes mal configurados.

Drenagem de conexão

Você deve habilitar a drenagem da conexão para garantir que o balanceador de carga pare de enviar solicitações para instâncias que estejam desreguladas, mantendo as conexões existentes abertas. Isso permite que o balanceador de carga complete pedidos feitos nessas instâncias.

Quando você habilita a drenagem da conexão, você pode especificar um tempo máximo para o balanceador de carga manter conexões vivas antes de denunciar a instância como cancelada. O valor máximo de tempo limite pode ser definido entre 1 e 3,600 segundos (o padrão é 300 segundos). Quando o limite máximo de tempo é atingido, o balanceador de carga fecha as conexões à instância de cancelamento de registro.

Proxy Protocol

Quando você usa TCP ou SSL para conexões front-end e back-end, o balanceador de carga encaminha solicitações para as instâncias back-end sem modificar os cabeçalhos das solicitações. Se você habilitar o Proxy Protocol, um cabeçalho legível para humanos é adicionado ao cabeçalho da solicitação com informações de conexão, como o endereço IP de origem, o endereço IP de destino e os números de portas.

O cabeçalho é então enviado para a instância back-end como parte da solicitação.

Antes de usar o Proxy Protocol, verifique se o seu balanceador de carga não está por trás de um servidor proxy com Proxy Protocol ativado. Se Proxy Protocol estiver habilitado no servidor proxy e no balanceador de carga, o balanceador de carga adicionará outro cabeçalho ao pedido, que já possui um cabeçalho do servidor proxy. Dependendo de como sua instância de back-end está configurada, essa duplicação pode resultar em erros.

Sticky Sessions

Por padrão, um balanceador de carga encaminha cada solicitação de forma independente para a instância registrada com a menor carga. No entanto, você pode usar o recurso de sessão sticky (também conhecido como afinidade de sessão), o que permite que o balanceador de carga vincule a sessão de um usuário a uma instância específica. Isso garante que todos os pedidos do usuário durante a sessão sejam enviados para a mesma instância.

A chave para gerenciar sessões consistentes é determinar quanto tempo seu balanceador de carga deve sempre rotear a solicitação do usuário para a mesma instância. Se o seu aplicativo tiver seu próprio cookie de sessão, você pode configurar o Elastic Load Balancing para que o cookie da sessão acompanhe a duração especificada pelo cookie de sessão do aplicativo. Se o seu aplicativo não possuir seu próprio cookie de sessão, você pode configurar o Elastic Load Balancing para criar um cookie de sessão especificando sua própria duração de adesão. Elastic Load Balancing cria um cookie chamado AWSELB que é usado para mapear a sessão para a instância.

Verificações de saúde

O ELB suporta verificações de saúde para testar o estado das instâncias do Amazon EC2 por trás de um balanceador de carga Elastic Load Balancing. O status das instâncias saudáveis ​​no momento da verificação de integridade é denominado InService.

O status de qualquer instância que não é saudável no momento da verificação de integridade é OutOfService. O balanceador de carga executa verificações de integridade em todas as instâncias registradas para determinar se a instância está em estado saudável ou em estado unhealthy. Uma verificação de integridade é um ping, uma tentativa de conexão ou uma página que é verificada periodicamente.

Você pode definir o intervalo de tempo entre verificações de integridade e também a quantidade de tempo para aguardar para responder caso a página de verificação de saúde inclua um aspecto computacional.

Finalmente, você pode definir um limite para o número de falhas consecutivas de verificação de saúde antes que uma instância seja marcada como unhealthy.

Atualizações por trás de um ELB

Os aplicativos de longa duração acabarão por ser mantidos e atualizados com uma versão mais recente do ELB. Ao usar as instâncias da Amazon EC2 que se estendem atrás de um balanceador de carga Elastic Load Balancing, você pode cancelar o registro dessas instâncias Amazon EC2 de longa duração associadas a um balanceador de carga manualmente e, em seguida, registrar-se novamente ao lançar instâncias da Amazon EC2 que você iniciou com as novas atualizações instaladas

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *