Elastic IP should solve your problem with the external address. It will not however fix the internal name resolution issues when stopping and starting the the instance (The instance will receive a new hostname and internal IP address after a stop and start). I have been changing the hostname of the instance and adding it to the /etc/hosts file under the localhost entry. You'll also need to update your tnsnames.ora and listener.ora files.
Can you explain what I need to do on the host to change the internal IP address. Someone had posted on another thread that they had a script which automatically made the change but I guess that must be something they created.