Eu encontrei, é uma espécie de hack, mas parece estar funcionando para mim.
Quando o sistema recebe um sinal de desligamento, os scripts na pasta /etc/rc0.d são executados, o que envolve scripts para desligar todos os serviços inclusos do Apache; Caso o script demore demais para desligar, a AWS irá desligar, não sei quanto tempo é muito longo.
De qualquer forma, então foi isso que eu fiz, eu editei o arquivo /etc/rc0.d/K09apache2
Na função apache_stop apache_stop () {
if $APACHE2CTL configtest > /dev/null 2>&1; then
# if the config is ok than we just stop normaly
#$APACHE2CTL stop 2>&1 | grep -v 'not running' >&2 || true
echo "stopping the apache gracefully"
$APACHE2CTL -k graceful-stop 2>&1 | grep -v 'not running' >&2 || true
sleep 15
Mude a parada abrupta para uma parada suave e dê um sono de 15 segundos para ter certeza de que ela morrerá graciosamente.
Atualizar - agora, o Amazon ELB oferece a remoção adequada de instâncias como um recurso.