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: 
* set up your hostname accordingly
* adjust your reverse-DNS entry
* delete the A-entry for the amazon-hostname (be sure to have your server-IP at hand in case you mistyped something!)
* double-check every service for configuration-mistakes, make the services bind themselves explicitly on your own domain
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.