A company hosts a static website on Amazon S3 with public read access. The website content is updated weekly. The SysOps administrator notices that the monthly S3 costs are higher than expected. The website receives about 10,000 requests per day, and each object is small (average 50 KB). The administrator wants to reduce costs without affecting the user experience. The website does not require HTTPS or custom domain at this time. Which action should the administrator take?
Placing a CloudFront distribution in front of the S3 bucket caches website objects at edge locations worldwide, so the vast majority of user requests are served from edge caches, not by direct S3 GETs. This dramatically reduces the number of S3 requests billed on a per-request basis, and data transfer from S3 to CloudFront is not charged, lowering egress costs. Additionally, you can restrict direct S3 access with an origin access control and use caching policies to further optimize performance and cost.
Why this answer
Placing an Amazon CloudFront distribution in front of the S3 bucket reduces costs by caching content at edge locations, thereby reducing the number of GET requests to S3 and leveraging lower CloudFront data transfer rates. This does not affect user experience because cached content is served quickly. Option A is incorrect: enabling default encryption adds encryption but does not reduce costs; it may increase overhead slightly.
Option B is incorrect: S3 Glacier Flexible Retrieval is designed for archival storage with high retrieval latency and costs, making it unsuitable for serving a static website. Option D is incorrect: enabling S3 Versioning increases storage costs by retaining multiple versions of objects, which does not lower expenses.