Reputation: 26121
We pay for CloudFront request pricing + bandwidth when S3 data is delivered through CloudFront. Do we also pay for the S3 requests when these requests are made by the CloudFront?
For example, if 1 million requests are made to non-cached content on CloudFront, so we pay for 1 million requests in CloudFront and 1 million requests in S3?
Upvotes: 7
Views: 5461
Reputation: 179074
You are still billed for all requests that are handled by S3 when the request passed first through CloudFront when CloudFront does not serve the object from cache.
The price for data transfer bandwidth out from S3 to CloudFront is "billed" at $0.0000/GB (still itemized on the invoice, but costs nothing), but all other charges, like the per-request charge for GET requests (starting at $0.0004 per 1,000 requests) remain the same. If you are using infrequent-access or one-zone-IA storage, then the retrieval charges for the class also apply.
When content is served from the cache, S3 doesn't see the request, so there's no charge.
Serving always-uncached content from S3 through CloudFront is effectively the same -- from a performance perspective -- as using S3 Transfer Acceleration because behind the scenes, the accelerated endpoint for your bucket is essentially a CloudFront distribution with caching disabled. This is trivial to integrate with an application that's already using S3, since the accelerated endpoints implement the full S3 API and the pricing model is simpler -- but will often cost more, depending on the locations of the viewer and the bucket.
Upvotes: 6