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?

6 minuto de leitura
0

Não consigo me conectar a uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS). Como posso solucionar problemas de conectividade em uma sub-rede pública ou privada de uma Amazon Virtual Private Cloud (Amazon VPC)?

Breve descrição

Você pode executar bancos de dados do Amazon RDS na sub-rede pública ou privada de uma VPC. No entanto, a configuração incorreta da VPC no lado da instância do RDS pode causar problemas de conexão. Ou problemas de configuração ou conectividade no cliente do qual você está se conectando também podem causar problemas de conexão.

Para resolver esses problemas, consulte as seguintes resoluções, dependendo do seu ambiente.

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.

A instância de banco de dados está em uma sub-rede pública e não consigo me conectar a ela pela Internet a partir do meu computador local

Esse problema pode ocorrer quando a propriedade Acessível ao público da instância de banco de dados é definida como Não. Para verificar se uma instância de banco de dados está acessível ao público:

Abra o console do Amazon RDS, selecione Bancos de dados no painel de navegação e selecione sua instância de banco de dados. Em seguida, analise a seção Conectividade e Segurança da instância.

-ou-

Use o comando describe-db-instances na AWS CLI.

Para alterar a propriedade Acessível ao público da instância do Amazon RDS para Sim:

1.    Abra o console do Amazon RDS.

2.    Selecione Bancos de dados no painel de navegação e, em seguida, selecione a instância de banco de dados.

3.    Escolha Modificar.

4.    Em Conectividade, amplie a seção Configuração adicional e, em seguida, selecione Acessível ao público.

5.    Selecione Continuar.

6.    Selecione Modificar instância de banco de dados.

Observação: essa alteração é aplicada imediatamente, mesmo que você não selecione a opção Aplicar imediatamente. O tempo de inatividade ocorre somente se você tiver uma ação de manutenção pendente configurada com essa modificação, que exige tempo de inatividade, e você selecionar Aplicar imediatamente.

Se você definir a propriedade Acessível ao público como Sim e ainda não conseguir se conectar à sua instância do RDS, verifique estes detalhes:

A instância de banco de dados está em uma sub-rede privada e não consigo me conectar a ela a partir do meu computador local

Você pode resolver esse problema usando uma sub-rede pública. Quando você usa uma sub-rede pública, todos os recursos na sub-rede ficam acessíveis pela Internet. Se essa solução não atender aos seus requisitos de segurança, use o AWS Site-to-Site VPN. Com o Site-to-Site VPN, você configura um gateway do cliente que permite conectar sua VPC à sua rede remota.

Outro método para resolver esse problema é usar uma instância do Amazon EC2 como bastion host (jump). Para obter mais informações, consulte Como posso me conectar a uma instância privada de banco de dados do Amazon RDS de uma máquina local usando uma instância do Amazon EC2 como bastion host?

Para alternar para uma sub-rede pública:

1.    Abra o console do Amazon RDS.

2.    Selecione Bancos de dados no painel de navegação e, em seguida, escolha a instância de banco de dados.

3.    Na seção Conectividade e segurança, copie o endpoint da instância de banco de dados.

4.    Execute um nslookup no endpoint da instância de banco de dados a partir de uma instância do EC2 dentro da VPC. Veja o exemplo de saída a seguir:

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

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

5.    Depois de ter o endereço IP privado da sua instância de banco de dados do RDS, você pode relacionar o endereço IP privado a uma sub-rede específica na VPC. A sub-rede da VPC é baseada no intervalo CIDR da sub-rede e no endereço IP privado.

6.    Abra o console do Amazon VPC e selecione Sub-redes no painel de navegação.

7.    Escolha a sub-rede associada à instância de banco de dados que você encontrou na etapa 5.

8.    No painel Descrição, selecione a Tabela de rotas.

9.    Selecione Ações e, em seguida, selecione Editar rotas.

10.    Selecione Adicionar rota. Para tráfego IPv4 e IPv6, na caixa Destino, insira as rotas para sua rede externa ou on-premises. Em seguida, selecione o ID do gateway da Internet na lista Destino.

Observação: certifique-se de que a regra do ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules)grupo de segurança de entrada[ para sua instância restrinja o tráfego para os endereços da sua rede externa ou on-premises.    

11.    Escolha Salvar.

Importante: se você alterar uma sub-rede para pública, outras instâncias de banco de dados na sub-rede também se tornarão acessíveis pela Internet. As instâncias de banco de dados podem ser acessadas pela Internet se tiverem um endereço público associado.

Se a instância de banco de dados ainda não estiver acessível após seguir essas etapas, verifique se a instância de banco de dados está Acessível ao público. Para fazer isso, siga as etapas em A instância de banco de dados está em uma sub-rede privada e não consigo me conectar a ela a partir do meu computador local.

A instância de banco de dados não pode ser acessada por uma instância do Amazon EC2 a partir de uma VPC diferente

Crie uma conexão de emparelhamento da VPC entre as VPCs. Uma conexão de emparelhamento da VPC permite que duas VPCs se comuniquem entre si usando endereços IP privados.

1.    Crie e aceite uma conexão de emparelhamento da VPC.

Importante: se as VPCs estiverem na mesma conta da AWS, certifique-se de que os blocos CIDR IPv4 não se sobreponham. Para obter mais informações, consulte Limitações de emparelhamento de VPC.

2.    Atualize as duas tabelas de rotas.

3.    Atualize seus grupos de segurança para referenciar grupos de VPC de pares.

4.    Ative o suporte à resolução de DNS para sua conexão de emparelhamento da VPC.

5.    Na instância do Amazon Elastic Compute Cloud (Amazon EC2), teste a conexão de emparelhamento da VPC usando um utilitário de rede. Veja o exemplo a seguir:

nc -zv <hostname> <port>

Se a conexão estiver funcionando, a saída será semelhante à seguinte:

$ nc -zv myexampledb.xxxx.us-east-1.rds.amazonaws.com 5439
found 0 associations
found 1 connections:
     1:    flags=82<CONNECTED,PREFERRED>
    outif en0
    src xx.xxx.xxx.xx port 53396
    dst xx.xxx.xxx.xxx port 5439
    rank info not available
    TCP aux info available

Connection to myexampledb.xxxx.us-east-1.rds.amazonaws.com port 5439 [tcp/*] succeeded!

Informações relacionadas

Cenários para acessar uma instância de banco de dados em uma VPC

Trabalhar com uma instância de banco de dados em uma VPC