Permitir acesso à instância do RDS da instância do EC2 no mesmo VPC

3

Estou tendo problemas para obter acesso a uma instância do MySQL RDS.

Estou tentando conectar-me à instância do RDS de uma instância do EC2. Tanto a instância do RDS quanto a instância do EC2 estão contidas no mesmo VPC, myVPC. Eu confirmei isso verificando se o VPC está listado na instância do RDS e a instância do RC2 corresponde.

A maioria das perguntas sobre esse problema que eu encontrei giravam em torno de grupos de segurança. Muitos usuários tiveram essa dificuldade e seu problema foi resolvido garantindo que o grupo de segurança da VPC associado à instância do RDS fosse o mesmo da instância do EC2. No meu caso, ambas as instâncias estão no mesmo VPC e usando o mesmo grupo de segurança. Dentro deste grupo de segurança, tenho uma regra que permite todo o tráfego de entrada em toda a faixa de IPs da minha VPC (ex, 172.35.0.0/16). Em uma tentativa de fazer com que isso funcione, permiti o tráfego ALL em todas as portas de todos os endereços IP desse grupo de segurança. Isso ainda não funcionou.

Algumas leituras da documentação sugerem que se deve garantir que suas sub-redes estejam associadas à mesma tabela de roteamento usada pelo seu VPC. Eu fiz isso indo para a tabela de rotas associada a todas as sub-redes dentro do myVPC com essa tabela de roteamento.

Eu também tentei com e sem um IP elástico. Consigo me conectar à minha instância do EC2 com o endereço IP elástico.

Eu percebo que esta pergunta é feita bastante. Até o momento, não cheguei a uma solução cuja solução tenha resolvido meu problema.

Editado: adiciona mais detalhes das configurações de segurança Tanto a instância ec2 quanto o RDS usam o mesmo grupo de segurança. Dentro desse grupo de segurança é uma linha que diz algo como

MYSQL TCP 3306 172.35.0.0/16 meu intervalo do CIDR

eu adicionei

MYSQL TCP 3306 172.35.0.1/32 Meu IP privado da instância ec2

Nenhum dos itens acima funcionou.

O que o DID funcionou sob minhas configurações de ACL de rede Alterei uma linha de

1 MySQL(3306) TCP(6) 3306 172.35.0.1/32 ALLOW

para

1 ALL TRAFFIC ALL ALL 0.0.0.0/32 ALLOW

Então, meu problema foi resolvido, mas agora tenho outra pergunta. Como posso evitar ter 3306 aberto para todas as conexões de entrada. Eu posso postar isso como uma nova pergunta e link aqui.

    
por PhiloEpisteme 12.12.2014 / 22:13

4 respostas

4

Eu mesmo tive esse problema há algumas semanas. No meu caso, esqueci de permitir o tráfego de saída na porta 3306 da minha instância do EC2 para o VPC CIDR. Tente adicionar uma regra de saída ao seu grupo de segurança de instância do EC2 com a seguinte aparência:

Type    Protocol    Port Range    Destination
MYSQL   TCP         3306          172.35.0.0/16
    
por 14.12.2014 / 10:11
3

Tem certeza de que seu banco de dados está dentro da VPC com sua instância do EC2? Supondo assim, crie um grupo de segurança que permita a entrada de 3306 do intervalo do CIDR para o seu VPC.

Para testar de uma maneira um pouco mais familiar, você pode criar temp uma instância com o MySQL nele, deve funcionar da mesma forma, contanto que também esteja em seu VPC.

Certifique-se de que seu RDS esteja em um grupo de sub-redes acessível a partir de outras máquinas em seu VPC, por exemplo, certifique-se de poder rotear entre sub-redes, se você é multi-AZ, etc.

Atualização: também tente usar o IP VPC, não o nome DNS externo para acessá-lo, seu DNS pode apontar para um endereço de rede externo ou estar falhando.

    
por 12.12.2014 / 22:56
1

Depois de muita procura por uma solução para o mesmo problema, quis fornecer o que parecia funcionar. Originalmente, eu tinha o RDS e a instância do EC2 com grupos de segurança diferentes.

Após atualizar o RDS para usar o grupo de segurança da VPC, ainda não consegui me conectar. O que finalmente funcionou foi quando adicionei a regra de entrada para a porta 3306 para o intervalo CDIR no meu VPC, conforme respondido por @TheFiddlerWins.

O grupo de segurança da VPC deve encapsular essa regra já tão decepcionante que não posso dizer exatamente por que isso fez com que ela funcionasse, mas funcionou depois disso.

    
por 11.11.2015 / 08:30
1

Eu tive o mesmo problema. Eu estava usando as microinstâncias com o nível gratuito para teste. Se o seu RDS e EC2 não estiverem nas mesmas zonas de disponibilidade, você precisará usar o IP público. Se eles estão na mesma zona ou o EC2 é compartilhado entre muitas zonas, então você pode usar o IP privado.

    
por 19.03.2016 / 08:46