将Web层环境的RDS数据库链接到工作层环境弹性束

时间:2016-11-29 21:51:20

标签: ruby-on-rails amazon-web-services cron-task amazon-elastic-beanstalk

我正在努力使用我在AWS上成功部署的Web应用程序。一切都在Web层环境中正常工作。但是,我必须添加工作层环境来安排后台任务。 所以现在我的AWS应用程序有2个环境。一个是Web层,另一个是工作层。我没有为工作层创建数据库,因为我希望此环境使用Web层的RDS数据库。 如何指定工作层使用Web层的RDS数据库?

1 个答案:

答案 0 :(得分:1)

据我所知,Elastic Beanstalk并不是处理RDS的最佳解决方案。将RDS实例绑定到您的ElasticBeanstalk环境将适用于dev / test,但是将数据库实例的生命周期与应用程序环境的生命周期联系起来并不是最佳选择。

我建议简单地解耦RDS而不将其添加到ElasticBeanstalk,单独处理它。此方法允许您将多个环境连接到RDS实例,终止环境而不影响数据库生命周期,并使用蓝/绿部署方法方法执行连续更新。

您可以将数据库详细信息(主机,端口,用户,密码)作为环境变量传递给ElasticBeanstalk应用程序(由于安全风险,可能会出现问题)。

另一种方法是将连接字符串存储在您控制的S3存储桶中,并允许您的EC2实例通过EC2实例配置文件访问此S3存储桶。

您可以在Using Elastic Beanstalk with Amazon RDS文档中找到有关如何处理此问题的更多信息和示例。

如果上述内容对您不起作用,那么现在可能需要考虑使用CloudFormation以更加可控的方式管理应用程序生命周期,基础架构和依赖项。