Como resolvo problemas de conexão com a minha instância do banco de dados do Amazon RDS?

8 minuto de leitura
0

Não consigo me conectar a uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS).

Breve descrição

Há várias causas raiz para a incapacidade de se conectar a uma instância de banco de dados do Amazon RDS. Aqui estão alguns dos motivos mais comuns:

  • A instância de banco de dados do RDS está em um estado diferente de disponível e, portanto, não pode aceitar conexões.
  • Sua fonte para se conectar à instância de banco de dados não tem acesso de autorização em seu grupo de segurança, listas de controle de acesso à rede (ACLs) ou firewalls locais.
  • O nome DNS ou o endpoint incorretos foram usados para se conectar à instância de banco de dados.
  • A instância de banco de dados multi-AZ teve failover, e a instância de banco de dados secundária usa uma sub-rede ou tabela de rotas que não permite conexões de entrada.
  • A autenticação do usuário está incorreta por um dos seguintes motivos:
    Você está usando um nome de usuário ou senha incorretos no nível do banco de dados para acessar a instância a partir do cliente de banco de dados.
    Você não tem as permissões de banco de dados necessárias para acessar a instância.
    O cliente está sendo executado em uma versão incompatível com a versão do banco de dados.

Dica: você pode usar as seguintes etapas de solução de problemas para identificar a origem do problema de conectividade. Ou você pode usar o documento AWSSupport-TroubleshootConnectivityToRDS do AWS Systems Manager Automation para diagnosticar o problema. Este documento de automação pode diagnosticar ACLs de rede com base no endereço IP principal da instância do Amazon Elastic Compute Cloud (Amazon EC2). No entanto, as portas efêmeras não são verificadas. O documento de automação também verifica grupos de segurança com base no endereço IP primário da instância do EC2, mas essa automação não verifica portas específicas. Para obter mais informações, consulte Executar uma automação.

Resolução

Certifique-se de que sua instância de banco de dados esteja no estado disponível

Se você iniciou ou reinicializou recentemente sua instância de banco de dados, confirme se a instância de banco de dados está no estado disponível no console do Amazon RDS. Dependendo do tamanho da sua instância de banco de dados, pode levar até 20 minutos para que a instância de banco de dados fique disponível para conexões de rede.

Se sua instância de banco de dados estiver em estado de falha, consulte Por que minha instância de banco de dados do Amazon RDS está em estado de falha?

Certifique-se de que sua instância de banco de dados permita conexões

Verifique se o tráfego da origem que se conecta à sua instância de banco de dados não está bloqueado por um ou mais dos seguintes:

  • Grupos de segurança da Amazon Virtual Private Cloud (Amazon VPC) associados à instância de banco de dados. Se necessário, adicione regras ao grupo de segurança associado à VPC que permitam o tráfego de entrada e saída relacionado à origem para a instância de banco de dados. Você pode especificar um endereço IP, um intervalo de endereços IP ou outro grupo de segurança da VPC. Para obter informações gerais sobre VPC e instâncias de banco de dados, consulte Cenários para acessar uma instância de banco de dados em uma VPC.
  • Grupos de segurança de banco de dados associados à instância de banco de dados. Se a instância de banco de dados não estiver em uma VPC, ela pode estar usando um grupo de segurança de banco de dados para bloquear o tráfego. Atualize seu grupo de segurança de banco de dados para permitir o tráfego do intervalo de endereços IP ou do grupo de segurança do Amazon EC2 que você usa para se conectar.
  • Conexões fora de uma VPC. Certifique-se de que a instância de banco de dados esteja acessível publicamente e associada a uma sub-rede pública (por exemplo, a tabela de rotas permite acesso vindo de um gateway da Internet). Para obter mais informações, consulte Cenários para acessar uma instância de banco de dados em uma VPC.
    Se sua instância de banco de dados estiver em uma sub-rede privada, certifique-se de usar o emparelhamento de VPC ou o AWS Site-to-Site VPN para se conectar à sua instância com segurança. Com o Site-to-Site VPN, você configura um gateway do cliente que permite conectar sua VPC à sua rede remota. Você pode usar o emparelhamento de VPC criando uma conexão de emparelhamento entre sua VPC de origem e a VPC da sua instância para acessar a instância de fora da VPC. Você também pode usar uma instância do Amazon EC2 como um host bastion (jump).
  • ACLs de rede. As ACLs de rede atuam como um firewall para recursos em uma sub-rede específica em uma VPC. Se você usa ACLs em sua VPC, verifique se elas têm regras que permitam tráfego de entrada e saída de e para a instância de banco de dados.
  • Firewalls de rede ou locais. Pergunte ao seu administrador de rede se a sua rede permite tráfego de e para as portas que a instância de banco de dados usa para comunicação de entrada e saída.
    Observação: o Amazon RDS não aceita tráfego pelo protocolo de mensagens de controle da Internet (ICMP), incluindo ping.

Solucione possíveis problemas de nome de DNS ou endpoint

Ao se conectar à sua instância de banco de dados, você usa um nome DNS (endpoint) fornecido pelo console do Amazon RDS. Certifique-se de usar o endpoint correto. Além disso, forneça o endpoint no formato correto ao cliente que você usa para se conectar à instância de banco de dados. Para obter mais informações sobre conexões de mecanismos de banco de dados e como usar um endpoint em vários aplicativos clientes, consulte Introdução ao Amazon RDS.

Por exemplo, use nslookup para o endpoint da instância de banco de dados a partir de uma instância do Amazon EC2 dentro da VPC:

nslookup myexampledb.xxxx.us-east-1.rds.amazonaws.com
Server: xx.xx.xx.xx
Address: xx.xx.xx.xx#53

Veja o exemplo a seguir de uma resposta não oficial:

Name: myexampledb.xxxx.us-east-1.rds.amazonaws.com
Address: 172.31.xx.x

Solucione problemas no nível do banco de dados

  • Certifique-se de usar o nome de usuário e a senha corretos para acessar a instância a partir do seu cliente de banco de dados.
  • Certifique-se de que o usuário tenha as permissões do banco de dados para se conectar à instância de banco de dados.
  • Verifique se há algum controle de utilização de recursos no Amazon RDS, como contenção de CPU ou memória. Essa contenção pode causar problemas no estabelecimento de novas conexões com a instância.
  • Certifique-se de que a instância não tenha atingido o limite max_connections.

Verifique as tabelas de rotas associadas à sua instância

Ao criar uma implantação multi-AZ, você inicia várias instâncias de banco de dados de réplica em diferentes zonas de disponibilidade para melhorar a tolerância a falhas do seu aplicativo. Confirme se as sub-redes associadas a cada instância de banco de dados estão associadas às mesmas tabelas de rotas ou a tabelas de rotas semelhantes. Se sua instância de banco de dados primária tiver failover para uma réplica em espera associada a uma tabela de rotas diferente, o tráfego poderá não ser roteado corretamente. Mesmo que esse tráfego tenha sido roteado anteriormente sem problemas, ele pode não ser mais roteado corretamente.

Para obter mais informações sobre como configurar tabelas de rotas, consulte Configurar tabelas de rotas. Para obter informações adicionais sobre implantações multi-AZ, consulte Implantações multi-AZ para alta disponibilidade.

Observação: se você conseguir se conectar à sua instância de banco de dados, mas receber erros de autenticação, consulte Como redefino a senha do usuário mestre da instância do banco de dados do RDS?

Verifique a conectividade

Verifique sua conexão executando um destes comandos:

telnet <RDS endpoint> <port number>
nc -zv <RDS endpoint> <port number>

Se os comandos telnet ou nc forem bem-sucedidos, uma conexão de rede foi estabelecida. Isso significa que o problema provavelmente é causado pela autenticação do usuário no banco de dados, como nome de usuário e senha.

Informações relacionadas

Não é possível conectar-se à instância de banco de dados do Amazon RDS

Como posso solucionar problemas de conectividade a uma instância de banco de dados do Amazon RDS que usa uma sub-rede pública ou privada de uma VPC?

Segurança no Amazon RDS

Usar SSL/TLS para criptografar uma conexão com uma instância de banco de dados