Question: I've an instance of ubuntu on amazon; it also gives a public DNS for me like ec2-XX-XXX-XX-XX.compute-1.amazonaws.com which is opened to world.

I've my own DNS which I link with amazon hosting/instance and I would like to hide public DNS from amazon to avoid duplicate of content for google SEO.

Is it possible and if so how can I do that?

Thanks.

Answer: 
All you need to do is configure your web server to respond just to the domain name. Technically speaking, you could access the web server on the ip address if you do not use virtual hosts.
You could set up both domains as your's in the Google Webmaster Tools and then set your "real" DNS name to be the preferred one. You are not hiding it you are just telling google that they are the same site.