Daemons gerenciados do Amazon ECS
Os Daemons Gerenciados do Amazon ECS permitem que você realize a implantação e gerencie agentes de software, como agentes de segurança, observabilidade e rede, em toda a sua infraestrutura de contêineres nas Instâncias Gerenciadas do Amazon ECS. Os daemons gerenciados separam o gerenciamento do ciclo de vida dos daemons das operações da aplicação. Você pode realizar a implantação, atualização e monitoramento de agentes de forma independente, sem precisar reimplantar workloads ou coordenar alterações entre serviços.
Criticidade do daemon
É possível configurar cada daemon gerenciado como crítico ou não crítico, dependendo se uma falha no daemon deve fazer com que o Amazon ECS encerre a instância do contêiner.
-
Crítico: O padrão. O Amazon ECS inicia a tarefa de daemon antes de alocar as tarefas da aplicação na instância; caso a tarefa de daemon seja interrompida ou entre em estado não íntegro, o Amazon ECS libera e realiza a troca da instância do contêiner.
-
Não crítico: Defina o parâmetro
criticalcomofalse. A tarefa do daemon opera independentemente da integridade da instância do contêiner. Se uma tarefa não crítica do daemon falhar, parar ou ficar não íntegra, o Amazon ECS manterá a instância do contêiner ativa. As tarefas existentes das aplicações continuam em execução, e o Amazon ECS continua adicionando novas tarefas das aplicações a elas. Um daemon não crítico nunca bloqueia o registro de instâncias; portanto, as tarefas da aplicação podem ser alocadas imediatamente, mesmo que o daemon não consiga iniciar.
Como funcionam os daemons gerenciados
Para usar os Daemons Gerenciados, primeiro registre uma definição de tarefa de daemon. Uma definição de tarefa de daemon é um modelo que descreve os contêineres que compõem um daemon. Depois de registrar uma definição de tarefa de daemon, crie um daemon e faça-o associado a um cluster e a um ou mais provedores de capacidade do Amazon ECS Managed Instances. O Amazon ECS garante, então, que exatamente uma tarefa de daemon seja executada em cada instância do Amazon EC2 provisionada por meio desses provedores de capacidade.
Os daemons não iniciam instâncias de forma independente. Quando você executa uma tarefa de aplicação em um provedor de capacidade do Amazon ECS Managed Instances, o Amazon ECS provisiona uma instância do Amazon EC2, inicia a tarefa do daemon e só então transfere a tarefa da aplicação para RUNNING. O Amazon ECS utiliza esse pedido para todos os daemons, independentemente do nível de criticidade, de modo que funções transversais, como registro em log, rastreamento e coleta de métricas, estejam operacionais antes que sua aplicação comece a processar solicitações.
A criticidade determina o que o Amazon ECS faz quando uma tarefa de daemon não inicia ou é interrompida posteriormente. No caso de um daemon crítico, uma tarefa que não consiga iniciar impede que a instância se torne ativa. Uma tarefa que seja interrompida ou passe a ser não íntegra após a instância estar ativa faz com que o Amazon ECS desligue e faça a troca da instância. Esse comportamento de reparo automático garante uma cobertura confiável dos daemons sem a necessidade de intervenção manual.
Um daemon não crítico nunca bloqueia a instância e nunca aciona uma drenagem. A instância fica ativa mesmo que a tarefa do daemon não consiga iniciar e permanece ativa caso a tarefa do daemon seja interrompida ou passe a ser não íntegra posteriormente. As tarefas da sua aplicação continuam em execução, e o Amazon ECS continua alocando novas tarefas da aplicação na instância.
Quando você atualiza um daemon para uma nova revisão da definição de tarefa, o Amazon ECS realiza uma implantação gradual em todas as instâncias dos provedores de capacidade associados. Durante a implantação, o Amazon ECS desativa simultaneamente uma porcentagem configurável de instâncias, provisiona instâncias de troca com o daemon atualizado e substitui automaticamente as tarefas do seu serviço Amazon ECS. O Amazon ECS oferece proteção integrada contra sobrecargas. Você pode definir um tempo de espera e alarmes do CloudWatch para que o Amazon ECS monitore a implantação após a atualização de todas as instâncias e reverta automaticamente se surgirem problemas. O Amazon ECS emite um evento no EventBridge e registra um log de ação do serviço quando uma tarefa de daemon não consegue iniciar, tanto para daemons críticos quanto para os não críticos.
Benefícios principais
-
Gerenciamento de ciclo de vida desacoplado: atualize os daemons independentemente das implantações de aplicações.
-
Cobertura garantida: O Amazon ECS inicia a tarefa do daemon antes das tarefas da aplicação em cada instância, de modo que as funções transversais já estejam operacionais antes que sua aplicação comece a processar as solicitações. No caso de um daemon crítico, uma tarefa de daemon que não consiga iniciar também impede que a instância seja registrada; portanto, uma instância nunca atende a tarefas da aplicação sem seu daemon.
-
Atualizações de versão confiáveis: quando você atualiza a versão de um daemon, o Amazon ECS implementa a atualização em todas as instâncias dos provedores de capacidade associados, com proteção integrada por disjuntor de circuito e reversão automática para garantir que todas as instâncias executem a revisão desejada.
-
Melhor utilização dos recursos: a execução de uma única tarefa de daemon por instância elimina o modelo de sidecar por tarefa, reduzindo a sobrecarga de recursos em todo o cluster.
-
Reparo automático de instâncias: No caso de um daemon crítico, se a tarefa do daemon for interrompida ou ficar não íntegra, o Amazon ECS esvazia e realiza a troca automática dessa instância de contêiner. Isso garante uma cobertura confiável dos daemons sem intervenção manual.
-
Continuidade das workloads: Os daemons não críticos mantêm as workloads da sua aplicação em execução ininterrupta, mesmo que uma tarefa do daemon falhe, seja interrompida ou fique não íntegra.
nota
O Amazon ECS oferece uma estratégia de agendamento DAEMON para serviços do Amazon ECS com o tipo de lançamento Amazon EC2. Daemons Gerenciados é um novo recurso desenvolvido para as Instâncias Gerenciadas do Amazon ECS com o objetivo de simplificar as implantações de daemons e oferecer garantias mais sólidas de disponibilidade dos daemons.
Introdução
Para começar, registre uma definição de tarefa de daemon especificando sua imagem de contêiner e, em seguida, crie um daemon com provedores de capacidade associados em seu cluster. Você pode usar o Console de gerenciamento da AWS, a AWS CLI, o CloudFormation ou os SDKs do AWS. Para obter instruções detalhadas, consulte Criação e gerenciamento de daemons.