Ir para o conteúdo

Como faço para solucionar problemas e corrigir falhas nas verificações de integridade de Classic Load Balancers?

6 minuto de leitura
0

Quero solucionar problemas de instâncias por trás do meu Classic Load Balancer que falham nas verificações de integridade.

Resolução

O Elastic Load Balancing (ELB) oferece suporte a Application Load Balancers, Network Load Balancers e Classic Load Balancers. Para solucionar problemas de falhas nas verificações de integridade do seu Classic Load Balancer, é possível executar o runbook AWSSupport-TroubleshootELBHealthChecks. O runbook automatiza a análise das métricas de verificação de integridade do seu painel do Amazon CloudWatch e valida as configurações de rede no Classic Load Balancer e em seus destinos. Em destinos gerenciados pelo AWS Systems Manager, o runbook fornece comandos avançados de diagnóstico com retenção opcional de logs no Amazon S3. Essa solução se aplica ao tipo de destino da instância.

As instâncias executadas em Classic Load Balancers podem falhar nas verificações de integridade pelos seguintes motivos:

Problemas de conectividade entre o balanceador de carga e o backend

  • Certifique-se de que o backend permita o tráfego de verificação de integridade. Para verificar as regras do seu grupo de segurança, consulte Regras recomendadas para os grupos de segurança do balanceador de carga. Para a instância de backend, consulte Security groups for instances in a virtual private cloud (VPC) (Grupos de segurança para instâncias numa nuvem privada virtual (VPC)).
  • A lista de controle de acesso à rede (ACL da rede) da sub-rede com o balanceador de carga e o backend deve permitir o tráfego de verificação de integridade. Para verificar as regras da ACL da rede, consulte Network ACLs for load balancers in a VPC (Configure ACLs da rede para balanceadores de carga numa VPC).
  • Os firewalls no nível da instância ou do sistema operacional no backend devem permitir a entrada e saída do tráfego de verificação de integridade.
  • A utilização da memória e da CPU na instância de backend deve estar dentro dos limites aceitáveis. Se sua utilização da memória ou da CPU for muito alta, adicione mais backends ou faça upgrade dos backends para um tipo de instância maior.
  • Recursos extras devem permitir o tráfego de verificação de integridade. O backend pode encaminhar a solicitação de verificação de integridade para um recurso extra. Se a dependência extra não responder ou demorar muito para responder, a verificação de integridade expira e falha. Certifique-se de que o recurso extra responda às solicitações de verificação de integridade.

Problemas de configuração com sua aplicação

  • Verifique se a aplicação está em execução. Por exemplo, se você estiver executando o Apache em uma instância Linux, use o comando sudo service httpd status para confirmar se o Apache está em execução.
  • A aplicação deve estar recebendo na porta de verificação de integridade. Para confirmar se o servidor está em um estado de recepção para a porta de verificação de integridade, execute o comando netstat -ant no servidor. Verifique a porta de configuração da aplicação para verificar se ele está em execução. Para simular uma conexão TCP entre o balanceador de carga e o backend, execute o comando telnet <backend private IP> <health-check port> na instância. Se a saída estiver Conectada, o backend está recebendo na porta de verificação de integridade.
  • A aplicação deve ser configurada para responder às solicitações com um cabeçalho de host personalizado. Para verificações de integridade de HTTP e HTTPS, os Classic Load Balancers definem o cabeçalho como o endereço IP privado com a interface de rede primária do backend. Eles também definem o agente do usuário como ELB-HealthChecker/1.0. Se o backend responder somente às solicitações com um cabeçalho de host personalizado ou um agente de usuário, a solicitação de verificação de integridade falhará.
  • A aplicação deve estar recebendo na interface de rede primária do backend. Os Classic Load Balancers se conectam à interface de rede primária da instância de backend. Verifique se a aplicação está recebendo na interface de rede primária da instância de backend. Isso permite que o backend envie uma resposta para as solicitações de verificação de integridade.

A resposta "200 OK" está ausente no backend para uma solicitação de verificação de integridade

  • O caminho de ping deve ser válido. Se você não configurar o arquivo especificado no caminho de ping no backend, ele pode responder com 404 Not Found. Isso faz com que a verificação de integridade falhe.
    Observação: o valor padrão do caminho de ping é /index.html. Se você não tiver um arquivo index.html no backend, crie um. Ou é possível alterar o valor do caminho de ping para um nome de arquivo no backend.
  • Você não configurou corretamente o redirecionamento no backend. Um redirecionamento configurado incorretamente pode resultar em um código de resposta 301 ou 302 e em falhas nas verificações de integridade. Por exemplo, se você tiver um redirecionamento de HTTP:80 para HTTPS:443 no backend, as verificações de integridade de HTTP na porta 80 falharão. Você deve alterar a verificação de integridade para HTTPS e a porta de verificação de integridade para 443. 
    Observação: é possível simular a solicitação de verificação de integridade enviada pelo balanceador de carga. Use o seguinte comando curl de uma instância na sub-rede associada ao balanceador de carga:
    curl -Ivk http[s]://<private-IP-address-of-the-backend-instance>:<health-check-port>/<health-check-target-page>

Problemas com SSL

  • Todos os protocolos e cifras devem corresponder. Para verificações de integridade HTTPS ou SSL, o balanceador de carga e o backend devem usar o mesmo protocolo e cifra. As capturas de pacotes feitas na instância de backend mostram as cifras e o protocolo compatíveis com o balanceador de carga. Isso é encontrado na saudação do cliente que o balanceador de carga envia. A instância de backend registrada deve ser compatível com uma ou mais cifras correspondentes e com um protocolo enviado pelo balanceador de carga.
  • O balanceador de carga não envia o cabeçalho SNI (Server Name Indication) quando realiza uma verificação de integridade. Por exemplo, a verificação de integridade é HTTPS/SSL. Se a instância de backend estiver configurada para responder ao handshake SSL com base nas informações específicas do SNI, o handshake SSL falhará. Isso ocorre porque o servidor envia um RST após a saudação do cliente. Configure o servidor de backend para responder independentemente do SNI. Ou, em vez disso, é possível usar a verificação de integridade do TCP.

Informações relacionadas

Instâncias registradas para seu Classic Load Balancer

AWS OFICIALAtualizada há 6 meses