Como Diagnosticar e Resolver Problemas Comuns de Conectividade de Instâncias EC2

Este guia abrangente ajuda você a solucionar e resolver problemas comuns de conectividade de rede de instâncias Amazon EC2. Aprenda passo a passo como diagnosticar problemas examinando Grupos de Segurança, NACLs, Tabelas de Roteamento, Gateways de Internet, Gateways NAT e peering de VPC. Inclui exemplos práticos e melhores práticas para garantir que suas instâncias EC2 estejam sempre acessíveis e se comunicando de forma eficaz.

Como Diagnosticar e Resolver Problemas Comuns de Conectividade em Instâncias EC2

Problemas de conectividade EC2 geralmente se resumem a um salto bloqueado: a instância, o grupo de segurança, as regras da sub-rede, a tabela de roteamento ou o caminho do gateway. Se você não consegue fazer SSH em uma instância EC2, acessar uma porta de aplicação ou conectar de uma instância a outra, percorra o caminho de rede em ordem, em vez de alterar regras aleatoriamente.

As verificações abaixo ajudam você a isolar onde o tráfego para e aplicar a menor correção que restaura o acesso.

Causas Comuns de Problemas de Conectividade EC2

Problemas de conectividade podem surgir de várias camadas da pilha de rede da AWS. Identificar a causa raiz geralmente envolve verificar uma combinação desses elementos:

  • Security Groups: São firewalls virtuais stateful anexados a interfaces de rede elásticas. Eles controlam o tráfego de entrada e saída no nível da instância.
  • Network Access Control Lists (NACLs): As NACLs operam no nível da sub-rede e fornecem uma camada adicional de filtragem stateless para o tráfego que entra e sai das sub-redes.
  • Route Tables: Elas determinam para onde o tráfego da sub-rede vai, como localmente dentro da VPC, para um internet gateway, para um NAT gateway ou para um transit gateway.
  • Estado da Instância e Configuração de Rede: Problemas com a própria instância EC2, como ela estar parada ou ter configurações incorretas de interface de rede.
  • Internet Gateway (IGW) / NAT Gateway: Para instâncias que precisam de acesso à internet, a configuração do IGW (para sub-redes públicas) ou do NAT Gateway (para sub-redes privadas) é crítica.
  • VPC Peering / Transit Gateway: Se estiver conectando entre VPCs, esses serviços de conectividade entre VPCs precisam estar configurados corretamente.

Diagnóstico e Resolução Passo a Passo

Comece com o sintoma e, em seguida, siga o caminho do pacote.

1. Verifique o Estado da Instância e a Conectividade Básica de Rede

Antes de mergulhar em configurações de rede complexas, certifique-se de que a própria instância esteja em um estado saudável e tenha configurações básicas de rede:

  • Verificações de status da instância: No console EC2, selecione a instância e verifique a guia "Status checks". As verificações do sistema e da instância devem passar.
  • IPs públicos e privados: Confirme se a instância tem o endereço que você espera. Uma instância em uma sub-rede pública ainda precisa de um endereço IPv4 público ou Elastic IP para acesso direto à internet via IPv4.
  • Listener do sistema operacional: Se o caminho de rede estiver aberto, mas a porta ainda falhar, confirme se o serviço está ouvindo na instância. Por exemplo, o SSH deve ouvir na porta TCP 22, a menos que você tenha alterado a configuração do daemon.
  • Resolução de DNS: Se a conexão por IP funciona, mas a consulta ao nome do host falha, verifique as configurações de DNS da VPC, resolvedores personalizados e /etc/resolv.conf no Linux.

2. Examine os Security Groups

Os security groups são firewalls stateful que controlam o tráfego de e para suas instâncias EC2. Eles são uma fonte muito comum de problemas de conectividade.

2.1. Regras de Entrada

Se você não conseguir se conectar à sua instância, como SSH no Linux ou RDP no Windows:

  • Verifique o Security Group anexado à sua instância EC2.
  • Verifique as regras de entrada: Permita a porta TCP necessária a partir do seu IP de origem ou CIDR confiável. Para acesso administrativo, prefira seu IP público atual como <seu_ip>/32 em vez de 0.0.0.0/0.
  • Exemplo: Para permitir acesso SSH do seu endereço IP:
    Tipo: SSH
    Protocolo: TCP
    Intervalo de portas: 22
    Origem: <seu_ip>/32
    

2.2. Regras de Saída

Se sua instância não conseguir acessar recursos externos (por exemplo, baixar pacotes, conectar-se a outros serviços AWS):

  • Verifique o Security Group anexado à sua instância EC2.
  • Verifique as Regras de Saída: Por padrão, os security groups permitem todo o tráfego de saída. Se regras de saída personalizadas foram criadas, certifique-se de que elas permitem o tráfego necessário para suas portas e IPs de destino.
  • Exemplo: Para permitir todo o tráfego de saída:
    Tipo: Todo o tráfego
    Protocolo: Todos
    Intervalo de portas: Todas
    Destino: 0.0.0.0/0
    

3. Investigue as Network Access Control Lists (NACLs)

As NACLs são firewalls stateless que operam no nível da sub-rede. Elas filtram o tráfego antes que ele atinja o security group ou a instância.

  • Identifique a NACL associada à sub-rede da sua instância.
  • Verifique as Regras de Entrada: As NACLs são avaliadas em ordem pelo número da regra. Certifique-se de que haja uma regra de entrada que permita o tráfego na porta necessária a partir do IP de origem.
  • Verifique as Regras de Saída: Da mesma forma, verifique se as regras de saída permitem o tráfego para o destino.
  • Natureza stateless: As NACLs não lembram conexões estabelecidas. Você precisa de regras de entrada e saída para ambos os lados do fluxo. Para SSH do seu laptop, a NACL da sub-rede geralmente precisa de entrada TCP 22 do seu IP e portas efêmeras de saída para o seu IP para o tráfego de retorno. Os intervalos de portas efêmeras variam de acordo com o sistema operacional e o cliente, portanto, use o intervalo apropriado para o seu ambiente.
  • Numeração de Regras: Números de regra mais baixos são avaliados primeiro. Use regras de negação explícitas (por exemplo, regra 100 para negar tráfego específico) e regras de permissão (por exemplo, regra 200 para permitir tráfego mais amplo) com cuidado.

4. Revise as Route Tables

As route tables determinam para onde o tráfego de rede é direcionado a partir de suas sub-redes. Roteamento incorreto pode impedir que o tráfego atinja seu destino.

  • Encontre a Route Table associada à sub-rede da sua instância.
  • Verifique se há uma Rota Padrão: Para que instâncias em uma sub-rede pública acessem a internet, deve haver uma rota 0.0.0.0/0 apontando para um Internet Gateway (IGW).
    Destino | Alvo
    ----------------|--------
    10.0.0.0/16     | local
    0.0.0.0/0       | igw-xxxxxxxxxxxxxxxxx
    
  • Sub-redes privadas e NAT gateways: Para que instâncias em uma sub-rede privada iniciem conexões de internet de saída, a tabela de roteamento para essa sub-rede precisa de uma rota 0.0.0.0/0 apontando para um NAT gateway ou instância NAT.
    Destino | Alvo
    ----------------|--------
    10.0.0.0/16     | local
    0.0.0.0/0       | nat-xxxxxxxxxxxxxxxxx
    
  • VPC peering, transit gateway ou VPN: Se sua instância precisar se comunicar com outra VPC ou rede on-premises, adicione rotas para os blocos CIDR remotos ao alvo correto em ambos os lados onde o roteamento for necessário.

5. Solucione Problemas de Conectividade com Internet Gateway (IGW) e NAT Gateway

Internet Gateway

*   Certifique-se de que o IGW foi criado e anexado à sua VPC.
*   Verifique se a tabela de roteamento para sua sub-rede pública tem uma rota `0.0.0.0/0` apontando para o IGW.
*   Confirme se sua instância tem um endereço IP público ou um endereço Elastic IP atribuído.
*   As regras do security group e da NACL devem permitir o tráfego de entrada e saída necessário. Não abra portas confidenciais para toda a internet, a menos que você tenha um motivo claro e controles compensatórios.

NAT Gateway

*   Certifique-se de que o NAT Gateway foi criado e está em uma sub-rede pública.
*   Verifique se o NAT Gateway tem um endereço Elastic IP associado a ele.
*   Confirme se a tabela de roteamento para sua sub-rede privada tem uma rota `0.0.0.0/0` apontando para o NAT Gateway.
*   As regras da NACL nas sub-redes privada e pública devem permitir a conexão de saída e o tráfego de retorno. Os NAT gateways não usam security groups.

6. VPC Peering e Transit Gateway

Se você estiver enfrentando problemas de conectividade entre VPCs:

  • VPC Peering:
    • Certifique-se de que a conexão de peering esteja ativa e aceita por ambas as VPCs.
    • Verifique se as tabelas de roteamento em ambas as VPCs têm rotas adicionadas para permitir o tráfego para os blocos CIDR da VPC emparelhada.
    • Certifique-se de que os Security Groups e NACLs em ambas as VPCs permitam o tráfego entre os intervalos de IP necessários.
  • Transit Gateway:
    • Confirme se o Transit Gateway foi criado e as VPCs relevantes estão anexadas a ele.
    • Verifique as tabelas de roteamento do Transit Gateway para garantir que elas roteiem corretamente o tráfego entre os anexos da VPC.
    • Verifique se as tabelas de roteamento dentro de cada VPC também têm rotas apontando para o Transit Gateway para tráfego destinado a outras VPCs.
    • Os Security Groups e NACLs dentro de cada VPC devem permitir o tráfego entre VPCs.

7. Usando Ferramentas de Alcance de Rede da AWS

A AWS fornece ferramentas para ajudar a diagnosticar problemas de rede:

  • VPC Reachability Analyzer: Esta ferramenta analisa o alcance entre recursos de origem e destino suportados. Ela pode identificar falhas de caminho causadas por security groups, NACLs, tabelas de roteamento, gateways e configuração de rede relacionada.
  • VPC Flow Logs: Embora não diagnostique diretamente falhas de conexão, os VPC Flow Logs capturam informações sobre o tráfego IP que entra e sai das interfaces de rede em sua VPC. A análise desses logs pode revelar padrões de tráfego bloqueado ou inesperado, ajudando você a identificar configurações incorretas em Security Groups ou NACLs.

8. Outros Problemas Potenciais

  • Elastic Network Interface (ENI): Certifique-se de que a ENI esteja anexada à instância e configurada corretamente.
  • Associação da Tabela de Roteamento da Sub-rede: Verifique se a sub-rede está associada corretamente à sua tabela de roteamento pretendida.
  • Configuração de DNS: Se estiver usando DNS personalizado, certifique-se de que ele esteja resolvendo corretamente. Para DNS de VPC padrão, verifique se a resolução de DNS está habilitada para sua VPC.
  • Servidores Proxy: Se sua instância estiver configurada para usar um proxy, certifique-se de que o próprio proxy esteja acessível e configurado corretamente.

Melhores Práticas para Prevenir Problemas de Conectividade

  • Menor Privilégio: Configure Security Groups e NACLs com as permissões mínimas necessárias. Evite usar 0.0.0.0/0 para portas confidenciais, a menos que seja absolutamente necessário e protegido por outros meios.
  • Tagging: Marque consistentemente seus recursos de rede (VPCs, sub-redes, security groups, tabelas de roteamento) para identificar facilmente sua finalidade e instâncias associadas.
  • Documentação: Mantenha uma documentação clara de sua topologia de rede, esquemas de endereçamento IP e regras de segurança.
  • Auditorias Regulares: Revise periodicamente suas regras de Security Group e NACL para garantir que ainda sejam relevantes e seguras.
  • Aproveite as Ferramentas AWS: Familiarize-se com o VPC Reachability Analyzer e os VPC Flow Logs para monitoramento proativo e solução de problemas.

Conclusão

Quando a conectividade EC2 falha, trace o caminho em ordem: saúde da instância, listener, security group, NACL, tabela de roteamento, gateway e regras do lado remoto. Altere uma camada de cada vez e teste novamente. Isso mantém sua correção restrita e torna a próxima interrupção muito mais fácil de diagnosticar.