访问通过 Elastic Beanstalk 创建的 RDS 数据库

Posted

技术标签:

【中文标题】访问通过 Elastic Beanstalk 创建的 RDS 数据库【英文标题】:Access RDS database created through Elastic Beanstalk 【发布时间】:2013-10-15 19:14:09 【问题描述】:

我创建了一个 Elastic Beanstalk 环境,该环境创建了一个 EC2 实例和一个 RDS 数据库。

它创建了安全组和一切。 我也知道配置:

数据库端点:xxxxx 端口:3306 主用户名:uuuuu

但我无法从 ec2 内部或外部使用 mysql 连接到它。

我收到连接被拒绝错误。

有什么帮助吗?

【问题讨论】:

安全组中的某些内容必须关闭。 要在 EC2 外部连接,只需为您的 RDS 实例正在使用的安全组的 IP 设置一个 INBOUND 规则。 【参考方案1】:

如果您仍然遇到此问题,请检查您的安全组。我陷入了一个类似的问题,并通过允许从运行 ec2 实例的安全组连接到运行 RDS 数据库的安全组来解决它。

因此,如果您的 EC2 实例在安全组 sg-randomc2name 中,而您的 rds 实例在安全组 sg-randomrdsname 中,请编辑 sg-randomrdsname 的入站规则以允许来自 sg-randomc2name 的连接。

【讨论】:

我已经让 Elastic Beanstalk 完美地设置了所有内容,而其他时候则没有那么多。这一切都在安全组中。 您能否详细说明,如何:“编辑 sg-randomrdsname 的入站规则以允许来自 sg-randomec2name 的连接”【参考方案2】:

对于未来的观众,现在有一个pretty nice tutorial,介绍如何将现有 ElasticBeanstalk 实例与现有 RDS 数据库(MySQL 等)连接起来。

理想情况下,您不应在设置 ElasticBeanstalk 环境时创建数据库,因为这会将两者绑定在一起,目前无法在不终止环境的情况下解除绑定。

【讨论】:

【参考方案3】:

我遇到了类似的问题:我的 EB 应用程序的 RDS MySQL 实例不会响应连接尝试。我刚刚重新创建了一个新数据库并在我的 EB 应用程序中引用它。我没有理由知道我单独创建的实例的性能会比 EB 向导创建的实例差。

【讨论】:

以上是关于访问通过 Elastic Beanstalk 创建的 RDS 数据库的主要内容,如果未能解决你的问题,请参考以下文章

Django Elastic Beanstalk Deploy 显示 404

如何从 Elastic Beanstalk 实例访问 S3 存储桶中的 docker 配置文件

AWS Elastic BeanStalk SignatureDoesNotMatch

使用 Elastic Beanstalk 创建时的 AWS EC2 .pem 证书

如何在删除空S3 Elastic Beanstalk时修复“拒绝访问”?

从 .ebextensions 配置文件访问 Elastic Beanstalk 环境属性