Atualizar um serviço - Amazon Elastic Container Service

Atualizar um serviço

É possível atualizar um serviço existente para alterar alguns dos parâmetros de configuração do serviço, como o número de tarefas mantidas por um serviço ou a definição de tarefa usada pelas tarefas ou, se as tarefas estiverem usando o tipo de inicialização do Fargate, será possível alterar a versão da plataforma usada pelo serviço. Se você tiver um aplicativo que precisa de mais capacidade, é possível expandir seu serviço. Se você tiver capacidade não utilizada para reduzir, é possível reduzir o número de tarefas desejadas no serviço e liberar recursos.

Se quiser usar uma imagem de contêiner atualizada para suas tarefas, você poderá criar uma revisão de definição de tarefa com essa imagem e implantá-la no serviço usando a opção Forçar nova implantação no console.

O programador de serviço usa os parâmetros de porcentagem íntegros mínimos e máximos (na configuração de implantação para o serviço) para determinar a estratégia de implantação.

Se um serviço estiver usando o tipo de implantação de atualização contínua (ECS), a porcentagem de integridade mínima representa um limite menor no número de tarefas em um serviço que devem permanecer no estado RUNNING durante uma implantação, como uma porcentagem do número desejado de tarefas (arredondado para cima, para o número inteiro mais próximo). O parâmetro também se aplica enquanto qualquer instância de contêiner estiver no estado DRAINING se o serviço contiver tarefas usando o tipo de inicialização do EC2. Esse parâmetro permite implantar sem usar a capacidade adicional de cluster. Por exemplo, se o serviço tiver um número desejado de 4 tarefas e uma porcentagem íntegra mínima de 50%, o programador poderá interromper 2 tarefas existentes para liberar a capacidade do cluster antes de iniciar 2 novas tarefas. As tarefas para serviços que não usam um load balancer serão consideradas íntegras se estiverem no estado RUNNING. As tarefas para serviços que usam um load balancer são consideradas íntegras se estiverem com o status RUNNING e forem relatadas como íntegras pelo load balancer. O valor padrão para a porcentagem mínima de integridade é 100%.

Se um serviço estiver usando o tipo de implantação de atualização contínua (ECS), o parâmetro porcentagem máxima representa um limite superior no número de tarefas em um serviço que é permitido no estado RUNNING ou PENDING durante uma implantação, como uma porcentagem do número desejado de tarefas (arredondado para baixo, para o menor número inteiro mais próximo). O parâmetro também se aplica enquanto qualquer instância de contêiner estiver no estado DRAINING se o serviço contiver tarefas usando o tipo de inicialização do EC2. Esse parâmetro permite que você defina o tamanho dos lotes de implantação. Por exemplo, se o serviço tiver um número desejado de 4 tarefas e um valor máximo de porcentagem de 200%, o programador poderá iniciar 4 tarefas novas antes de interromper as 4 tarefas mais antigas. Isso é fornecido desde que os recursos de cluster necessários para isso estejam disponíveis. O valor padrão para a porcentagem máxima é 200%.

Se um serviço estiver usando o tipo de implantação azul/verde (CODE_DEPLOY) e tarefas que estão usando o tipo de inicialização do EC2, os valores de porcentagem de integridade mínima e porcentagem máxima serão definidos como os valores padrão. Elas são usadas apenas para definir os limites inferior e superior do número de tarefas no serviço que permanecem no RUNNING estado enquanto as instâncias de contêiner estão no DRAINING estado. Se as tarefas do serviço usarem o tipo de inicialização do Fargate, os valores de porcentagem de integridade mínima e de porcentagem máxima não serão usados. Atualmente, eles ficam visíveis ao descrever o seu serviço.

Quando o programador de serviço substitui uma tarefa durante uma atualização, o serviço primeiro eliminará a tarefa do load balancer (se usado) e esperará as conexões se dissiparem. Em seguida, o equivalente de docker stop será enviado para os contêineres executados na tarefa. Isso resulta em um sinal SIGTERM e um tempo limite de 30 segundos, após o qual SIGKILL é enviado, e os contêineres são interrompidos à força. Se o contêiner administra o sinal SIGTERM com tranquilidade e sai dentro de 30 segundos após recebê-lo, nenhum sinal SIGKILL é enviado. O programador de serviço inicia e interrompe tarefas conforme definidas por suas configurações de porcentagem íntegras mínimas e máximas.

Importante

Se você alterar as portas usadas por contêineres em uma definição de tarefa, talvez seja necessário atualizar os grupos de segurança da instância do contêiner para que funcionem com as portas atualizadas.

Caso o serviço use um load balancer, a configuração do load balancer definido para o serviço quando criado não pode ser alterada. Se você atualizar a definição de tarefa para o serviço, o contêiner e a porta de contêiner especificados quando o serviço foi criado deverão permanecer na definição da tarefa.

Para alterar o load balancer, o nome do contêiner, ou a porta do contêiner associada a uma configuração do load balancer de serviço, você deve criar um novo serviço.

O Amazon ECS não atualiza automaticamente os grupos de segurança associados aos balanceadores de carga do Elastic Load Balancing ou às instâncias de contêiner do Amazon ECS.