首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在2个不同可用区的2个ec2实例之间分配2个任务?

如何在2个不同可用区的2个ec2实例之间分配2个任务?
EN

Stack Overflow用户
提问于 2017-07-14 23:14:12
回答 1查看 280关注 0票数 2

我有一个集群,比方说my-cluster。它有两个服务在运行。让我们称它们为my-services。每个服务都有1个任务在运行。my-task1和my-task2。

自动伸缩组启动2个EC2实例,启动EC2实例。我正在使用应用程序负载均衡器。

当我创建服务时,我选择了AZ-balance- Learn,它的描述是:“此模板将跨可用区和在可用区内分布任务跨实例分布任务。了解更多。策略:扩展(属性:ecs.ailability- zone ),扩展(InstanceId)”

我的EC2实例位于不同的可用区。但是,当我单击my-cluster并选择ECS-instances选项卡时,我看到两个任务都在一个容器实例上运行。另一个容器实例显示0个任务正在运行。

我期望有2个容器实例,每个实例都有一个任务在运行。

我的问题是,如果我选择了AZ-平衡-分散,这些任务不应该分散在两个独立的AZ上的EC2实例中吗?

我想设置它,这样所有的任务都分散在AZ之间,所以如果一个实例停止,另一个AZ中的另一个任务仍然在运行。但我似乎想不出该怎么做。也就是说,如果我创建了4个任务,它会将它们分散到两个实例中。一个任务2个任务,另一个任务2个任务。但是当我只有两个任务时,它会把它们都放在一个EC2实例中。

非常感谢您在解开这个谜团方面的帮助!

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-02-07 19:51:56

这是亚马逊没有让它完美工作的东西。我找到的最好的解决方法是将放置策略配置为在ec2之间随机传播。问题是,所有的放置策略都是在每个服务中设置的,所以如果我们配置为使用InstanceID传播,此服务中的任务将使用此设置,但其他服务不使用此信息并使用相同的策略传播,在相同的InstanceID中启动(可能是因为编号顺序)。

因此,我已经将所有服务配置为随机的,如果这些服务是可伸缩的,这不是一个好方法,但在我的例子中,我有24个服务,每个服务只有1个任务。使用随机策略,它们在所有集群实例之间传播。

代码语言:javascript
复制
"placementStrategy": [
    {
        "type": "random"
    }
]

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45106394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档