Ainda não implementei isso, mas estou pensando em usar a On-the -fly Reconfiguração de NGiNX Plus . Eu estou pensando que o AMI, ou o gerenciamento de configuração (Puppet, Salt ou tal) que configura uma instância do Auto Scaling Group, poderia alcançar a API de reconfiguração do NGiNX (talvez, por meio de um nome de domínio Route53 interno para que nenhum IP fixo precisa ser usado) e adicione-se ao cluster upstream do proxy reverso. Depois disso, a verificação de saúde integrada do NGiNX assumirá a instância [adicionada] e a descartará caso se torne indisponível. Esta parece ser a solução mais limpa e não há atraso na adição da instância, e quase nenhum atraso em descartá-la, uma vez que o NGiNX Plus apresenta uma verificação de integridade fora da banda.
Essa abordagem evita a necessidade de configurar um sistema de descoberta automática (cônsul, servo ou semelhante), o que, para configurações menores, muitas vezes parece ter muita sobrecarga, tanto nos termos de configuração / administração quanto nas instâncias necessárias do EC2. O cônsul, por exemplo, requer um mínimo de três instâncias para ser estável. O servo talvez pudesse ser executado nas próprias instâncias do ASG, mas ainda há a sobrecarga de mantê-lo, e se o ASG desce para uma ou duas instâncias, você perderia o quorum.
Por fim, isso pode ser combinado com a notificação automática de alterações do grupo do Auto Scaling, talvez no (s) servidor (es) NGiNX usado (s) para o balanceamento de carga. Um ouvinte acionado por tal notificação (isso pode ser o que o Upendra também se referiu) poderia adicionar instantaneamente a nova instância ao NGiNX por meio da API de modificação dinâmica. Além do custo do NGiNX Plus, isso nos leva a imaginar por que alguém usaria o Elastic Load Balancer com seus inúmeros problemas em primeiro lugar.
Editar 2015-12-07: ngx_openresty 's balancer-by-lua ( veja este tópico do GitHub ) oferece uma outra solução possível de código aberto para servidores de adição / remoção a quente do grupo upstream do NGiNX. Eu ainda não experimentei isso, mas queria adicionar uma menção aqui para alguém tropeçar neste post.