Como regra geral, para serviços internos, use o endereço IP privado. Para serviços com visibilidade externa, use o endereço IP público.
Assim, qualquer comunicação entre servidores locais na mesma rede estará usando o endereço IP privado (por exemplo, o frontend web se comunicando com um servidor mySQL); quaisquer serviços sendo dados para o exterior, você usa o endereço IP público (um host virtual da web, por exemplo).
No arquivo hosts, é imperativo usar o endereço IP privado, mas você pode usar um nome de host com o nome privado e um nome DNS com o endereço IP público. No final do dia, também depende da sua configuração.