AWS Elastic Beanstalk - 为什么我会使用leader_only作为命令?

问题描述 投票:13回答:1

我正在编写一个django应用程序,我计划通过Elastic Beanstalk部署到AWS。我试图理解为什么我需要为我想要为我的应用运行的容器命令指定'leader_only'。有关这方面的更多细节可以在here找到。

它说:

此外,您可以使用leader_only。选择一个实例作为Auto Scaling组的领导者。如果leader_only值设置为true,则该命令仅在标记为leader的实例上运行。

如果我有几个实例运行我的应用程序,因为我想缩放它,不会使用'leader_only'只在一个实例上运行命令,而不影响其余的?我可能误解了它的目的,但这看起来并不理想,因为领导者的环境可能与其他实例不同,最终用户可能会得到不同的结果,具体取决于他们碰巧连接到哪个实例。

amazon-web-services elastic-beanstalk
1个回答
20
投票

从技术角度来看,弹性beanstalk是自动缩放组,当你部署一些东西时,你需要假设你的命令可能会在几个ec2实例上同时执行。

leader_only选项的主要目标是确保您的命令只在一个ec2实例上执行。它对于例如执行db迁移脚本,创建db等的用例非常有用,它们应该只在一个ec2上执行一次。所以leader_only只是一个标记,一些命令只会在这个实例上执行。

但是,您需要记住,leader属性在创建环境时设置一次,如果领导者死亡,并且在autoscaling组中没有任何领导者时被新实例可能的情况所取代。

© www.soinside.com 2019 - 2024. All rights reserved.