Como posso usar o Elastic Load Balancing para solucionar o motivo pelo qual meu site não pode ser acessado?

5 minuto de leitura
0

Não é possível acessar meu site. Como posso usar o Elastic Load Balancing (ELB) para entender por que os usuários finais não podem acessar meu site?

Descrição breve

Há vários motivos pelos quais você pode não conseguir acessar seu site. Para encontrar o melhor caminho para solucionar o problema, responda primeiro a estas perguntas:

  • O site não pode ser acessado e você está recebendo uma página de tempo limite excedido padrão do navegador?
  • O problema é intermitente?
  • A página está carregando após um atraso?
  • A página está mostrando um erro como HTTP 5XX?

Resolução

Faça uma pesquisa de DNS e comparação

Confirme se o domínio que está enfrentando esse problema está sendo resolvido corretamente para o endereço IP dos nós do balanceador de carga. Isso garante que a tentativa de conexão que os clientes estão tentando seja enviada para o endereço IP correto.

1.    Faça uma pesquisa de DNS:

dig <affected domain>

ou

nslookup <affected domain>

2.    Agora, faça uma pesquisa de DNS contra o DNS do balanceador de carga para comparação. Por exemplo:

dig lb-xxxxxxxxxx.us-east-1.elb.amazonaws.com

Essa verificação será bem-sucedida se a lista de endereços IP coincidir. Se o balanceador de carga estiver em um estado de expansão, poderá haver mais endereços IP do que uma única resposta DNS pode mostrar. Nesse caso de uso, talvez essa comparação não seja suficiente. É possível que seja necessário executar várias consultas de DNS para obter todos os IPs listados.

Verifique o status do back-end/destinos

Verifique o status da verificação de integridade do back-end/destino. Os balanceadores de carga têm uma verificação de integridade configurada que eles usam para verificar o status do back-end/destinos. Dependendo do tipo de balanceador de carga, back-end/destinos não íntegros podem afetar o roteamento. Verifique a integridade do balanceador de carga, dependendo do tipo:

Observação:

  • Habilitar ou desabilitar o cruzamento de zonas pode afetar a forma como as solicitações são roteadas com NLB e CLBs.
  • Você pode configurar verificações de integridade em portas diferentes das portas de tráfego. Nesse caso, mesmo que o destino/backup esteja íntegro, o destino poderá não responder ao tráfego enviado a ele.

Se a verificação de integridade mostrar os destinos como não íntegros, o serviço poderá se tornar inativo nas instâncias de destino/back-end. Ou os balanceadores de carga não conseguem obter uma resposta das instâncias de destino/back-end.

Conecte diretamente aos nós do balanceador de carga

Conecte diretamente aos nós do balanceador de carga. Esse teste confirma se todos os endereços IP do balanceador de carga que foram resolvidos pelo DNS anteriormente estão acessíveis. Esse teste também confirma se o problema está acontecendo somente com a sub-rede de uma zona de disponibilidade (AZ) específica.

Anote os endereços IP do balanceador de carga e tente estabelecer uma conexão com esses endereços IP, um de cada vez. Usar um navegador para esse teste pode não funcionar devido às validações de certificado e ao cabeçalho do host. Em vez disso, é prática recomendada usar a ferramenta curl para realizar essa verificação com esse formato. Observe que você deve substituir<protocol>,<ELB IP Address>, <port>, <path> e <domain name> pelos valores corretos de sua configuração da Web.

curl -lvk <protocol>://<ELB IP Address>:<port>/<path> -H "Host: <domain name>"

Por exemplo:

Eg: curl -lvk https://3.2.1.1:443/test -H "Host: example.com"

Se sua tentativa obtiver uma resposta, verifique se essa é a resposta esperada ou um erro. Se a resposta for satisfatória, verifique o próximo endereço IP.

Verifique o balanceador de carga quanto a problemas de back-end/destino

Se você confirmar a conectividade com todos os endereços IP usados pelo balanceador de carga, confirme o status de comunicação do balanceador de carga com o destino/back-end.

1.    Primeiro, verifique os grupos de segurança, a ACL da rede e o roteamento.

2.    Se eles estiverem permitindo o acesso, faça login no destino/back-end. Depois de estabelecer o acesso, confirme se o serviço Web está escutando na porta configurada usando esse comando. Substitua "port" pela porta de escuta do destino/back-end. Essa é a porta usada ao registrar o destino/back-end no balanceador de carga.

Windows:

netstat -an | findstr "LISTEN" | findstr "port"

Linux:

netstat -an | grep LISTEN | grep "port"

3.    Se você não vir nada listado após mencionar a porta de escuta esperada, o serviço da Web está inativo. Continue a solucionar o problema do status do serviço.

4.    Se a resposta mostrar que a porta está escutando, tente se conectar a ela usando curl. Substitua <protocol> pelo serviço de aplicação de escuta e <port> pela porta localhost:

curl -lvk <protocol>://localhost:<port>

Se você receber uma resposta desse comando, seu serviço da Web está funcionando. Durante essa fase de teste, você pode iniciar uma conexão de outra instância do Amazon Elastic Compute Cloud (Amazon EC2) na mesma Amazon Virtual Private Cloud (Amazon VPC). Verifique se essa tentativa de conexão é realizada com êxito e recebe uma resposta do serviço da Web. Essa resposta também mostra o que é recebido pelo balanceador de carga quando você tenta se conectar ao destino/back-end.


Informações relacionadas

Como soluciono problemas de um site que não responde hospedado na minha instância do EC2?

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos