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

Ric*_*cif 7 heroku amazon-web-services amazon-vpc amazon-elastic-beanstalk

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

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

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

Nic*_*ich 5

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

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

您将需要创建 4 个环境。这允许您通过 cname 交换或通过部署以前部署的版本来“升级到 prod”。

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


Ric*_*cif 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 初始化脚本来检查这些变量并运行特定进程。

  • 我知道您是原始发帖人,但您的回答并没有真正回答问题。它解释了如何让工作人员和网络相互通信,但它没有回答您有关如何部署、如何拥有不同环境的任何问题,也没有提及如何在 AWS 上“构建”。 (5认同)