ProgramaçãoAmazon ECSTarefas do - Amazon Elastic Container Service

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á.

ProgramaçãoAmazon ECSTarefas do

Amazon Elastic Container Service (Amazon ECS) é um sistema de estado compartilhado e 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 do cluster fornecidas pela 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 o kernel, os recursos de CPU, os recursos de memória ou a interface de rede elástica subjacente com outra tarefa.

O Amazon ECS oferece um programador de serviço (para tarefas e aplicativos de longa duração), a capacidade de executar tarefas manualmente (para trabalhos em lote ou tarefas únicas), com o Amazon ECS posicionando tarefas no seu cluster para você. Você pode especificar as estratégias de posicionamento de tarefas e restrições que lhe permitem executar tarefas na configuração escolhida como, por exemplo, distribuídas em zonas de disponibilidade. É possível também integrar com programadores personalizados ou de terceiros.

Programador de serviços

O programador de serviço é ideal para serviços e aplicativos sem estado em execução por muito tempo. O programador de serviços garante que a estratégia de agendamento que você especifica seja seguida e as reprograma quando uma falha (por exemplo, caso a infraestrutura subjacente falhe por algum motivo).

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

  • REPLICA — A estratégia de programação de réplica posiciona 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 restrições de posicionamento de tarefas para personalizar decisões de realização de tarefa. Para obter mais informações, consulte Replica.

  • DAEMON — A estratégia de programação do daemon implantará exatamente uma tarefa em cada instância de contêiner ativa que atender a todas as restrições de posicionamento de tarefas que você especificar 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.

    nota

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

O programador de serviços também se certifica de que as tarefas estejam registradas em um load balancer do Elastic Load Balancing. Você pode atualizar os serviços mantidos pelo programador de serviços, como implementar uma nova definição de tarefa ou alterar o número em execução de tarefas desejadas. Por padrão, o programador de serviço distribui tarefas entre zonas de disponibilidade, mas você pode usar estratégias de posicionamento da tarefa e restrições para personalizar decisões de posicionamento da tarefa. Para obter mais informações, consulte Serviços da Amazon ECS.

Tarefas em execução manual

A ação RunTask é indicada para processos como trabalhos em lotes que realizam o trabalho e acabam parando. 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. Usando RunTask, você pode permitir que a estratégia de posicionamento da tarefa padrão distribua tarefas aleatoriamente pelo cluster, o que minimiza as chances de uma única instância obter um número desproporcional de tarefas. Você também pode 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 independente e RunTask no Amazon Elastic Container Service API Reference.

Executando tarefas em umcron-como programar

Caso tenha tarefas a serem executadas em intervalos definidos no cluster, como uma operação de backup ou uma varredura de log, você pode usar o console do Amazon ECS para criar uma regra do Eventos do CloudWatch que executa uma ou mais tarefas no cluster nos momentos especificados. A regra do evento programado pode ser definida como um intervalo específico (executar a cada N minutos, horas ou dias) ou, para um agendamento mais complicado, você pode usar uma expressão cron. Para obter mais informações, consulte Tarefas programadas (cron).

Programadores personalizados

O Amazon ECS permite criar os próprios programadores que atendam às necessidades do negócio ou utilizar programadores de terceiros. Blox é um projeto de código aberto que dá mais controle sobre a maneira como os aplicativos em contêineres são executados no Amazon ECS. Ele permite criar programadores e integrar programadores de terceiros ao Amazon ECS enquanto utiliza o Amazon ECS para gerenciar e dimensionar por completo os clusters. Os programadores personalizados usam a operação de API StartTask para colocar tarefas em instâncias de contêiner específicas dentro do cluster.

nota

Programadores personalizados só são compatíveis com tarefas usando o tipo de inicialização do EC2. Se você estiver usando o tipo de inicialização Fargate para suas tarefas, a API StartTask não funcionará.

Colocação de tarefas

As ações RunTask e CreateService permitem especificar restrições de posicionamento de tarefas e estratégias de posicionamento de tarefas para personalizar a maneira como o Amazon ECS coloca as tarefas. Para obter mais informações, consulte Amazon ECSposicionamento de tarefa.