Ok, duas coisas aqui: primeiro, os servidores estão sendo desligados e substituídos provavelmente porque você tem a verificação de integridade mal configurada. Segundo, é claro que os novos servidores não transmitem suas alterações, porque são iniciados com uma imagem que não possui suas alterações.
Ao usar um grupo de dimensionamento automático, cada servidor deve: 1) ser completamente sem estado e 2) ter todo o código, configuração e dependências do aplicativo inseridos na imagem ou fazer com que o sistema se configure automaticamente na inicialização.
Eu recomendo que você dê um passo atrás em seu grupo de dimensionamento automático até conseguir entender melhor as coisas. Depois de configurar o servidor fora do grupo de dimensionamento automático, faça uma imagem dele e use-a ao configurar o grupo de dimensionamento automático.
Se você realmente deseja avançar no jogo, faça com que o servidor se configure na inicialização, usando um sistema de gerenciamento de configuração de sua escolha. Eu prefiro o Ansible por isso, mas qualquer um deles funcionará. O uso de um sistema de gerenciamento de configuração como esse não apenas permite rastrear alterações de configuração ao longo do tempo no controle de versão, mas também o mantém honesto, pois você tem certeza de que pode reconstruir um servidor a partir do zero automaticamente, dentro de minutos a qualquer momento , e quando as coisas precisam acontecer automaticamente, você não consegue configurar manualmente (isso é uma coisa muito boa).