A company is designing a new global software-distribution service. Large installer files of several gigabytes each are stored in a single Amazon S3 bucket in one Region, and millions of users worldwide will download them repeatedly. An early proof of concept served files directly from S3 to the public internet, and the projected S3 data-transfer-out-to-internet charges, multiplied by repeated downloads of the same popular files, dominate the cost model. The files change only when a new release ships. The team wants the lowest data transfer cost at global scale without copying the bucket into many Regions. Which design BEST reduces the outbound transfer cost?
- AEnable S3 Cross-Region Replication to copy the bucket into several Regions near major user populations and route users to their nearest Regional bucket, so each download leaves from a closer Region at lower transfer cost.
- BTurn on S3 Transfer Acceleration on the bucket so downloads ride the optimised AWS edge network, treating the accelerated path as the cheapest way to serve repeated large-file downloads to a global audience.
- CPlace an Application Load Balancer in front of the S3 bucket and enable sticky sessions, so repeat downloaders are pinned to the same target and the popular installer files are served from a warmed connection at reduced transfer cost.
- DPut an Amazon CloudFront distribution in front of the S3 bucket as the origin, so repeated downloads of the same popular files are served from cached edge locations at CloudFront rates and only cache misses pull from S3. Correct
Why A is wrong: Replicating to many Regions shortens the network path but multiplies storage cost and still bills full S3 data-transfer-out for every repeated download from each Regional bucket, and it directly violates the stated wish to avoid copying the bucket into many Regions.
Why B is wrong: S3 Transfer Acceleration speeds long-distance transfers by using edge locations, but it adds a per-gigabyte acceleration surcharge on top of normal transfer-out and does not cache content, so for repeated downloads of the same files it raises cost rather than lowering it.
Why C is wrong: An Application Load Balancer cannot serve objects directly from an S3 bucket and provides no content caching, so sticky sessions do nothing to reduce S3 transfer-out, making this both architecturally invalid and ineffective for the cost problem.
Why D is correct: CloudFront caches the immutable installer files at edge locations, so repeated downloads are served from cache at lower CloudFront egress rates and transfer between S3 and CloudFront is free, which cuts the dominant origin transfer-out cost without replicating the bucket across Regions.