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.
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 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. O programador de serviço avalia as restrições de posicionamento de tarefas para executar tarefas e interromperá as que não atenderem às restrições de posicionamento. 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.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 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ônomae RunTask na Referência de API do Amazon Elastic Container Service.
Executar tarefas em uma programação do tipo cron
Se você tem tarefas a serem executadas em intervalos definidos no cluster, pode usar o console do Amazon ECS para criar um evento do EventBridge. Você pode executar tarefas para uma operação de backup ou uma varredura de log. O evento do EventBridge que você criar pode executar uma ou mais tarefas em seu cluster em horários especificados. 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 mais informações, consulte Tarefas programadas.
Programadores personalizados
No Amazon ECS, você pode criar seus próprios programadores ou usar programadores de terceiros. O Blox
Programadores personalizados só são compatíveis com tarefas hospedadas em instâncias do EC2. Se você usar o Amazon ECS no Fargate, a API StartTask não funcionará.
Posicionamento de tarefas
Use as ações RunTask
e CreateService
para especificar restrições e estratégias de posicionamento de tarefas. Elas personalizam a forma como o Amazon ECS posiciona e executa as tarefas. Para mais informações, consulte Posicionamento de tarefas do Amazon ECS.
Índice