elastic beanstalk docker应用程序无法连接到mysql
我有一个ElasticBeanstalk应用程序,它使用Docker运行一个小型的Laravel PHP API 在ElasticBeanstalk中运行时,应用程序无法连接到MySQL MySQL DB是一个公开可用的AWS RDS实例 我已经在本地运行了Docker容器,应用程序可以正常连接 当我部署到ElasticBeanstalk时,应用程序无法连接 有人能告诉我一个方向来帮助调试这个吗 解决方案 对于任何其他偶然发现这一点的人: 解决方案是为EC2实例和RDS数据库创建一个新的安全组。这两个安全组通过端口3306为实例和数据库打开了访问权限 我还确保EC2实例在每个子网中都可用,并且与我的数据库位于同一VPC中elastic beanstalk docker应用程序无法连接到mysql,mysql,amazon-web-services,docker,amazon-elastic-beanstalk,Mysql,Amazon Web Services,Docker,Amazon Elastic Beanstalk,我有一个ElasticBeanstalk应用程序,它使用Docker运行一个小型的Laravel PHP API 在ElasticBeanstalk中运行时,应用程序无法连接到MySQL MySQL DB是一个公开可用的AWS RDS实例 我已经在本地运行了Docker容器,应用程序可以正常连接 当我部署到ElasticBeanstalk时,应用程序无法连接 有人能告诉我一个方向来帮助调试这个吗 解决方案 对于任何其他偶然发现这一点的人: 解决方案是为EC2实例和RDS数据库创建一个新的安全组。
摘自下面的答案和我的一位SysOps朋友的一点帮助。您的ec2实例很可能没有分配公共ip。如果您试图在ec2实例上没有公共IP的情况下连接到RDS的公共IP,您将无法连接
ec2实例要么需要一个公共ip,要么需要通过NAT进行外部internet连接 您可能需要检查附加到Elastic Beanstalk的EC2安全组规则,以允许MYSQL类型在端口3306处使用TCP。谢谢大家!正是安全组,需要允许EC2实例和数据库上的端口3306上的通信量,并且完成了trick@MattDavies那是什么意思?你是怎么做到的?很有趣。。我没有给实例提供公共IP,但是我确实让它们在所有子网和数据库所在的VPC中可用。好像是在耍花招!安全组规则说:“默认情况下,安全组允许所有出站流量”…我有同样的问题,为什么不让我连接?这里有一个相关链接,应该在OP中:这个链接也是:Hi@AlexanderMills这是去年的事,所以我的记忆模糊,但是,我认为“安全组允许所有出站流量”是真的。您需要在您的EC2实例和RDS DB上都允许3306上的入站流量。而且两者都应该在同一个VPC中。。。并且在同一子网上可用。这对你有帮助吗?@MattDavies在这种情况下,你如何设置docker的数据库地址?请分享您是如何定义db address环境变量的。