Amazon CLOUDFRONT and S3 are two different services provided by Amazon Web Services.
Amazon S3 is a storage service in which we can store static files like:
css, images, javascripts,videos, etc...
Amazon CloudFront is a middle-ware which stands in between a user requesting for a file from AWS and the S3 data center in a specific region, CloudFront is used to speeds up distribution of your static and dynamic web content from S3 to the User.
You can understand it better by an example:-
For example, your S3 is located in AWS region US East (N. Virginia) which a data center location to store your files.
If a user from India tries to access a file from a AWS server in Virginia, then user would need to go to that specific location with a request, and this will take a lot of time.
What CloudFront does is that it stands as a middleware between user and AWS S3.
The most often used files can be cached on CloudFront and what it does is, it replicates those files on edge locations (To deliver content to end users with lower latency, Amazon CloudFront uses a global network of edge locations for content delivery).
If the content is already in the edge location with the lowest latency, CloudFront delivers it immediately. If the content is not currently in that edge location, CloudFront retrieves it from an Amazon S3 bucket and provides it to user as faster as it can.
Every request is given a new DNS from CloudFront to the S3, so this would result in lower traffic as well as more parallel request processing.