In fact, if you are using AWS you really ought to put a proper caching CDN in front, given the crazy high bandwidth prices at AWS.
The bandwidth prices are high enough that I at one point mulled over setting up an "S3 compatible" storage service using S3 as the backend for durability, but storing a single local copy to most-of-the-time avoid hitting S3.
S3 bandwidth prices are high enough that there are huge cost savings to be had if objects are retrieved reasonably regularly.
Any CDN can be stood up in front of a small fleet of dedicated hosts, and you'd still be saving 80%.