Como automatizar a atualização do agente do OS / ECS em uma instância do EC2 no ambiente ECS Auto Scaling?

1
Primeiro: eu sinto que ainda não entendi alguns dos conceitos fundamentais da AWS, então, por favor, tenha paciência comigo, se essa pergunta for noobish.

Eu tenho a seguinte configuração na AWS:

  • 1 ECS-Cluster com 1 único serviço
  • O cluster está configurado para usar uma única instância do EC2
  • Esta instância do EC2 faz parte de um grupo de AutoScaling, que é baseado em uma configuração de inicialização específica. (O Cluster Setup configurou assim, o que faz sentido, eu acho).

Desenvolvi alguns preconceitos / condições

  • Eu não me importo com a instância do EC2, porque meu serviço é independente de máquinas
  • Meu serviço só precisa ser executado em uma instância por vez. Eu só uso o ECS para ter uma maneira simples de executar um aplicativo dockerizado.
  • Eu não me importo com o tempo de inatividade em horários específicos.
  • Existe um IP elástico predefinido que deve ser usado com o serviço.
  • Eu quero que esse serviço seja o mais automatizado possível. Quando algo dá errado, podemos consertar as coisas (o tempo de atividade não é tão crítico), mas eu nunca quero SSH para a instância do EC2 ou qualquer coisa assim.

Com a ajuda do CloudWatch e do Lambda , configurei as seguintes tarefas:

A instância é identificada pelo nome do cluster, que é automaticamente adicionado à tag Name.

  • Uma vez por semana, a instância do cluster é reinicializada. Isso renova certificados e configuração, porque o serviço faz isso na inicialização. (Eu provavelmente também poderia ter agendado o serviço para ser morto e reiniciado dentro do cluster de alguma forma ...)
  • Toda vez que uma nova instância EC2 do cluster for iniciada, será atribuído o IP elástico predefinido.
  • Uma vez por mês, a instância do EC2 é encerrada para ser automaticamente substituída por uma nova, iniciada pelo Auto Scaling Group.

Agora, minha esperança era que, uma vez que uma nova instância fosse criada pelo Auto Scaling Group, ela teria o melhor e mais recente AMI, incluindo o agente ECS mais recente.

Corrija-me se estiver errado, mas quando analisei a Configuração de inicialização para este grupo de Auto Scaling, percebi que esse não seria o caso, porque sempre leva a AMI configurada.

Minha pergunta geral é: De que uso tem essa configuração, quando preciso fazer check-in manualmente de vez em quando (quando exatamente?) para atualizar a AMI na Configuração de inicialização e então encerrar a instância para ter uma nova substituí-lo?

Eu entendo que muitas pessoas provavelmente não querem automatizar as atualizações do sistema operacional em um cluster de produção, porque querem testá-lo primeiro. Mas ainda assim, pode-se querer ter um ambiente de preparação, onde as atualizações do sistema operacional são aplicadas automaticamente. Por que eu uso uma plataforma altamente automatizável quando ainda preciso implantar atualizações do sistema manualmente. Isso é um mal-entendido conceitual do meu lado?

    
por Thomas Ebert 06.10.2017 / 15:58

0 respostas