O dimensionamento automático do ElasticBeanstalk causa 502 Bad Gateway

2

Estamos usando o AWS ElasticBeanstalk para servir nosso aplicativo Ruby on Rails e ativamos recentemente o escalonamento automático. O dimensionamento automático funciona conforme o esperado, mas há um breve período de tempo em que imediatamente após o dimensionamento automático, algumas das novas instâncias fazem com que 502 Bad Gateway erros sejam retornados.

Após alguns minutos, as instâncias começam a funcionar conforme o esperado. Não tenho certeza do que está causando isso, não sei o que fazer para evitar que isso aconteça.

Meu palpite é que a instância está sendo colocada em serviço no ELB antes que o aplicativo RoR esteja em execução, mas o nginx não sabe disso. Há algo que eu possa fazer para verificar isso e evitar isso?

    
por Bryan Migliorisi 21.09.2015 / 16:12

1 resposta

2

Acontece que isso foi devido a uma configuração incorreta no ELB. Ele tinha uma URL de verificação de integridade incorreta que retornava 200, independentemente do status de RoR. Como tal, isso estava dizendo ao ELB que esta instância do EB estava pronta e foi colocada em serviço antes de realmente estar pronta, e portanto causando 502s.

Definir a URL de verificação de integridade do ELB para uma URL correta que retornou algo diferente de 200 instâncias de EB impedidas de serem colocadas em serviço no ELB e resolveu esse problema.

    
por 18.10.2015 / 05:31