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应用程序.在这种情况下,我是否必须单独部署它们,还是有命令将两个环境一起部署?
我将为 web 和 worker 使用相同的 Rails 应用程序。
这告诉我你应该有一个应用程序。应用程序管理应用程序版本,这基本上只是部署历史记录。
您将需要创建 4 个环境。这允许您通过 cname 交换或通过部署以前部署的版本来“升级到 prod”。
您将不得不单独部署您的 web/worker,但您可以非常轻松地创建一个同时部署到两者的脚本。
为了供将来参考,AWS Elastic Beanstalk 后来为此创建了一个名为环境链接的解决方案:
有了这个功能,我们现在可以使用相同的代码链接两个环境(因此我们只部署一次而不是两次)。要使工作程序运行工作进程并让 Web 运行 Web 服务器,您可以设置不同的环境变量并自定义 EB 初始化脚本来检查这些变量并运行特定进程。