无法访问数据库 - Elastic Beanstalk + RDS + VPC(虚拟私有云)

时间:2017-08-31 17:12:26

标签: amazon-web-services amazon-ec2 amazon-rds amazon-elb amazon-vpc

在尝试通过Elastic Beanstalk(ELB)移动网站时,我选择了t2系列EC2实例,并且这样做,被迫创建了一个虚拟私有云(VPC)。这个站点通过RDS连接到MySQL数据库,我没有运气让ELB站点访问数据库。

我试过检查一下: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.RDS.html?icmpid=docs_elasticbeanstalk_console

上面的链接首先说“适用于开发和测试环境,但对于生产环境并不理想”,这让我感到困惑,因为它没有说明什么会更好 - 我需要连接数据库到网站!

它有各种各样的信息,我尝试了几点建议连接到现有数据库(不创建新数据库)。它在“修改RDS实例的安全组的入口规则”部分的第6步中提到访问入口选项卡,这对我来说并不存在。

我尝试通过“安全组”下的RDS仪表板编辑与数据库关联的安全组,但它没有列出与ELB启动的VPC或EC2实例关联的安全组。我试过推IP地址,弹性IP,但仍无法让网站看到数据库。

我很茫然。任何人都可以解释如何通过t2实例所需的VPC将ELB分布式EC2实例与RDS数据库连接起来吗?

1 个答案:

答案 0 :(得分:0)

声明"这适用于开发和测试环境,但对于生产环境并不理想。只是指让ElasticBeanstalk为您创建RDS实例。这可以通过配置"数据库"创建新的EB环境时的部分。

让EB为您创建RDS实例的缺点是您的Web实例和数据库实例将紧密连接,如果您终止Web实例,您的数据库也将被终止,包括所有快照。 / p>

然而,我认为你正在采取"外部" "外部数据库的一部分"从字面上看。您的RDS实例绝对应该与您的Web实例位于同一个VPC中。但是,您应该创建它并手动将Web实例连接到它。连接到数据库涉及设置五个环境变量(如下所列)和配置安全组以允许从Web实例到数据库的连接。

您需要在Web实例上设置的环境变量如下:

  • RDS_HOSTNAME=instancename.region.rds.amazonaws.com
  • RDS_DB_NAME=databasename
  • RDS_PASSWORD=databasepassword
  • RDS_USERNAME=databaseuser
  • RDS_PORT=5432