Re: love that built to fail mantra
The way to work around having a dynamic internal IP address is for your VMs to communicate using the *external* DNS records of your Elastic IP -- when they're resolved inside of EC2, they point to the current private/internal IP of the VM.
See here for more detais:
http://alestic.com/2009/06/ec2-elastic-ip-internal