A resposta a essa pergunta é que os ELBs às vezes alteram os endereços IP e o nginx faz o nome da resolução durante o início.
Para corrigir isso, existe sempre um servidor DNS no seu VPC em 0.2. Portanto, se o ip CIDR local for 10.0.0.0/16, o servidor DNS estará em 10.0.0.2.
Adicione isto à configuração do nginx.
resolver 10.0.0.2 valid=10s;
O proxy_pass também precisa ser definido como uma variável caso contrário, o nginx resolva apenas uma vez. Então, com base na configuração acima, esta é a configuração correta:
server {
listen 3000;
location / {
resolver 10.0.0.2 valid=10s;
set $backend "http://internal-prod732r8-PrivateE-1GJ070M0745TT-348518554.eu-west-1.elb.amazonaws.com:3000"
proxy_pass $backend;
include /etc/nginx/proxy.conf;
}
}