Work out S3 GET request and egress cost after a CDN absorbs most reads, and see which of the two dominates.
Only the cache misses reach the bucket, so the cache hit ratio scales both the request count and the bytes leaving S3. Because a GET costs about 0.0004 USD per thousand while a GB of egress costs cents, transfer almost always dominates once objects are more than a few KB. Both rates are user-supplied list prices — check the current figures on the AWS S3 and data transfer pricing pages for your region. It shows that raising a cache hit ratio from 88% to 95% halves the origin bill, which is usually a cheaper lever than any storage-class change.
S3 GET Request Cost
origin requests = viewer requests x (1 − hit ratio); cost = origin requests ÷ 1000 x GET price + origin requests x object size x egress price.
origin requests = viewer requests x (1 − hit ratio); cost = origin requests ÷ 1000 x GET price + origin requests x object size x egress price. Only the cache misses reach the bucket, so the cache hit ratio scales both the request count and the bytes leaving S3. Because a GET costs about 0.0004 USD per thousand while a GB of egress costs cents, transfer almost always dominates once objects are more than a few KB. Both rates are user-supplied list prices — check the current figures on the AWS S3 and data transfer pricing pages for your region.
It shows that raising a cache hit ratio from 88% to 95% halves the origin bill, which is usually a cheaper lever than any storage-class change.
This calculator takes 5 inputs: Viewer requests per month, CDN cache hit ratio, Average object size, GET and SELECT price, Data transfer out to the internet. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
The request price is identical, but you are billed only for the bytes actually returned, so range reads cut the transfer component — the part of this bill that is normally the larger of the two.