Cloud formation - atualizar uma pilha atrás de um elb não atualiza a AMI

1

Estamos acionando nossas instâncias do AWS EC2 usando a formação de nuvens. Temos 3 pilhas diferentes - teste, encenação e produção. Nosso fluxo de trabalho para atualizar as imagens de qualquer uma das pilhas é o seguinte:

  1. Atualizar uma instância de "mestre de ouro"
  2. Instantâneo do mestre de ouro em uma imagem de disco
  3. Altere a referência ami em nossa configuração de formação na nuvem (por meio de um arquivo json) para uma determinada pilha e update da pilha.

Isso reduz as instâncias na pilha + re-provisiona-as com a nova imagem de disco.

Não tivemos problemas com nossas pilhas de teste ou de preparação, que contêm uma única instância ec2 cada. Cada vez que atualizamos, a imagem é substituída sem nenhum problema.

Nossa pilha de produção não parece estar funcionando da mesma maneira :-(. Ela contém (pelo menos) duas instâncias situadas atrás de um balanceador de carga. Quando atualizamos essa pilha da mesma forma, as instâncias ec2 não são atualizada imediatamente (ou seja, após a conclusão da atualização, as caixas ainda estão sendo executadas a partir da imagem de disco anterior.) A boa notícia é que as novas imagens são usadas quando as balanças automáticas do balanceador de carga.

Poderia haver um conflito entre as regras de balanceamento de carga e a formação de nuvens?

Qualquer ideia seria muito apreciada

Exemplos:

Pilha de testes: link

Pilha de produção: link

    
por Rob Squires 01.08.2013 / 19:25

1 resposta

5

Isso é por design e documentado na AWS :: AutoScaling: : Guia do usuário LaunchConfiguration :

Important

When you update a LaunchConfiguration resource, AWS CloudFormation will delete that resource and create a new one with the updated properties and a new name. This update action does not deploy any change across the running EC2 instances in the auto scaling group. In other words, an update simply replaces the LaunchConfiguration so that when the auto scaling group launches new instances, they will get the updated configuration, but existing instances will continue to run with the configuration that they were originally launched with. This works the same way as if you made similar changes manually to an auto scaling group.

Eu recomendo que, em sua pilha de testes, você crie o modelo exatamente como você tem para produção, apenas ajuste os valores para reduzir o custo, por exemplo, MinSize , MaxSize e DesiredCapacity são 1, etc.

    
por 02.08.2013 / 21:46