2017-09-19 4 views
0

J'ai essayé de configurer un pipeline de données entre un compartiment S3 et un environnement Elasitcbeanstalk qui inclut une instance MySQL RDS (tous dans le même VPC).Impossible d'établir la connexion avec jdbc: échec de liaison de communication mysql

Je reçois l'échec:

The last packet sent successfully to the server was 0 milliseconds ago. 
The driver has not received any packets from the server. 
amazonaws.datapipeline.database.ConnectionFactory: Unable to establish 
connection to jdbc:mysql://***.us-west-2.rds.amazonaws.com:3306/mydata 
Communications link failure 

Je crois que le problème est que je dois permettre à la canalisation de données pour accéder à mon MySQL RDS, mais ne peut pas comprendre comment. J'ai défini le champ myEc2RdsSecurityGrps sur le nom du groupe de sécurité répertorié pour l'instance RDS sous EC2> Groupes de sécurité, mais cela n'a pas aidé.

L'instance RDS a la valeur IAM DB Authentication Enabled définie sur Oui.

En outre, tout nouveau à des rôles IAM ici, mais deux ont été créés comme ceci: Roles > Create Role > Data Pipeline > EC2 Role for Data Pipeline (Fournit un accès à S3, DynamoDB, et d'autres services pour les instances EC2 que pipeline de données lance) et aussi Roles > Create Role > Data Pipeline > Data Pipeline (Permet de données et pipeline de données gérées Clusters EMR pour appeler les services AWS en votre nom).

Ai-je manqué une étape?

Répondre

0

La sécurité pour l'instance RDS doit avoir le port DB ouvert au groupe de sécurité des coureurs de tâche EC2 dans la ligne de données.

Pour créer un groupe de sécurité pour une instance EC2 dans un VPC

  1. Ouvrez la console Amazon EC2 à https://console.aws.amazon.com/ec2/.
  2. Dans le volet de navigation, cliquez sur Groupes de sécurité.
  3. Cliquez sur Créer un groupe de sécurité.
  4. Spécifiez un nom et une description pour le groupe de sécurité.
  5. Sélectionnez votre VPC dans la liste, puis cliquez sur Créer.

Notez l'ID du nouveau groupe de sécurité.

Si vous exécutez Task Runner sur votre propre ordinateur, notez son adresse IP publique, en notation CIDR. Si l'ordinateur se trouve derrière un pare-feu, notez toute la plage d'adresses de son réseau. Vous aurez besoin de cette adresse plus tard.

Ensuite, créez des règles dans les groupes de sécurité des ressources qui autorisent le trafic entrant pour les sources de données auxquelles Task Runner doit accéder. Par exemple, si Task Runner doit accéder à un cluster Amazon Redshift, le groupe de sécurité du cluster Amazon Redshift doit autoriser le trafic entrant provenant de la ressource.

Pour ajouter une règle au groupe de sécurité pour une base de données RDS

  1. Ouvrez la console Amazon RDS à https://console.aws.amazon.com/rds/.
  2. Dans le volet de navigation, cliquez sur Instances.
  3. Cliquez sur l'icône de détails de l'instance de base de données. Sous Sécurité et réseau, cliquez sur le lien vers le groupe de sécurité, qui vous amène à la console Amazon EC2. Si vous utilisez l'ancienne conception de console pour les groupes de sécurité, passez à la nouvelle conception de la console en cliquant sur l'icône qui s'affiche en haut de la page de la console.
  4. Dans l'onglet Entrant, cliquez sur Modifier, puis sur Ajouter une règle. Spécifiez le port de base de données que vous avez utilisé lors du lancement de l'instance de base de données. Commencez à taper l'ID du groupe de sécurité ou de l'adresse IP utilisée par la ressource qui exécute Task Runner dans Source.
  5. Cliquez sur Enregistrer.

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-resources-vpc.html#dp-vpc-security-groups

+0

Merci, ça y était. Initialement, j'ajoutais le "Group Id" au lieu du "Group Name" au pipeline. – kan