Como resolvo problemas quando estou me conectando com minha instância do banco de dados do Amazon RDS?

7 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

Confira a seguir os motivos mais comuns que bloqueiam a conexão com sua instância de banco de dados Amazon RDS:

  • A instância de banco de dados do Amazon 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 (ACLs) à rede ou firewalls locais.
  • Você está usando o nome DNS ou o endpoint incorreto 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.

Resolução

Use um ou mais dos métodos a seguir para solucionar seu problema de conexão.

Use um runbook de automação

Use 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 principal da instância do Amazon EC2, mas essa automação não verifica portas específicas. Para obter mais informações, consulte Executar uma operação automatizada com o Systems Manager Automation.

Para obter instruções sobre como executar o runbook e detalhes sobre o que ele verifica, consulte AWSSupport-TroubleshootConnectivityToRDS.

Quando a automação for concluída, revise a seção Saídas para obter resultados detalhados. Se o runbook não conseguir identificar o problema, continue com as etapas manuais a seguir.

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, podem decorrer até 20 minutos antes que a instância de banco de dados esteja 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 requisitos de configuração:

  • Grupos de segurança da Amazon Virtual Private Cloud (Amazon VPC) associados à instância de banco de dados. 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. É possível 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 usar 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 o acesso a partir 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.
    Para instâncias de banco de dados em uma sub-rede privada, use o peering de VPC ou o AWS Site-to-Site VPN para se conectar com segurança à sua instância. Com o Site-to-Site VPN, você configura um gateway do cliente que permite conectar sua VPC à sua rede remota. Use o peering de VPC para criar 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 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.

Possíveis problemas com nome de DNS ou endpoint

Quando você se conecta à 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árias aplicações 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

Exemplo de uma resposta não autorizada:

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

Problemas no nível do banco de dados

Verifique se as seguintes configurações de nível de banco de dados estão definidas corretamente:

  • Você tem o nome de usuário e a senha corretos para acessar a instância a partir do seu cliente de banco de dados.
  • O usuário tem 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. A contenção de memória pode causar problemas quando você estabelece novas conexões com a instância.
  • A instância não atingiu o limite max_connections.

Verifique as tabelas de rotas associadas à sua instância

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, consulte Configurar tabelas de rotas. Para obter mais informações, consulte Configuração e gerenciamento de uma implantação multi-AZ para o Amazon RDS.

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

Verifique sua conectividade

Para verificar sua conexão, execute um dos comandos a seguir:

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

Os comandos telnet e nc testam a conexão entre o cliente e o servidor. Se os comandos telnet ou nc forem bem-sucedidos, uma conexão de rede foi estabelecida. Isso significa que o problema é 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 ou cluster de banco de dados