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.confno 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>/32em vez de0.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
100para negar tráfego específico) e regras de permissão (por exemplo, regra200para 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/0apontando 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/0apontando 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/0para 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.