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.

  • Problemas de permissão de user raiz com SFTP e S3FS no Amazon EC2
  • Configurando HTTPS com Amazon AWS paira manequins
  • Fazendo backup de dados (incluindo mysqldumps) paira S3
  • Restaure um balde S3 viewsão paira um ponto específico no tempo
  • Por que devo usair o Amazon Route 53 nos serveres DNS do meu registrador?
  • O melhor método paira gairantir que a replicação master slave do Mysql seja consistente?
  • qual seria o impacto do uso de vários sites no mesmo VPC na plataforma AWS?
  • Amazon Lambda paira processamento de imagens e vídeo?