O balanceador de carga começará a enviar tráfego para a nova instância do EC2 assim que a instância começar a passar na verificação de integridade do balanceador de carga. Eu estou supondo que seu balanceador de carga está configurado com uma verificação de integridade de ping TCP. Isso significa que, assim que a nova instância começar a responder a pings na porta 80, ela será considerada saudável e pronta para receber solicitações. Como você notou, no entanto, isso acontecerá antes que o aplicativo seja totalmente implantado e realmente forneça boas respostas.
A solução é configurar seu balanceador de carga para executar uma verificação de integridade com solicitações HTTP, para que a nova instância do EC2 não seja considerada em bom estado até que seu aplicativo esteja em execução e respondendo com êxito às solicitações da web. No console da AWS, encontre a seção Balanceadores de carga do painel do EC2 e selecione o balanceador de carga para o seu ambiente do Elastic Beanstalk. Você verá uma guia Verificação de saúde no painel de configuração dos balanceadores de carga, onde é possível editar as configurações de verificação de integridade e alternar para solicitações HTTP como seu método ping.
Se seu aplicativo estiver configurado para manipular somente solicitações enviadas por meio do nome do host de produção, você poderá descobrir que a verificação de integridade de HTTP sempre falha. O balanceador de carga envia solicitações para a URL específica da instância do EC2 e, se o aplicativo responder a essas solicitações com erros ou redirecionamentos 30x, o balanceador de carga considerará insalubre. Nesse caso, você precisará adicionar uma exceção à sua solicitação de filtragem para permitir que a solicitação de verificação de integridade seja bem-sucedida, independentemente do nome do host. Por exemplo, adicione um arquivo estático, vazio elbhealthcheck.html (ou o que você quiser dar nome) ao seu aplicativo e permita solicitações para esse arquivo com qualquer nome de host. Em seguida, configure a verificação de integridade do balanceador de carga para usar esse URL em seu ping HTTP, e você estará pronto.