Pourquoi ne puis-je pas me connecter à Amazon RDS après l'avoir configuré?

43

Je viens donc de créer le compte Amazon RDS. Et j'ai démarré une instance de base de données.

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

Génial! Maintenant, j'essaie de me connecter depuis l'une de mes autres instances EC2.

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

Mais rien ne fonctionne et ça reste en suspens.

J'ai essayé de faire un ping, et rien ne fonctionne non plus. Rien ne se passe.

Dois-je modifier certains paramètres?

Alex
la source

Réponses:

45

Par défaut, RDS n'autorise aucune connexion non spécifiée dans le groupe de sécurité (SG). Vous pouvez autoriser en fonction de l'adressage CIDR ou par numéro de compte Amazon, ce qui permettrait à tout EC2 sous ce compte d'y accéder.

Jeremy Bouse
la source
27

Il est juste "suspendu" car vous n'avez pas configuré le pare-feu pour accepter les connexions mySQL de votre autre instance. Par conséquent, le paquet est supprimé au niveau du pare-feu. Pour résoudre ce problème, vous devez:

  1. rendez-vous dans votre console AWS
  2. Onglet EC2
  3. Notez le groupe de sécurité de votre serveur mySQL (appelez maintenant ce SG-MYSQL)
  4. cliquez sur les groupes de sécurité à gauche de la console
  5. cliquez sur votre groupe dans le menu central SG-MYSQL
  6. cliquez sur l'onglet entrant
  7. sélectionnez MySQL dans la liste, ajoutez les détails de votre serveur client et sauvegardez la règle

NOTE L'IP source du serveur ne sera pas votre IP élastique (dans la plupart des cas, vous aurez une adresse IP interne sur le périphérique (ifconfig sur linux vous le montrera).

Oneiroi
la source
1
Je l'ai fait sur mon serveur EC2. J'ai ouvert tous les ports standard.
Alex
1
Je n'ai pas d'instance EC2 et mon RDS ne pouvait pas se connecter au monde extérieur avant de l'avoir fait.
Umair A.
1
excellent point pour utiliser l'IP élastique!
user1641443
1
Merci pour cela. La procédure pas à pas a fait toute la différence!
Mr T
1
Créé un compte à la faute du serveur juste pour upvote cela. JE VOUS REMERCIE.
CaptainMarvel
7

On parle beaucoup de groupes de sécurité, mais vérifiez aussi:

  • Les sous-réseaux associés semblent-ils correctement configurés?
  • Les sous-réseaux font-ils partie d’un groupe de routage qui semble correctement configuré (passerelle Internet spécifiée, etc.?)
  • Est-ce que le RDS dit que c'est accessible publiquement?
  • Et bien sûr, vérifiez le groupe de sécurité RDS et le groupe de sécurité EC2
    • N'oubliez pas que votre adresse IP source réelle peut être une adresse IP interne (si vous y accédez en interne via un VPC) ou une adresse IP externe (qui peut être l'adresse IP d'un routeur ou l'adresse IP d'une instance EC2 distincte de son IP Load Balancer / Elastic). - pour dépanner, vous pouvez essayer d'autoriser l'accès à toutes les adresses IP et à tous les ports.

(Le groupe de routage était mon problème; lors de la création d'un nouveau sous-réseau, j'ai négligé de l'ajouter à un groupe de routage avec une passerelle.)

Willbradley
la source
Pour clarifier: tous les sous-réseaux que vous choisissez dans le groupe de sous-réseaux RDS doivent avoir des tables de routage pour lesquelles la passerelle Internet est spécifiée. Mon problème était que deux des sous-réseaux que j'ai choisis étaient mes sous-réseaux "privés", pour lesquels une passerelle NAT était spécifiée pour le trafic sortant plutôt que la passerelle Internet, et RDS avait choisi de choisir un serveur dans l'un de ces sous-réseaux. Reportez - vous à cet article si vous n'êtes pas trop familier avec le routage: medium.com/@mda590/aws-routing-101-67879d23014d
timetofly
J'ai été touché par le même problème que @timetofly. J'avais un travail ponctuel que j'ai décidé de faire fonctionner sur ECS Fargate, qui nécessitait un NAT pour télécharger les fichiers. La configuration du NAT a interrompu la connexion à RDS à partir de mon ordinateur portable. Une fois le travail terminé, j'ai mis à jour mes sous-réseaux pour qu'ils n'utilisent que la passerelle Internet. J'étais prêt à partir.
vitale232
4

Fixé.

Dû en autoriser l'accès dans les groupes de sécurité sous la base de données ...

Alex
la source
6
Pouvez-vous préciser ce que vous avez fait pour accorder l'accès?
David Csonka
1
Ma base de données a un groupe de sécurité avec une règle. Autoriser l'accès de PARTOUT sur le port 1433. Je ne parviens pas à me connecter -_-
The Muffin Man
1

J'ai eu le même problème ;

  1. Groupes de sécurité> rds-launch-wizard (ou tout autre nom choisi pour le SG de base de données)
  2. sélectionnez l'onglet Entrant> modifier
  3. ajouter un nouveau rôle
  4. MySQL
  5. Source -> insérer l'aws vm ip (par exemple: 12.3.14.80/32)

travaillé pour moi ...

fort
la source
1

Dans le but de tester complètement la sécurité avant de verrouiller l'accès, mon instance de base de données et mon instance EC2 utilisaient le même groupe de sécurité et le port 3306 entrant et sortant était configuré pour autoriser les connexions depuis n'importe où. Le problème - j'ai pu me connecter à Aurora à partir de mon ordinateur portable, mais curieusement pas à partir de mon instance EC2, comme si l'instance EC2 n'était pas Anywhere. La solution consistait à ajouter une autre règle mysql / Aurora entrante et à spécifier le même identifiant de groupe de sécurité que la source des connexions entrantes. Mon groupe de sécurité a une règle qui fait référence à lui-même et je peux me connecter à partir de mon ordinateur portable ou de mon instance EC2.

John Dimm
la source
-3

règle d'entrée mysql devrait être comme ci-dessous

image C'est le problème avec le groupe de sécurité.

Nirmal Dhara
la source
3
Y a-t-il une raison pour laquelle vous remplacez une question vieille de cinq ans par la même réponse que celle-ci depuis des années? Donner l' 0.0.0.0/0accès à 3306n'est pas une bonne idée non plus.
ceejayoz
J'ai essayé de montrer aux utilisateurs ce qu'ils devraient changer et comment ils peuvent changer, vous savez qu'il y a beaucoup d'utilisateurs comme moi qui ne peuvent pas résoudre le problème en lisant ce qui précède. cela ne vous aidera peut-être pas, mais il y a des utilisateurs qui cherchent cela. vous avez voté à la baisse, car cela ne vous aide pas.
Nirmal Dhara
3
Mon vote négatif vient de dire que les gens devraient ouvrir MySQL à Internet. C'est une approche dangereuse.
ceejayoz
J? ai compris. Je viens de montrer l'endroit où ils peuvent éditer les groupes de sécurité, ils peuvent choisir dans la liste déroulante ce qu'ils veulent.
Nirmal Dhara