You store application logs in an S3 bucket. After 30 days, the logs are rarely accessed, but you must retain them for 1 year for compliance. Which S3 feature is the best way to reduce storage cost while meeting the retention requirement?
Trap 1: Keep all logs in S3 Standard and rely on lower request rates to…
Keeping all logs in S3 Standard while relying on lower request rates ignores the fact that S3 pricing separates storage cost from request cost. The storage cost per GB-month for S3 Standard is substantially higher than that of S3 Standard-IA or Glacier, so even with almost zero GET/PUT requests, your bill stays high simply because you are retaining large volumes of data in the most expensive object storage tier. Since the logs are rarely accessed after 30 days, a lifecycle policy that transitions them to a colder class directly attacks the dominant cost driver—storage footprint—rather than request activity, which is already negligible.
Trap 2: Copy logs to EBS snapshots each week and delete the original files
EBS snapshots are designed for point-in-time backups of EBS block storage volumes, not for object-level application log retention. Each snapshot is block-incremental and must be restored to a volume before you can access the files, making log retrieval and analysis cumbersome, and snapshot storage is billed per-GB with no native S3 lifecycle expiration policy. Additionally, deleting the original S3 objects forfeits S3 features such as server-side encryption, object-level versioning, and querying logs directly with Amazon Athena, while introducing new EC2/DLM management overhead—so this approach is both operationally heavier and costlier than a simple S3 lifecycle rule.
Trap 3: Use S3 replication to a second bucket in another region to reduce…
S3 Cross-Region Replication (CRR) is a data durability and disaster-recovery feature, not a cost optimization feature. Enabling CRR adds replication request charges, inter-region data transfer charges, and a second storage charge for the replicated objects in the destination bucket; the source object's storage class remains unchanged and still incurs its original fee. Replicating to another region doubles the storage-related costs rather than reducing them, so it cannot be used to lower spend for long-term log retention.
- A
Create an S3 lifecycle rule to transition older objects to a colder storage class after 30 days, then expire after 1 year
S3 lifecycle policies can automatically transition objects to lower-cost storage classes based on age. Transitioning after 30 days reduces ongoing storage costs because the logs are rarely accessed, while expiring after 1 year ensures you still meet the compliance retention window.
- B
Keep all logs in S3 Standard and rely on lower request rates to reduce cost
Why wrong: Keeping all logs in S3 Standard while relying on lower request rates ignores the fact that S3 pricing separates storage cost from request cost. The storage cost per GB-month for S3 Standard is substantially higher than that of S3 Standard-IA or Glacier, so even with almost zero GET/PUT requests, your bill stays high simply because you are retaining large volumes of data in the most expensive object storage tier. Since the logs are rarely accessed after 30 days, a lifecycle policy that transitions them to a colder class directly attacks the dominant cost driver—storage footprint—rather than request activity, which is already negligible.
- C
Copy logs to EBS snapshots each week and delete the original files
Why wrong: EBS snapshots are designed for point-in-time backups of EBS block storage volumes, not for object-level application log retention. Each snapshot is block-incremental and must be restored to a volume before you can access the files, making log retrieval and analysis cumbersome, and snapshot storage is billed per-GB with no native S3 lifecycle expiration policy. Additionally, deleting the original S3 objects forfeits S3 features such as server-side encryption, object-level versioning, and querying logs directly with Amazon Athena, while introducing new EC2/DLM management overhead—so this approach is both operationally heavier and costlier than a simple S3 lifecycle rule.
- D
Use S3 replication to a second bucket in another region to reduce costs
Why wrong: S3 Cross-Region Replication (CRR) is a data durability and disaster-recovery feature, not a cost optimization feature. Enabling CRR adds replication request charges, inter-region data transfer charges, and a second storage charge for the replicated objects in the destination bucket; the source object's storage class remains unchanged and still incurs its original fee. Replicating to another region doubles the storage-related costs rather than reducing them, so it cannot be used to lower spend for long-term log retention.