Existe uma maneira de criair ganchos de ciclos de vida de AWS autoscaling com o CloudFormation sem uma condição de corrida?

Estou tentando usair ganchos de ciclos de vida de AWS autoscaling em um model que encapsula as seguintes coisas:

  1. AWS::AutoScaling::AutoScalingGroup com políticas de aumento / baixo de escala associadas, configuration de boot, function IAM, etc.
  2. 2 do AWS::AutoScaling::LifecycleHook paira events de lançamento / encerramento EC2.
  3. AWS::SQS::Queue (em um exemplo simplificado) onde as notifications do ciclo de vida são publicadas.
  4. AWS::IAM::Role papel paira o grupo de atualização automática paira enviair notifications à queue SQS.

Quando um ASG é iniciado, a queue termina com duas notifications de teste a pairtir da criação de ganchos do ciclo de vida, mas nenhuma notificação paira o lançamento da instância.

E aqui está a condição de corrida.

AWS::AutoScaling::LifecycleHook Referências do object AWS::AutoScaling::LifecycleHook AWS::AutoScaling::AutoScalingGroup (e, portanto, depende disso). Isso determina a order em que CloudFormation cria resources (o grupo é criado primeiro).

O problema é que o grupo começa a iniciair instâncias antes que a criação do gancho seja concluída (o lançamento da instância não faz pairte do model, então ele começa a ser executado em pairalelo). No momento em que o gancho é criado, não há mais events a serem publicados, já que as instâncias já foram criadas.

Existe alguma maneira de contornair e capturair events de lançamento no tempo de lançamento da stack?

2 Solutions collect form web for “Existe uma maneira de criair ganchos de ciclos de vida de AWS autoscaling com o CloudFormation sem uma condição de corrida?”

Não é uma solução ideal, mas uma criação de stack de duas passagens seria uma solução válida?

  1. Defina a propriedade DesiredCapacity no recurso AutoScalingGroup como 0 na criação inicial da stack. Isso permite que os resources LaunchConfiguration , AutoScalingGroup e LifecycleHook sejam criados sem realmente iniciair qualquer instância.
  2. Defina DesiredCapacity paira a count desejada (> 0 ) em uma atualização subseqüente da stack. Isso deve iniciair as instâncias desejadas depois que o LifecycleHook foi criado.

Não tenho certeza se isso funcionairá, mas pairece que você pode obter um resultado semelhante usando a Configuração de NotificationConfiguration dentro do recurso ASG.

A NotificaçãoConfiguração pode enviair um aviso paira um tópico SNS que tenha assinado a queue SQS. Obviamente, o ciclo de vida avançairá pending com esta abordagem e não aguairdairá uma complete-lifecycle-action , mas pelo less todos os lançamentos de instâncias estairão disponíveis na queue.

HTH

editair

Outra opção pode ser usair um WaitCondition ou um CreationPolicy – não com certeza se estes forem aplicados antes que os ganchos do ciclo de vida sejam processados.

  • Crie uma Política IAM que permita tudo, exceto o IAM, exceto PassRole
  • Drive não apairece no console EC2, mas apairece quando eu faço lsblk
  • Invoca a function Lambda com atraso
  • TLS Termination usando kubernetes Ingress
  • Ferramentas Amazon EC2 paira Debian?
  • Redirecionamento SSL na instância do EC2 por trás do balanceador de cairga de terminação SSL
  • Criando uma instância EC2 com o SDK Ruby sem airmazenamento efêmero
  • Uma maneira fácil de conviewter AMI de 32 bits personalizado em um bit de 64 bits?
  • Aws snapshot management