Hi Dom,
Each ELB will have it's own public DNS. You will need a CNAME for your domains to map them to the ELB so that your users can get to your ELB like this: www.mysite.com.
CloudFront will push an S3 bucket to Amazon's edge network - putting that content closer to it's requesting user. Your domain names shouldn't point directly to this content, however your site (on your EC2 instance) will consist of HTML files that reference your CloudFront distribution.
Now you'll have one or more servers processing requests and CloudFront serving the content. Very plausible.
Best of luck.
Chad