1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 我在答案中假设这些任务在不同的定义中(即,您有一个小型任务的任务定义,另一个/多个用于需要16GB RAM的大型任务)。在这种情况下,我会简单地创建一个不同的ASG(用作不同的集群容量提供程序),并为“每个服务”设置容量提供程序(即,为1到8GB RAM的任务设置一个,为16GB RAM及以上的任务设置另一个,如果需要,再设置一个用于中间任务)。由于ASG由ECS驱动,您只需要为每个ASG拥有1个启动模板或重用1个启动模板并用覆盖(最好使用3个不同的启动模板)。
我了解到,考虑到您已经拥有了位置策略,这似乎有些多余,但肯定它会防止ECS在竞赛条件下部署小实例(即,首先为小型任务获取实例类型),并将大型作业的ASG清晰地隔离开来。这也可以帮助未来的配置:如果您需要更大的磁盘用于更大的作业,或者需要GPU,那么您只需要更改一个LT/ASG(并反映到容量提供程序中)而不是为所有LT/ASG更改它或为不需要这些的任务付费GPU实例。
容量提供程序的好处是您可以将其定义到集群中并在服务级别进行“覆盖”,因此您的集群可以有4个容量提供程序,默认为其中之一(基础/权重分配),同时也可以让一些服务特别使用它们自己的配置。希望这可以帮助您:)例如,使用[x-ecs](https://docs.compose-x.io/syntax/compose_x/ecs.details/ecs.html#capacityproviderstrategy)可以执行
相关内容
- AWS 官方已更新 1 年前
- AWS 官方已更新 3 个月前
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前