Atualização de um serviço do Amazon ECS usando o console - Amazon Elastic Container Service

Atualização de um serviço do Amazon ECS usando o console

É possível atualizar um serviço do Amazon ECS usando o console do Amazon ECS. A configuração atual de serviço já está preenchida automaticamente. É possível atualizar a definição de tarefa, a contagem de tarefas desejada, a estratégia do provedor de capacidade, a versão da plataforma, a configuração da implantação ou qualquer combinação destes itens.

Para obter informações sobre como atualizar a configuração de implantação azul/verde, consulte Atualização de uma implantação azul/verde do Amazon ECS usando o console.

Considere o seguinte ao usar o console:

Caso queira interromper temporariamente o serviço, defina Tarefas desejadas como 0. Em seguida, quando estiver tudo pronto para iniciar o serviço, atualize-o com a contagem original de Tarefas desejadas.

Considere o seguinte ao usar o console:

  • Você deve usar a AWS Command Line Interface para implantar um serviço que use qualquer um dos parâmetros a seguir:

    • Implantações azuis/verdes

    • Descoberta de serviços: você só pode visualizar a configuração da descoberta de serviços.

    • Política de rastreamento com uma métrica personalizada

    • Atualização de serviço: você não pode atualizar a configuração de rede awsvpc e o período de carência da verificação de integridade.

    Para obter informações sobre como atualizar um serviço usando a AWS CLI, consulte update-service na Referência da AWS Command Line Interface.

  • 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 de contêiner para que funcionem com as portas atualizadas.

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

  • Caso o seu serviço use um balanceador de carga, a configuração do balanceador de carga definido para o serviço quando criado não poderá ser alterada por meio do console. Em vez disso, é possível usar a AWS CLI ou o SDK para modificar a configuração do balanceador de carga. Para obter informações sobre como modificar a configuração, consulte UpdateService na Referência de APIs do Amazon Elastic Container Service.

  • Se você atualizar a definição de tarefa para o serviço, o nome do contêiner e a porta do contêiner especificados na configuração do balanceador de carga deverão permanecer na definição da tarefa.

É 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. Não é possível atualizar um serviço que usa uma versão da plataforma Linux para usar uma versão da plataforma Windows e vice-versa. 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, será possível 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. Use esse parâmetro para implantar sem usar capacidade adicional de cluster. Por exemplo, se o serviço tiver um número desejado de quatro tarefas e uma porcentagem de integridade mínima de 50%, o programador poderá interromper duas tarefas existentes para liberar a capacidade do cluster antes de iniciar duas 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 da 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 permitido de tarefas em um serviço no estado PENDING, RUNNING ou STOPPING 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. Use esse parâmetro para definir o tamanho do lote de implantação. Por exemplo, se o serviço tiver um número desejado de quatro tarefas e um valor máximo de porcentagem de 200%, o programador poderá iniciar quatro tarefas novas antes de interromper as quatro tarefas mais antigas. Isso ocorre desde que os recursos de cluster necessários para isso estejam disponíveis. O valor padrão da porcentagem máxima é 200%.

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.

O programador 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 de definição do serviço maximumPercent e desiredCount. Se uma tarefa for marcada como não íntegra, o programador de serviços iniciará primeiro uma tarefa de substituição. Então, acontece o seguinte.

  • Se o status de integridade da tarefa substituta for HEALTHY, o agendador do serviço interromperá a tarefa que não está íntegra

  • Se a tarefa de substituição tiver um status de integridade de UNHEALTHY, o programador 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 a desiredCount.

Se o parâmetro maximumPercent limitar o programador a iniciar uma tarefa de substituição primeiro, o programador 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 íntegras sejam substituídas por tarefas íntegras. 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 a desiredCount, as tarefas íntegras serão interrompidas aleatoriamente até que a contagem total de tarefas seja igual a desiredCount. Para obter mais informações sobre maximumPercent e desiredCount, consulte Parâmetros de definição de serviço.

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.

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.

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.

Para atualizar um serviço (console do Amazon ECS)
  1. Abra o console em https://console.aws.amazon.com/ecs/v2.

  2. Na página Clusters, escolha o cluster.

  3. Na página de detalhes do cluster, na seção Serviços, marque a caixa de seleção ao lado do serviço e escolha Atualizar.

  4. Para que seu serviço inicie uma nova implantação, selecione Force new deployment (Forçar nova implantação).

  5. Em Definição de tarefas, escolha a família de definição de tarefa e a revisão.

    Importante

    O console valida se a família de definição de tarefa e a revisão selecionadas são compatíveis com a configuração de computação definida. Se você receber um aviso, verifique a compatibilidade da definição de tarefa e a configuração de computação selecionadas.

  6. Em Tarefas desejadas, insira o número de tarefas que você deseja executar no serviço.

  7. Em Min running tasks (Mínimo de tarefas em execução), insira o limite inferior do número de tarefas do serviço que devem permanecer no estado RUNNING durante uma implantação, como uma porcentagem do número desejado de tarefas (arredondado para o número inteiro superior mais próximo). Para obter mais informações, consulte Configuração da implantação.

  8. Em Max running tasks (Máximo de tarefas em execução), insira o limite superior do número de tarefas do serviço que devem permanecer no estado RUNNING ou PENDING durante uma implantação, como uma porcentagem do número desejado de tarefas (arredondado para o número inteiro inferior mais próximo).

  9. Para configurar como o Amazon ECS detectará e lidará com falhas de implantação, expanda Deployment failure detection(Detecção de falhas de implantação) e escolha suas opções.

    1. Para interromper uma implantação quando as tarefas não podem ser iniciadas, selecione Use the Amazon ECS deployment circuit breaker) (Usar o disjuntor de implantação do Amazon ECS.

      Para que o software reverta automaticamente a implantação para o último estado de implantação concluído quando o disjuntor de implantação definir a implantação para um estado de falha, selecione Reverter em caso de falha.

    2. Para interromper uma implantação com base nas métricas da aplicação, selecione Usar alarmes do CloudWatch. Em seguida, em Nomes de alarmes do CloudWatch, escolha os alarmes. Para criar um alarme, acesse o console do CloudWatch.

      Para que o software reverta automaticamente a implantação para o último estado de implantação concluído quando um alarme do CloudWatch definir a implantação para um estado de falha, selecione Reverter em caso de falha.

  10. Para alterar as opções de computação, expanda Configuração de computação e faça o seguinte:

    1. Para serviços no AWS Fargate, em Platform version (Versão da plataforma), escolha a nova versão.

    2. Para serviços que usam uma estratégia de provedor de capacidade, em Estratégia de provedor de capacidade, faça o seguinte:

      • Para adicionar um provedor de capacidade adicional, escolha Adicionar mais. Em seguida, em Provedor de capacidade, escolha o provedor de capacidade.

      • Para remover um provedor de capacidade, à direita do provedor de capacidade, escolha Remover.

      Um serviço que usa um provedor de capacidade do grupo do Auto Scaling não pode ser atualizado para usar um provedor de capacidade do Fargate. Um serviço que usa um provedor de capacidade do Fargate não pode ser atualizado para usar um provedor de capacidade do grupo do Auto Scaling.

  11. (Opcional) Para configurar o ajuste de escala automático do serviço, expanda Ajuste de escala automático do serviço e especifique os parâmetros a seguir.

    1. Para usar a escalabilidade automática do serviço, selecione Service auto scaling (Escalabilidade automática do serviço).

    2. Em Número mínimo de tarefas, insira o limite inferior do número de tarefas a serem usadas pelo ajuste de escala automático. A contagem desejada não será inferior a essa contagem.

    3. Em Número máximo de tarefas, insira o limite superior do número de tarefas a serem usadas pelo ajuste de escala automático. A contagem desejada não ultrapassará essa contagem.

    4. Escolha o tipo de política. Em Tipo de política de ajuste de escala, escolha uma das opções a seguir.

      Para usar este tipo de política… Fazer isso...

      Monitoramento do objetivo

      1. Em Scaling policy type (Tipo de política de escalabilidade), escolha Target tracking (Rastreamento de destino).

      2. Em Policy name (Nome da política), insira o nome da política.

      3. Em Métrica de serviço do ECS, selecione uma das métricas a seguir.

        • ECSServiceAverageCPUUtilization: utilização média da CPU pelo serviço.

        • ECSServiceAverageMemoryUtilization: utilização média da memória pelo serviço.

        • ALBRequestCountPerTarget: número de solicitações concluídas por destino em um grupo de destino do Application Load Balancer.

      4. Em Target value (Valor de destino), insira o valor que o serviço manterá para a métrica selecionada.

      5. Em Aumentar a escala horizontalmente no período de espera, insira a quantidade de tempo, em segundos, após uma atividade de aumento na escala (adicionar tarefas) que deve ser concluída antes que outra atividade de aumento na escala possa ser iniciada.

      6. Em Reduzir a escala horizontalmente no período de espera, insira a quantidade de tempo, em segundos, após uma atividade de redução na escala (remover tarefas) que deve ser concluída antes que outra atividade de redução na escala possa ser iniciada.

      7. Para impedir que a política realize uma atividade de redução da escala na horizontal, selecione Turn off scale-in (Desativar a redução da escala na horizontal).

      8. • (Opcional) Selecione Desativar redução horizontal de escala se quiser que a política de ajuste de escala aumente a escala horizontalmente para ampliar o tráfego, mas não precisar que ela seja reduzida quando o tráfego diminuir.

      Escalabilidade em etapas
      1. Em Scaling policy type (Tipo de política de escalabilidade), escolha Step scaling (Escalabilidade em etapas).

      2. Em Nome da política, insira o nome da política.

      3. Em Alarm name (Nome do alarme), insira um nome exclusivo para o alarme.

      4. Em Métrica de serviço do Amazon ECS, escolha a métrica a ser usada para o alarme.

      5. Em Estatística, escolha a estatística de alarme.

      6. Em Período, escolha o período do alarme.

      7. Em Condição de alarme, escolha como comparar a métrica selecionada com o limite definido.

      8. Em Limite para comparar métricas e Período de avaliação para iniciar o alarme, insira o limite usado para o alarme e por quanto tempo avaliar o limite.

      9. Em Ações de escalabilidade, faça o seguinte:

        • Em Ação, selecione se deseja adicionar, remover ou definir uma contagem desejada específica para o serviço.

        • Se você decidir adicionar ou remover tarefas, em Valor, insira o número de tarefas (ou o percentual de tarefas existentes) para adicionar ou remover quando a ação de ajuste de escala for iniciada. Se você optar por definir a contagem desejada, insira o número de tarefas. Em Tipo, selecione se o Valor é um valor inteiro ou percentual da contagem desejada existente.

        • Em Limite inferior e Limite superior, insira o limite inferior e o limite superior do seu ajuste de escalabilidade de etapas. Por padrão, o limite inferior de uma política de adição é o limite do alarme e o limite superior é mais (+) infinito. Por padrão, o limite superior de uma política de remoção é o limite do alarme e o limite inferior é menos (-) infinito.

        • (Opcional) Adicione outras opções de escalabilidade. Escolha Adicionar nova ação de escalabilidade e repita as etapas de Ações de escalabilidade.

        • Em Período de espera, insira a quantidade de tempo, em segundos, para aguardar que uma atividade de ajuste de escala anterior entre em vigor. Para uma política de adição, esse é o momento após uma atividade de aumento horizontal de escala em que a política de ajuste de escala bloqueia as atividades de redução horizontal de escala e limita quantas tarefas podem ser ampliadas por vez. Para uma política de remoção, esse é o momento após uma atividade de redução horizontal de escala que precisa ser concluída antes que outras atividades do mesmo tipo possam iniciar.

  12. (Opcional) Para usar o Service Connect, selecione Turn on Service Connect (Ativar o Service Connect) e especifique o seguinte:

    1. Em Service Connect configuration (Configuração do Service Connect), especifique o modo cliente.

      • Se seu serviço executa uma aplicação cliente de rede que só precisa se conectar a outros serviços no namespace, escolha Client side only (Somente no lado do cliente).

      • Se seu serviço executa uma aplicação de rede ou de serviço Web e precisa fornecer endpoints para esse serviço e se conectar a outros serviços no namespace, escolha Client and server (Cliente e servidor).

    2. Para usar um namespace que não seja o namespace padrão do cluster, em Namespace, escolha o namespace do serviço.

  13. Caso a tarefa use um volume de dados compatível com a configuração na implantação, você pode configurar o volume expandindo Volume.

    O nome e o tipo do volume são configurados ao criar uma revisão de definição de tarefa e não podem ser alterados ao atualizar um serviço. Para atualizar o nome e o tipo do volume, você deve criar uma revisão de definição de tarefa e atualizar o serviço usando a nova revisão.

    Para configurar esse tipo de volume Faça o seguinte

    Amazon EBS

    1. Em Tipo de volume do EBS, escolha o tipo de volume do EBS que você deseja anexar à tarefa.

    2. Em Tamanho (GiB), insira um valor válido para o tamanho do volume em gibibytes (GiB). Você pode especificar um tamanho de volume mínimo de 1 GiB e máximo de 16.384 GiB. Esse valor é obrigatório, a menos que você forneça um ID de snapshot.

    3. Em IOPS, insira o número máximo de operações de entrada e saída (IOPS) que o volume deve oferecer. Esse valor é configurável somente em tipos de volumes io1, io2 e gp3.

    4. Em Throughput (MiB/s), insira o throughput que o volume deve fornecer, em mebibytes por segundo (MiBps ou MiB/s). Esse valor é configurável somente no tipo de volume gp3.

    5. Em ID do snapshot, escolha um snapshot de volume existente do Amazon EBS ou insira o ARN de um snapshot se quiser criar um volume usando um snapshot. Você também pode criar um volume vazio sem escolher ou inserir um ID de snapshot.

    6. Em Tipo de sistema de arquivos, escolha o tipo de sistema de arquivos que será usado para armazenamento e recuperação de dados no volume. Você pode escolher o sistema operacional padrão ou um tipo específico de sistema de arquivos. O padrão no Linux é XFS. Em volumes criados de um snapshot, você deve especificar o mesmo tipo de sistema de arquivos que o volume estava usando quando o snapshot foi criado. Se houver uma incompatibilidade no tipo do sistema de arquivos, a tarefa não será iniciada.

    7. Em Perfil de infraestrutura, escolha um perfil do IAM com as permissões necessárias para permitir que o Amazon ECS gerencie volumes do Amazon EBS em tarefas. Você pode anexar a política gerenciada AmazonECSInfrastructureRolePolicyForVolumes ao perfil ou usar a política como guia para criar e anexar sua própria política com permissões que atendam às suas necessidades específicas. Para obter mais informações sobre as permissões necessárias, consulte Perfil do IAM de infraestrutura do Amazon ECS.

    8. Em Criptografia, escolha Padrão se deseja usar a criptografia do Amazon EBS por meio das configurações padrão. Se a conta tiver a Criptografia por padrão configurada, o volume será criptografado com a chave do AWS Key Management Service (AWS KMS) especificada na configuração. Caso escolha Padrão e a criptografia padrão do Amazon EBS não estiver ativada, o volume não será criptografado.

      Caso escolha Personalizada, você pode especificar uma AWS KMS key de sua escolha para criptografia de volume.

      Caso escolha Nenhum, o volume não será criptografado, a menos que você tenha a criptografia por padrão configurada ou crie um volume usando um snapshot criptografado.

    9. Caso tenha escolhido Personalizada em Criptografia, você deve especificar a AWS KMS key que deseja usar. Em Chave do KMS, escolha uma AWS KMS key ou insira um ARN de chave. Se você optar por criptografar o volume usando uma chave simétrica gerenciada pelo cliente, verifique se tem as permissões corretas definidas na política do AWS KMS key. Para obter mais informações, consulte Data encryption for Amazon EBS volumes.

    10. (Opcional) Em Tags, você pode adicionar tags ao volume do Amazon EBS propagando tags da definição de tarefa ou do serviço ou fornecendo suas próprias tags.

      Se quiser propagar tags na definição de tarefa, escolha Definição de tarefa em Propagar tags em. Se quiser propagar tags do serviço, escolha Serviço em Propagar tags de. Caso escolha Não propagar ou se não selecionar um valor, as tags não são propagadas.

      Se quiser fornecer suas próprias tags, escolha Adicionar tag e forneça a chave e o valor de cada tag adicionada.

      Para obter mais informações sobre marcação de volumes do Amazon EBS, consulte Tagging Amazon EBS volumes.

  14. (Opcional) Para ajudar a identificar o serviço, expanda a seção Tags (Etiquetas) e configure suas etiquetas.

    • [Adicionar uma tag] Selecione Adicionar tag e faça o seguinte:

      • Em Chave, insira o nome da chave.

      • Em Valor, insira o valor da chave.

    • [Remover uma tag] Ao lado da tag, escolha Remove tag (Remover tag).

  15. Selecione Atualizar.