Programar tarefas do Amazon ECS - Amazon ECS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Programar tarefas do Amazon ECS

O Amazon Elastic Container Service (Amazon ECS) é um sistema de estado compartilhado e de simultaneidade otimista que oferece recursos de programação flexíveis para as tarefas e os contêineres. Os programadores do Amazon ECS utilizam as mesmas informações de estado de cluster que as da API do Amazon ECS para tomar decisões apropriadas de posicionamento.

Cada tarefa que usa o tipo de inicialização do Fargate tem seu próprio limite de isolamento e não compartilha os recursos subjacentes com outras tarefas. Esses recursos incluem o kernel, os recursos de CPU, os recursos de memória subjacentes e a interface de rede elástica.

O Amazon ECS oferece um programador de serviços para tarefas e aplicações de longa duração. Ele também oferece a capacidade de executar tarefas manualmente para trabalhos em lote ou tarefas únicas. O Amazon ECS fornece um programador sempre que coloca tarefas no cluster. Você pode especificar as estratégias e restrições de posicionamento de tarefas para executar tarefas que melhor atendam às suas necessidades. Por exemplo, você pode especificar se as tarefas são executadas em várias zonas de disponibilidade ou em uma única zona de disponibilidade. E, opcionalmente, você pode integrar tarefas com seus próprios programadores personalizados ou de terceiros.

Programador de serviços

O programador de serviços é adequado para serviços e aplicações sem estado de longa duração. O programador de serviços garante que a estratégia de programação que você especifica seja seguida e reprograma as tarefas em caso de falha. Por exemplo, se a infraestrutura subjacente apresentar falha, o programador de serviços poderá reprogramar as tarefas.

O agendador de serviços também substitui tarefas consideradas não íntegras após uma falha na verificação de integridade do contêiner ou na verificação de integridade do grupo-alvo do balanceador de carga. Essa substituição depende dos parâmetros maximumPercent desiredCount de definição do serviço. Se uma tarefa for marcada como não íntegra, o agendador de serviços iniciará primeiro uma tarefa de substituição. Se a tarefa de substituição tiver um status de integridade deHEALTHY, o agendador de serviços interromperá a tarefa não íntegra. Se a tarefa de substituição tiver um status de integridade deUNHEALTHY, o agendador interromperá a tarefa de substituição não íntegra ou a tarefa não íntegra existente para que a contagem total de tarefas seja igual. desiredCount Se o maximumPercent parâmetro limitar o agendador de iniciar uma tarefa de substituição primeiro, o agendador interromperá aleatoriamente uma tarefa não íntegra, uma de cada vez, para liberar capacidade e, em seguida, iniciará uma tarefa de substituição. O processo de iniciar e parar continua até que todas as tarefas não saudáveis sejam substituídas por tarefas saudáveis. Depois que todas as tarefas não íntegras forem substituídas e somente as tarefas íntegras estiverem em execução, se a contagem total de tarefas exceder adesiredCount, as tarefas íntegras serão interrompidas aleatoriamente até que a contagem total de tarefas seja igualdesiredCount. Para obter mais informações sobre maximumPercent edesiredCount, consulte Parâmetros de definição de serviço.

nota

Esse comportamento não se aplica às tarefas executadas e mantidas por serviços que usam o tipo de implantação de atualização contínua. Durante uma atualização contínua, o agendador de serviços primeiro interrompe as tarefas não íntegras e, em seguida, inicia as tarefas de substituição.

Há duas estratégias de programador de serviços disponíveis:

  • REPLICA: a estratégia de programação de réplica coloca e mantém o número desejado de tarefas no seu cluster. Por padrão, o programador de serviço distribui tarefas por zonas de disponibilidade. Você pode usar estratégias e limitações de posicionamento de tarefas para personalizar decisões de posicionamento de tarefa. Para obter mais informações, consulte Réplica.

  • DAEMON: a estratégia de programação do daemon implanta exatamente uma tarefa em cada instância de contêiner ativa que atenda a todas as restrições de posicionamento de tarefas que você especifica no seu cluster. Ao usar essa estratégia, não há necessidade de especificar um número desejado de tarefas, uma estratégia de posicionamento de tarefas ou usar políticas de Auto Scaling do serviço. Para obter mais informações, consulte Daemon no Guia do desenvolvedor do Amazon Elastic Container Service.

    nota

    As tarefas do Fargate não são compatíveis com a estratégia de programação do DAEMON.

O programador de serviços, opcionalmente, também se certifica de que as tarefas estejam registradas em um balanceador de carga do Elastic Load Balancing. Você pode atualizar os serviços mantidos pelo programador de serviços. Isso pode incluir a implantação de uma nova definição de tarefa ou a alteração do número de tarefas desejadas que estão sendo executadas. Por padrão, o programador de serviços distribui tarefas em várias zonas de disponibilidade. Entretanto, você pode usar estratégias e limitações de posicionamento de tarefas para personalizar decisões de posicionamento de tarefas. Para obter mais informações, consulte Serviços do Amazon ECS.

Tarefas em execução manual

A ação RunTask é adequada para processos, como trabalhos em lote que realizam o trabalho e são interrompidos. Por exemplo, você pode ter uma chamada de processo RunTask quando o trabalho entra em uma fila. A tarefa extrai o trabalho da fila, realiza o trabalho e acaba saindo. Ao usar o RunTask, você pode permitir que a estratégia de posicionamento da tarefa padrão distribua tarefas aleatoriamente pelo cluster. Isso minimiza as probabilidades de uma única instância obter um número desproporcional de tarefas. Também é possível usar RunTask para personalizar a maneira como o programador coloca tarefas usando estratégias de posicionamento da tarefa e restrições. Para obter mais informações, consulte Executar uma tarefa autônoma no console clássico do Amazon ECS e RunTaskna Referência de API do Amazon Elastic Container Service.

Executar tarefas em uma programação do tipo cron

Se você tiver tarefas para executar em intervalos definidos em seu cluster, poderá usar o EventBridge Scheduler para criar um agendamento. Você pode executar tarefas para uma operação de backup ou uma varredura de log. O EventBridge agendamento do Agendador que você cria pode executar uma ou mais tarefas em seu cluster em horários específicos. Seu evento programado pode ser definido para um intervalo específico (executar a cada N minutos, horas ou dias). Caso contrário, para agendamento mais complicado, você pode usar uma expressão do cron. Para obter mais informações, consulte Tarefas programadas.