2017-10-19 21 views
0

J'ai une application ElasticBeanstalk qui utilise Docker pour exécuter une petite API PHP Laravel.L'application docker élastique beanstalk ne peut pas se connecter à mysql

L'application ne peut pas se connecter à MySQL lors de l'exécution dans ElasticBeanstalk.

La base de données MySQL est une instance AWS RDS accessible au public.

J'ai exécuté mon conteneur Docker localement et l'application peut se connecter très bien.

Quand j'ElasticBeanstalk à déployer l'application ne peut pas se connecter ...

Quelqu'un peut-il me diriger dans une direction pour aider à débugger?

SOLUTION

Pour toute autre personne qui trébuche sur ce point:

La solution a été de créer un nouveau groupe de sécurité pour les deux instances EC2 et la base de données RDS. Les deux groupes de sécurité ont ouvert l'accès via le port 3306 pour les instances et la base de données.

J'ai également veillé à ce que les instances EC2 soient disponibles sur chaque sous-réseau et dans le même VPC que ma base de données. Tiré des réponses ci-dessous et un peu d'aide d'un ami SysOps à moi.

Répondre

0

Vous pouvez vérifier les règles de groupe de sécurité EC2 attachées à Elastic Beanstalk pour autoriser TCP au port 3306 pour le type MYSQL.

+0

Merci les gars! C'était le groupe de sécurité, nécessaire pour autoriser le trafic sur le port 3306 sur les instances EC2 et la base de données et cela a fait l'affaire – MattDavies

0

Il y a de fortes chances que votre IP ec2 ne soit pas associée à une IP publique. Si vous essayez de vous connecter à l'adresse IP publique de RDS sans une adresse IP publique sur l'instance ec2, vous ne pourrez pas le faire. L'instance ec2 aura besoin d'une adresse IP publique ou aura besoin d'une connectivité Internet externe via NAT.

+0

Intéressant .. Je n'ai pas donné aux IP publiques d'instances mais je les ai rendues disponibles sur tous les sous-réseaux et dans le même VPC que la base de données. Semblait faire l'affaire! – MattDavies