Por que não consigo me conectar ao Amazon RDS depois de configurá-lo?

43

Acabei de criar a conta Amazon RDS. E eu iniciei uma instância de banco de dados.

The "endpoint" is:
abcw3n-prod.cbmbuiv8aakk.us-east-1.rds.amazonaws.com

Ótimo! Agora, tento conectar-me a uma de minhas outras instâncias do EC2.

mysql -uUSER -pPASS -habcw3n-prod.cbmbuiv8aakk.us-east-1.rds.amazonaws.com

Mas nada funciona e simplesmente trava.

Eu tentei fazer ping, e nada funciona também. Nada acontece.

Preciso alterar algumas configurações?

Alex
fonte

Respostas:

45

Por padrão, o RDS não permite nenhuma conexão não especificada no Grupo de Segurança (SG). Você pode permitir com base no endereçamento CIDR ou pelo número da conta Amazon, o que permitiria a qualquer EC2 sob essa conta acessá-lo.

Jeremy Bouse
fonte
27

É "apenas travado", pois você não configurou o firewall para aceitar conexões mySQL de sua outra instância; portanto, o pacote está sendo descartado no nível do firewall, para resolver isso, é necessário:

  1. entre no seu console da AWS
  2. Guia EC2
  3. Anote o grupo de segurança do seu servidor mySQL (chame isso de SG-MYSQL por enquanto)
  4. clique em grupos de segurança à esquerda do console
  5. clique no seu grupo no menu central SG-MYSQL
  6. clique na guia de entrada
  7. selecione mySQL na lista, adicione os detalhes do seu servidor cliente e salve a regra

OBSERVAÇÃO: o IP de origem do servidor não será o seu IP elástico (na maioria dos casos, de qualquer maneira), você terá um ip interno no dispositivo (ifconfig no linux mostrará isso).

Oneiroi
fonte
1
Eu fiz isso no meu servidor EC2. Eu abri todas as portas padrão.
25411 Alex
1
Não tenho instância do EC2 e meu RDS não pôde se conectar ao mundo exterior até fazer isso.
Umair A.
1
excelente ponto para usar IP elástico!
user1641443
1
Obrigado por isso. O passo a passo fez toda a diferença!
Mr T
1
Criou uma conta com falha no servidor apenas para fazer uma votação positiva. OBRIGADO.
CaptainMarvel
7

Muita conversa aqui sobre grupos de segurança, mas também verifique:

  • As sub-redes associadas parecem configuradas corretamente?
  • As sub-redes fazem parte de um grupo de roteamento que parece configurado corretamente (gateway da Internet especificado, etc?)
  • O RDS diz que é publicamente acessível?
  • E, claro, verifique o RDS Security Group e o EC2 Security Group
    • Não esqueça que o IP de origem real pode ser um IP interno (se estiver acessando internamente por meio de uma VPC) ou um IP externo (que pode ser o IP de um roteador ou o IP de Instância de uma instância do EC2 que seja distinto do IP do Balanceador de Carga / Elástico) - para solucionar problemas, você pode tentar permitir o acesso a todos os IPs e portas.

(O grupo de roteamento era meu problema; ao criar uma nova sub-rede, deixei de adicioná-lo a um grupo de roteamento com um gateway.)

willbradley
fonte
Para esclarecer: TODAS AS sub-redes que você escolher no grupo de sub-redes RDS devem ter tabelas de roteamento que tenham o gateway da Internet especificado. Meu problema foi que duas das sub-redes que eu escolhi eram minhas sub-redes "privadas", que tinham um gateway NAT especificado para tráfego de saída em vez do gateway da Internet, e o RDS escolheu um servidor em uma dessas sub-redes. Consulte este artigo se você não estiver familiarizado com o roteamento: medium.com/@mda590/aws-routing-101-67879d23014d
scheduleofly
Fui afetado pelo mesmo problema que @timetofly. Tive um trabalho pontual que decidi executar no ECS Fargate, que exigia um NAT para baixar arquivos. A configuração do NAT interrompeu minha conexão com o RDS do meu laptop. Quando o trabalho terminou, atualizei minhas sub-redes para usar apenas o Gateway da Internet, e estava pronto.
vitale232 28/06
4

Fixo.

Tinha que conceder acesso a ele nos grupos de segurança sob o DB ...

Alex
fonte
6
Você pode elaborar o que fez para conceder acesso?
22612 David Csonka
1
Meu banco de dados tem um grupo de segurança com uma regra. Permitir o acesso de qualquer lugar para a porta 1433. Não consigo me conectar -_-
The Muffin Man
1

Eu tive o mesmo problema ;

  1. Grupos de Segurança> rds-launch-wizard (ou qualquer nome escolhido para o db SG)
  2. selecione a guia Entrada> editar
  3. adicionar nova função
  4. MySQL
  5. Fonte -> insira o aws vm ip (por exemplo: 12.3.14.80/32)

trabalhou para mim ...

loudstil
fonte
1

Em uma tentativa de abrir a segurança completamente para teste antes de bloquear o acesso, minha instância de banco de dados e minha instância EC2 usaram o mesmo grupo de segurança, e as portas de entrada e saída 3306 foram configuradas para permitir conexões de Qualquer Lugar. O problema - eu consegui me conectar ao Aurora pelo meu notebook, mas estranhamente não pela minha instância do EC2, como se a instância do EC2 não fosse o Anywhere. A solução foi adicionar outra regra de entrada do mysql / Aurora e especificar o mesmo ID do grupo de segurança que a origem das conexões de entrada. Meu grupo de segurança possui uma regra que se refere a si próprio e posso conectar-me no meu notebook ou na minha instância do EC2.

John Dimm
fonte
-3

regra de entrada mysql deve ser como abaixo

imagem este é o problema com o grupo de segurança.

Nirmal Dhara
fonte
3
Existe uma razão para você responder a uma pergunta de cinco anos para responder com a mesma resposta que existe há anos? Dar 0.0.0.0/0acesso 3306também não é uma ótima idéia.
precisa
Eu tentei mostrar ao usuário o que eles deveriam mudar e como eles podem mudar. Você sabe que existem muitos usuários como eu, que não conseguem resolver o problema lendo as ans acima. pode não ajudá-lo, mas há usuários procurando por isso. você deu o voto negativo, pois não o ajuda.
Nirmal Dhara
3
Meu voto negativo é dizer que as pessoas devem abrir o MySQL para toda a Internet. É uma abordagem perigosa.
ceejayoz
deixa comigo. Eu apenas mostro o local onde eles podem editar os grupos de segurança, eles podem escolher no menu suspenso o que quiserem.
Nirmal Dhara