web-dev-qa-db-fra.com

Connexion à l'instance Amazon RDS via l'instance EC2 à l'aide de MySQL Workbench

Dans AWS, un VPC est configuré avec un hôte Bastion. Le bastion Host est une seule instance EC2 avec une adresse publique via laquelle vous pouvez SSH sur n'importe quel autre serveur du VPC.

J'ai créé une instance RDS MySQL dans le VPC et j'aimerais y établir une connexion à l'aide de MySQL Workbench. J'ai suivi les étapes détaillées ici , cependant, dans "Étape 6: Configuration de la configuration SSH distante", il me demande de "Fournir le DNS public de l'instance Amazon EC2" (c'est-à-dire l'hôte bastion).

MySQL Workbench vérifie ensuite certaines ressources MySQL sur ce serveur. Cependant, ce n'est pas correct à mon avis car j'ai fourni l'adresse de l'hôte bastion, sur laquelle MySQL n'est pas installé. Par conséquent, les deux derniers vérifications pour "Vérifier l'emplacement des commandes de démarrage/d'arrêt" et "Vérifier le fichier de configuration MySQL" échouent.

J'ai ensuite essayé d'utiliser l'adresse de point de terminaison de l'instance MySQL RDS, mais sans succès (comme elle se trouve dans le sous-réseau privé, elle n'est donc pas publiquement adressable).

Il semble que beaucoup de gens ont cela en place, mais qu'est-ce que je fais mal ici?

24
iamyojimbo

Je me bats avec quelque chose de similaire depuis des semaines maintenant. Je viens de le comprendre il y a quelques minutes. 

  1. Dans mysql workbench, créez une nouvelle instance de serveur.
  2. Pour l’adresse de l’hôte distant, entrez votre adresse de noeud final (xxxxxx.us-east-1.rds.amazonaws.com)
  3. Pour la méthode de connexion, sélectionnez "TCP/IP standard sur SSH"
  4. Le nom d'hôte SSH est le DNS public de votre instance EC2.
  5. J'ai spécifié ec2-user (je pense que cela varie selon le type d'instance EC2) comme nom d'utilisateur, puis le fichier de clé téléchargé correspondant à la paire de clés que l'instance utilisait. 
  6. Le nom d'hôte mysql est le noeud final de l'instance RDS. 
  7. Le nom d'utilisateur est le nom d'utilisateur de l'instance RDS (par exemple, ebroot)

En utilisant cela, j'ai pu me connecter. Cependant, je n'ai pas utilisé VPC dans ma configuration. J'espère que cela t'aides. Bonne chance!

33
AndrewSmiley

Puisque vous utilisez un VPC, Voici comment il devrait être configuré pour accepter les connexions à partir de votre sous-réseau uniquement:

  1. sélectionnez le groupe de sécurité VPC utilisé par votre instance de base de données
  2. ajoutez une nouvelle règle pour autoriser tous les ips de votre sous-réseau privé sur le port 3306

    ex: règle INBOUND 3306 (MYSQL) 172.33.11.0/24

  3. utilisez mysql workbench tcp/ssh et cela fonctionnera (suivez AndrewSmiley answer).

11
john

Je recommande d'utiliser le tunneling SSH:

  1. Créer une session PuTTY sur l'hôte bastion
  2. Sous Connexion -> SSH -> Tunnels, indiquez le port source: 3306, Destination: votre nom de point de RDSend: 3306.
  3. N'oubliez pas de cliquer sur Ajouter!
  4. Connectez-vous à l'hôte bastion avec ces paramètres
  5. Ajoutez une nouvelle connexion dans MySQL Workbench et dirigez-la vers votre port localhost 3306 (en supposant que vous n'exécutiez rien sur 3306 sur votre ordinateur client local).
  6. Mettez votre nom d'utilisateur et mot de passe pour votre instance RDS
5
user3067703

C'est pour l'atelier UBUNTU Mysql

Vous devez ajouter une règle entrante au groupe de sécurité lié au RDS pour accepter les demandes sur le port 3306 du bastion/saut/toute instance (machine) . Une adresse IP publique doit être associée à la machine. 

Confirmez sur votre machine si vous pouvez vous connecter avec le RDS ou non avant de tenter de configurer le tunnel SSH via MYSQL Workbench. 

Pour tester la connectivité, exécutez: 

mysql -u{username} -p{password} -h ***-db-***.cmmaberpdqoc.***.rds.amazonaws.com -P 3306

Remplacez {nom d'utilisateur}, {mot de passe} et hébergez vos informations d'identification.

Suivez la photo et vous devriez pouvoir vous connecter.

 Pictorial representation of the details to be entered.

1
CodeShadow

Vous pouvez créer un tunnel SSH dans votre hôte Bastion (instance EC2) pour transférer les ports de votre ordinateur local vers l'instance RDS distante.

sur mac/linux, voici la commande (pour Windows, suivez les instructions dans le lien ci-dessous):

ssh -L 3306:myinstance.123456789012.us-east-1.rds.amazonaws.com:3306  your_c2_ip

vous pouvez ensuite vous connecter à Workbench en utilisant les paramètres suivants:

  • méthode de connexion: TCP standard

  • nom d'hôte: localhost

  • port 3306

Cet article explique la méthode plus en détail; https://userify.com/blog/howto-connect-mysql-ec2-ssh-tunnel-rds/

1
Yasir

C'est ce qui a résolu le problème pour moi. Sur le tableau de bord RDS, examinez le groupe de sécurité de votre instance. Cliquez dessus pour accéder à la page du groupe de sécurité. 

Bien que cela indique "Tout le trafic" pour les entrées et les sorties, cliquez sur Editer et assurez-vous que la source indique Mon IP. Je ne recommanderais pas d'utiliser toutes les adresses IP car cela l'ouvrirait à n'importe qui sur Internet. Si vous n'avez pas d'adresse IP statique, veillez à actualiser ce champ une fois que la connexion a cessé de fonctionner.

Après cela, j'ai pu me connecter aux instances AWS RDS T2.

0
Basil Abbas

Si vous voulez vraiment utiliser la connectivité VPC d'AWS et ne pas autoriser les IP publiques, procédez comme suit.

Si vous avez un groupe de sécurité auquel sont assignés à la fois votre EC2 et votre RDS, ajoutez une règle entrante pour mysql 3306 sur TCP, mais dans le champ source, ne mettez pas IP ou le sous-réseau, mais l'ID du groupe de sécurité. c'est-à-dire sg-9829f3d2.

J'ai personnellement deux groupes de sécurité sur VPC.

Le premier, le groupe de sécurité 1, est utilisé par l'instance EC2 et n'autorise que les ports requis pour EC2, à savoir 80 et 22.

Le deuxième groupe, le groupe de sécurité 2, n’est utilisé que par les instances RDS et contient une règle pour autoriser mysql (3302). Le champ source est défini sur l’id du groupe de sécurité 1.

Tous les tunnels SSH de Mysql Workbench fonctionnent également avec les deux groupes de sécurité.

0
Skin