Amazon ECS 任务放置策略 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Amazon ECS 任务放置策略

任务放置策略是一种算法,用于选择放置任务的实例,或要终止的任务。可以在运行任务或创建新服务时指定任务放置策略。也可以针对现有服务更新任务放置策略。有关更多信息,请参阅Amazon ECS 任务放置

策略类型

Amazon ECS 支持以下任务放置策略:

binpack

将任务放置在容器实例上,以保留最少的未使用 CPU 或内存。此策略最大限度地减少了正在使用的容器实例的数量。

当使用此策略并执行横向缩减操作时,Amazon ECS 将终止任务。它根据任务终止后留在容器实例上的资源量执行此操作。任务终止后剩下可用资源最多的容器实例将终止该任务。

random

任务随机放置。

spread

根据指定的值均匀放置任务。接受的值为 instanceId(或具有相同效果的 host)或应用于容器实例的任何平台或自定义属性,如 attribute:ecs.availability-zone

服务任务根据该服务的任务分布。独立任务根据同一任务组中的任务分布。有关任务组的更多信息,请参阅 任务组

当使用 spread 策略并采取横向缩减行动时,Amazon ECS 将选择要终止的任务,以保持可用性区域之间的平衡。在可用区域内,将随机选择任务。

策略示例

您可以使用以下操作指定任务放置策略:CreateServiceUpdateServiceRunTask

以下策略可在各可用区之间平均分配任务。

"placementStrategy": [ { "field": "attribute:ecs.availability-zone", "type": "spread" } ]

以下策略可在所有实例中平均分配任务。

"placementStrategy": [ { "field": "instanceId", "type": "spread" } ]

以下策略根据内存装填任务。

"placementStrategy": [ { "field": "memory", "type": "binpack" } ]

以下策略随机放置任务。

"placementStrategy": [ { "type": "random" } ]

以下策略跨可在多个可用区中平均分配任务,然后在每个可用区内的实例中平均分配任务。

"placementStrategy": [ { "field": "attribute:ecs.availability-zone", "type": "spread" }, { "field": "instanceId", "type": "spread" } ]

以下策略可在多个可用区中平均分配任务,然后根据每个可用区内的内存装填任务。

"placementStrategy": [ { "field": "attribute:ecs.availability-zone", "type": "spread" }, { "field": "memory", "type": "binpack" } ]