Cloudflare is by far the most popular service for this, and their free plan is very generous so can be utilised very cost effectively.
Their operation is slightly different to a regular CDN, in that they act as a proxy for the main site domain. This means the cached files are available on your main domain name, e.g www.domain.com rather than on a subdomain, such as cdn.domain.com. This also means that if for any reason your site goes offline, Cloudflare can take over and show a cached version of your site to anybody that visits during your downtime.
One slight issue we discovered is that because Cloudflare operates on your main domain, it can be tricky to tell if it is actually working! Any images will still have the same URL as they did before you started using it.
Using your browser inspector, usually under the ‘Network’ tab, you can take a look at each of your file’s headers and look for the header item ‘cf-cache-status’. However, this can be time consuming and somewhat fiddly.
Thankfully, we have discovered a very handy tool created by Jay Holtslander at https://cf-cache-status.net that allows you to enter a file URL and will instantly tell you if Cloudflare is serving the cached version.