Como o Amazon ECS posiciona tarefas em instâncias de contêineres - Amazon Elastic Container Service

Como o Amazon ECS posiciona tarefas em instâncias de contêineres

Você pode usar o posicionamento de tarefas para configurar o Amazon ECS para colocar suas tarefas em instâncias de contêiner que atendam a determinados critérios, por exemplo, uma zona de disponibilidade ou um tipo de instância.

Veja estes componentes de posicionamento de tarefas:

  • Estratégia de posicionamento de tarefas: o algoritmo que seleciona instâncias de contêiner para posicionamento de tarefas ou encerramento de tarefas. Por exemplo, o Amazon ECS pode selecionar instâncias de contêiner aleatoriamente ou pode selecionar instâncias de contêiner de modo que as tarefas sejam distribuídas uniformemente em um grupo de instâncias.

  • Grupo de tarefas: um grupo de tarefas relacionadas, por exemplo, tarefas de banco de dados.

  • Restrição de posicionamento de tarefas: essas regras devem ser atendidas para posicionar uma tarefa em uma instância de contêiner. Se a restrição não for atendida, a tarefa não é posicionada e permanece no estado PENDING. Por exemplo, é possível usar uma restrição para posicionar tarefas somente em um tipo de instância específico.

O Amazon ECS tem algoritmos diferentes para os tipos de execução.

Tipo de inicialização do EC2

Para tarefas que usam o tipo de execução do EC2, o Amazon ECS deve determinar onde posicionar a tarefa com base nos requisitos especificados na definição da tarefa, como CPU e memória. Do mesmo modo, quando você reduz proporcionalmente a contagem de tarefas, o Amazon ECS deve determinar que tarefas serão concluídas. É possível aplicar estratégias e limitações de posicionamento de tarefas para personalizar como o Amazon ECS posiciona e finaliza tarefas.

As estratégias padrão de posicionamento de tarefas dependem de você executar as tarefas manualmente (tarefas autônomas) ou em um serviço. Para tarefas executadas como parte de um serviço Amazon ECS, a estratégia de colocação de tarefas será spread usando attribute:ecs.availability-zone. Não existe uma restrição padrão de colocação de tarefas para tarefas em serviços. Para ter mais informações, consulte Programação de contêineres no Amazon ECS.

nota

As estratégias de posicionamento de tarefas têm como base o melhor esforço. O Amazon ECS ainda tenta posicionar tarefas mesmo quando a opção de posicionamento ideal está indisponível. No entanto, as restrições de posicionamento de tarefas são vinculativas e podem impedir o posicionamento delas.

É possível usar estratégias e restrições de posicionamento de tarefas em conjunto. Por exemplo, você pode usar uma estratégia de posicionamento de tarefas e uma restrição de posicionamento de tarefas para distribuir tarefas entre zonas de disponibilidade e tarefas de compartimento com base na memória dentro de cada zona de disponibilidade, mas apenas para instâncias G2.

Quando o Amazon ECS posiciona as tarefas, ele usa o processo a seguir para selecionar as instâncias de contêiner:

  1. Identificar instâncias de contêiner que atendam aos requisitos de CPU, GPU, memória e porta na definição de tarefa.

  2. Identificar instâncias de contêiner que atendam às limitações de posicionamento de tarefas.

  3. Identificar instâncias de contêiner que atendam às estratégias de posicionamento de tarefas.

  4. Selecionar instâncias de contêiner para o posicionamento de tarefas.

Tipo de inicialização do Fargate

Não há suporte para estratégias e restrições de posicionamento de tarefas para as tarefas que usam o tipo de inicialização do Fargate. O Fargate fará o possível para distribuir tarefas em zonas de disponibilidade acessíveis. Se o provedor de capacidade incluir o Fargate e o Fargate Spot, o comportamento da distribuição será independente para cada provedor de capacidade.