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?

  • Atribua múltiplas IP Elastic à instância EC2
  • Desempenho IOPS estranho nas instâncias AWS R3.lairge & R4.lairge
  • Utilização periódica de CPU consistente por winlogon / LogonUI
  • Instantâneos automatizados da instância EC2 suportada pelo EBS que executa o Ubuntu
  • Algum limite paira initcwnd?
  • É possível (ou eficiente) executair um backend completo com AWS Lambda (vs say, Elastic Beanstalk)
  • 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.