EC2 - Como você diz ao ELB quando a máquina está “pronta”?

5

Eu tenho uma configuração de autoescala com monitoramento e tudo está bem. O processo de implantação de código agora está bem na mão e basicamente faz isso.

  1. Crie um novo launch_config que defina o commit do git para puxar
  2. Atualize o grupo de escala automática com a nova configuração de lançamento.
  3. Expanda o tamanho mínimo dos servidores para ~ 2x o que temos.
  4. Aguarde que todos estejam on-line
  5. Diminua a escala e os antigos são derrubados.

O problema que estou vendo é que, enquanto estamos "esperando que eles entrem online", eles estão relatando "saudável" e "em serviço" antes de estarem "prontos" para o serviço, pois estão atualizando os pacotes e puxando o pacote. código fonte relevante. Este tempo varia muito de 2 minutos para > 15 minutos por instância do EC2.

O que eu estou procurando é uma maneira de você definir o sinalizador "in service / healtny" manualmente ou uma estratégia melhor para lidar com esse atraso.

Observarei que quando a instância é disparada, o Nginx é iniciado automaticamente. É isso que determina se a instância é saudável? Existe tão pouca documentação (que eu posso encontrar) sobre este processo de boot para pronto - qualquer ajuda seria apreciada.

Isso está por trás de um ELB, se isso ajudar. As verificações de integridade estão ativadas "/". Eu me pergunto se é tão simples assim ...

Obrigado

    
por rh0dium 31.08.2012 / 01:08

2 respostas

3

A verificação de integridade do Elastic Load Balancer determina se o ELB envia tráfego para qualquer instância específica. / p>

O que você quer fazer é muito simples:

Não inicie o servidor da web em suas instâncias até terminar de criá-las e configurá-las.

    
por 31.08.2012 / 01:58
3

Você pode configurar facilmente um URI que estará ativo na sua instância do EC2 e definir a verificação de integridade do ELB para chamá-lo. Até que a verificação de integridade URI retorne um código de status 200, a instância não estará ativa no ELB para receber tráfego.

Na maioria dos casos, o padrão é apenas consultar o servidor para o URI /, mas você pode alterar para que seja o que desejar. No meu caso / irá falhar se a configuração do webapp para ele não estiver pronta para o tráfego. Você também pode apontar para uma página CGI ou PHP que faria uma verificação do sistema e retornaria com um bom código de status 200 quando tudo estiver pronto.

    
por 31.08.2012 / 06:09