Conectando-se a um RDS de um EC2 no mesmo VPC

1

Eu tenho uma instância do RDS em execução em uma sub-rede sem NAT e uma instância do EC2 em execução em outra sub-rede com um Gateway da Internet configurado, ambos localizados na mesma VPC. Eu configurei a instância do RDS para não ser publicamente acessível.

Estou usando o seguinte comando no meu EC2 remoto (em execução na segunda sub-rede) para conectar-me à instância do RDS:

mysql -h xxxx.eu-central-1.rds.amazonaws.com -P 3306 -u root -p

Eu digitei a senha correta que defini ao configurar o RDS, mas recebo o seguinte erro:

ERROR 2003 (HY000): Can't connect to MySQL server on 'XXX.eu-central-1.rds.amazonaws.com' (110)

Eu verifiquei, não é um problema de resolução de nomes. O ec2 converte o terminal no ip interno correto.

Aqui estão as minhas configurações:

RDS

VPC : o mesmo que o EC2

ZONA DE DISPONIBILIDADE : eu-central-1b

SUBNET : no painel RDS eu posso ver todas as sub-redes, mas eu posso ver que há um ip menos disponível na sub-rede privada da zona b

GRUPO DE SEGURANÇA : grupo de segurança privada (sem regras de saída e na regra única de entrada com a porta mysql e o grupo de segurança pública como a origem)

ACESSÍVEL PUBLICAMENTE : não

MULTI AZ : não

EC2

VPC : o mesmo que o RDS

ZONA DE DISPONIBILIDADE : eu-central-1b

SUBNET : sub-rede pública da zona b

GRUPO DE SEGURANÇA : grupo de segurança pública (todas as portas de qualquer origem, como regra de entrada, e ssh, http e https, de qualquer origem, como regra de saída)

Eu posso acessar a instância do EC2 usando http e ssh. Funciona como esperado.

VPC

VPC : tanto o RDS quanto o EC2 usam o mesmo

SUBNETS : um público e um privado para cada AZ, 4 no total

DHCP : o padrão ( domain-name = eu-central-1.compute.internal domain-name-servers = AmazonProvidedDNS )

ROUTE TABLES : para as sub-redes públicas, direcione para local (automaticamente) e para a internet getaway, para o privado, apenas o local (automaticamente)

ACLs : public: allow all na entrada e na saída. private: allow all somente na entrada. Há também uma linha com o id * com deny all , em ambas as ACLs, tanto na entrada quanto na saída, mas tenho certeza de que é suposto estar lá, não posso excluí-la.

O que estou fazendo de errado? Estou faltando alguma coisa?

    
por Theodore 02.02.2017 / 21:10

2 respostas

1

Verifique seus grupos de segurança, esse é o provável culpado. Os hosts dentro de uma VPC usando nomes DNS sempre usarão o IP privado do recurso remoto, portanto, a porção NAT / IG não é importante.

    
por 02.02.2017 / 21:15
0

Você precisa garantir que seu grupo de segurança VPC / EC2 e NACLs permitam o acesso apropriado.

Eu tenho um tutorial que cobre a configuração do grupo de segurança EC2 / RDS que você pode achar útil.

Você também deve verificar com esta resposta em SO .

    
por 02.02.2017 / 21:16