Quero usar o Elastic Load Balancing (ELB) para solucionar o motivo pelo qual os usuários finais não conseguem acessar meu site.
Resolução
Os usuários finais podem enfrentar os seguintes problemas:
- O tempo limite da página expirou.
- O site está enfrentando problemas intermitentes.
- Há um atraso no carregamento da página.
- Eles recebem um erro de código de status HTTP 5XX.
Faça uma pesquisa e comparação de DNS
Verifique se seu domínio está sendo resolvido corretamente para o endereço IP dos nós do balanceador de carga para que a conexão do cliente seja enviada para o endereço IP correto.
Execute um dos seguintes comandos para obter os registros DNS do domínio:
dig affected domain
-ou-
nslookup affected domain
Em seguida, execute o comando a seguir para obter os registros DNS do balanceador de carga:
dig lb-xxxxxxxxxx.us-east-1.elb.amazonaws.com
Compare os registros DNS do domínio com os registros DNS do balanceador de carga. A verificação é bem-sucedida quando a lista de endereços IP coincidir. Se o balanceador de carga estiver em um estado de escalonamento horizontal, talvez haja mais endereços IP do que a resposta do DNS pode mostrar. Para obter todos os endereços IP, execute várias consultas de DNS.
Verifique o status de integridade das instâncias ou destinos de back-end do balanceador de carga
Uma instância ou destino de back-end não íntegro do Amazon Elastic Compute Cloud (Amazon EC2) pode afetar o roteamento. Se os destinos não estiverem íntegros, o serviço poderá estar inativo na instância de destino ou de back-end. Ou os balanceadores de carga não conseguem obter uma resposta da instância de destino ou de back-end.
Analise as verificações de integridade do tipo do seu balanceador de carga para determinar o status da instância ou do destino de back-end:
Observação: ao desativar o balanceamento de carga entre zonas, você afeta a forma como as solicitações são roteadas com Network Load Balancers e Classic Load Balancers. É possível configurar verificações de integridade em portas que não sejam portas de tráfego. No entanto, mesmo quando a instância de destino ou de back-end está íntegra, o destino pode não responder ao tráfego de entrada.
Conecte-se aos nós do balanceador de carga
Conecte diretamente os nós do balanceador de carga para testar o seguinte:
- É possível acessar os endereços IP do balanceador de carga que o DNS resolveu.
- O problema ocorre somente com a sub-rede de uma zona de disponibilidade específica.
Observe os endereços IP do balanceador de carga. Em seguida, tente se conectar aos endereços IP, um de cada vez. É uma prática recomendada usar a ferramenta curl para realizar essa verificação. Se você usa um navegador, o teste pode não funcionar devido às validações do certificado e ao cabeçalho do host.
Execute o seguinte comando:
curl -lvk protocol://ELB IP Address:port/path -H "Host: domain name"
Observação: substitua o protocolo, endereço IP do ELB, porta, caminho e nome de domínio por seus valores.
Se você receber uma resposta, verifique se a resposta é esperada ou se é um erro. Se a resposta for esperada, verifique o próximo endereço IP.
Verifique o balanceador de carga em busca de problemas de instância de back-end ou destino
Verifique o status da comunicação do balanceador de carga com a instância de back-end ou destino.
Confirme se os grupos de segurança, a lista de controle de acesso à rede (ACL de rede) e o roteamento permitem o acesso. Em seguida, faça login na instância de back-end ou destino. Com base no seu sistema operacional (SO), execute um dos seguintes comandos para confirmar se o serviço da web está escutando na porta configurada:
Windows:
netstat -an | findstr "LISTEN" | findstr "port"
Linux:
netstat -an | grep LISTEN | grep "port"
Observação: substitua a porta pela porta de escuta da instância de back-end ou destino que é usada ao registrar a instância de back-end ou destino no balanceador de carga.
Se a porta de escuta não estiver listada, o serviço da web está inativo.
Se a resposta mostrar que a porta está escutando, execute o seguinte comando:
curl -lvk protocol://localhost:port
Observação: substitua o protocolo pelo serviço de aplicação de escuta e a porta pela porta localhost.
Se você receber uma resposta do comando anterior, seu serviço da web está funcionando.
Também é possível iniciar uma conexão a partir de outra instância na mesma Amazon Virtual Private Cloud (Amazon VPC). Verifique se a conexão alcança e recebe uma resposta do serviço da web. A resposta mostra o que o balanceador de carga recebe quando você tenta se conectar à instância de back-end ou destino.
Informações relacionadas
Por que não consigo me conectar a um site hospedado na minha instância do EC2?