Bem, na verdade, existe uma maneira muito simples de detectar se o host é uma instância do EC2: verifique a pesquisa inversa do seu IP público. Os reversos do EC2 são muito difíceis de perder.
Além disso, se você não modificá-lo, o nome do host deve ser o seu reverso, facilitando ainda mais sua identificação.
Você também pode usar o "IP mágico" de que falou, já que é a maneira padrão de obter tags de Instância do EC2, no entanto, se você não estiver em uma rede EC2, terá que esperar por um tempo limite, geralmente não é desejável ...
Se esses métodos não forem suficientes, basta fazer um whois do seu IP e verificar se você está dentro e no bloco de IP do Amazon EC2.
EDIT: Você pode usar este pequeno bit de shell:
#!/bin/bash
LOCAL_HOSTNAME=$(hostname -d)
if [[ ${LOCAL_HOSTNAME} =~ .*\.amazonaws\.com ]]
then
echo "This is an EC2 instance"
else
echo "This is not an EC2 instance, or a reverse-customized one"
fi
Cuidado, porém, [[é um bashismo. Você também pode usar um Python ou Perl uniline, YMMV.