如何使用Web和工作层构建AWS Elastic Beanstalk生产和登台环境?

时间:2015-07-01 17:21:28

标签: amazon-web-services heroku elastic-beanstalk amazon-vpc

我计划将应用程序从Heroku转移到AWS Elastic Beanstalk。在Heroku上,我有两个不同的应用程序,一个用于分段,另一个用于生产,并且都有他们的web和worker dynos。

我想在AWS EB上设置类似的东西。我已经阅读了有关Web Tier和Worker Tier的区别,但是这里有一些问题:

我是否为生产和舞台设置了两个不同的应用程序?或者相同的应用程序和两个不同的环境?如果是这样,我将不得不创建4个环境,两个用于生产web / worker,两个用于暂存web / worker?什么是正确的结构?我将为Web和worker使用相同的Rails应用程序。在这种情况下,我是否必须单独部署它们,或者是否有命令将两个环境一起部署?

2 个答案:

答案 0 :(得分:3)

  

我将为web和worker使用相同的Rails应用程序。

这告诉我你应该有一个应用程序。应用程序管理应用程序版本,这基本上只是部署历史。

您需要创建4个环境。这允许您通过cname交换或通过部署以前部署的版本来“促进生产”。

您必须单独部署您的Web / worker,但您可以非常轻松地创建一个同时部署到两者的脚本。

答案 1 :(得分:1)

为了供将来参考,AWS Elastic Beanstalk稍后为该环境链接创建了一个解决方案:

https://aws.amazon.com/about-aws/whats-new/2015/11/aws-elastic-beanstalk-adds-support-for-environment-links/

使用该功能,我们现在能够使用相同的代码链接两个环境(因此我们只部署一次而不是两次)。要使工作程序运行工作进程和Web以运行Web服务器,您可以设置不同的环境变量并自定义EB初始化脚本以检查这些变量并运行特定进程。