Estratégias de posicionamento de tarefas do Amazon ECS - Amazon Elastic Container Service

Estratégias de posicionamento de tarefas do Amazon ECS

Uma estratégia de posicionamento de tarefas é um algoritmo para selecionar instâncias para o posicionamento de tarefas ou tarefas para término. As estratégias de posicionamento de tarefas podem ser especificadas durante a execução de uma tarefa ou a criação de um novo serviço. As estratégias de posicionamento de tarefas também podem ser atualizadas para os serviços existentes. Para obter mais informações, consulte . Posicionamento de tarefas do Amazon ECS.

Tipos de estratégia

O Amazon ECS é compatível com as seguintes estratégias de posicionamento de tarefas:

binpack

As tarefas são colocadas em instâncias de contêiner para deixar a menor quantidade de CPU ou memória não utilizada. Essa estratégia minimiza o número de instâncias de contêiner em uso.

Quando essa estratégia for usada e uma ação de redução for executada, o Amazon ECS encerrará as tarefas com base na quantidade de recursos que serão deixados na instância de contêiner após o encerramento da tarefa. A instância de contêiner que terá os recursos mais disponíveis após o encerramento da tarefa fará com que essa tarefa seja encerrada.

random

As tarefas são colocadas aleatoriamente.

spread

As tarefas são colocadas uniformemente com base no valor especificado. Os valores aceitos são instanceId, (ou host, que tem o mesmo efeito), ou qualquer plataforma ou atributo personalizado que seja aplicado a uma instância de contêiner, como attribute:ecs.availability-zone.

As tarefas de serviço são distribuídas com base nas tarefas desse serviço. Tarefas autônomas são distribuídas com base nas tarefas do mesmo grupo de tarefas. Para obter mais informações sobre grupos de tarefas, consulte Grupos de tarefas.

Quando a estratégia spread for usada e uma ação de redução for executada, o Amazon ECS selecionará tarefas para encerrar que mantenham um equilíbrio entre as Zonas de disponibilidade. Dentro de uma zona de disponibilidade, as tarefas serão selecionadas aleatoriamente.

Exemplo de estratégias

Você pode especificar estratégias de posicionamento de tarefas com as seguintes ações: CreateService, UpdateService e RunTask.

A estratégia a seguir distribui tarefas uniformemente em zonas de disponibilidade.

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

A estratégia a seguir distribui tarefas uniformemente em todas as instâncias.

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

O pacote de estratégias a seguir agrupa tarefas com base na memória.

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

A estratégia a seguir posiciona tarefas aleatoriamente.

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

A estratégia a seguir distribui tarefas uniformemente em zonas de disponibilidade, em seguida, distribui as tarefas uniformemente entre as instâncias em cada Zona de disponibilidade.

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

A estratégia a seguir distribui tarefas uniformemente em zonas de disponibilidade, em seguida agrupa as tarefas com base na memória em cada Zona de disponibilidade.

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