弹性beanstalk docker app无法连接到mysql

时间:2017-10-19 08:56:00

标签: mysql amazon-web-services docker elastic-beanstalk

我有一个ElasticBeanstalk应用程序,它使用Docker运行一个小型的Laravel PHP API。

在ElasticBeanstalk中运行时,应用程序无法连接到MySQL。

MySQL DB是一个公开可用的AWS RDS实例。

我在本地运行我的Docker容器,应用程序可以正常连接。

当我部署到ElasticBeanstalk时,应用程序无法连接...

有人能指点我帮忙调试吗?

对于其他任何偶然发现此事的人:

解决方案是为EC2实例和RDS数据库创建新的安全组。这两个安全组通过端口3306为实例和数据库打开了访问权限。

我还确保EC2实例在每个子网和与我的数据库相同的VPC中可用。

取自下面的答案以及我的SysOps朋友的帮助。

2 个答案:

答案 0 :(得分:1)

您的ec2实例很可能没有分配公共IP。如果您尝试在ec2实例上没有公共IP的情况下连接到RDS的公共IP,您将无法连接。

ec2实例要么需要公共IP,要么需要通过NAT进行外部互联网连接。

答案 1 :(得分:1)

您可能需要检查附加到Elastic Beanstalk的EC2安全组规则,以允许端口3306上的TCP用于MYSQL类型。