S3 Storage Class Calculator
Compare S3 storage classes on your own data and access pattern, with retrieval fees and minimum storage periods included.
- Recommended
- S3 Glacier Instant Retrieval
- Effective cost
- $266.67/mo
All unrounded components are summed before display.
All classes
| Class | Storage | Retrieval | Requests | Transition/mo | Effective/mo |
|---|---|---|---|---|---|
| S3 Standard | $1,150.00 | $0.00 | $0.20 | $0.00 | $1,150.20 |
| S3 Intelligent-Tiering | $322.57 | $0.00 | $50.20 | $8.33 | $381.10 |
| S3 Standard-Infrequent Access | $625.00 | $15.00 | $0.50 | $8.33 | $648.83 |
| S3 One Zone-Infrequent AccessOne Zone-IA is redundantly stored across multiple devices in one Availability Zone and is not resilient to loss of that AZ. | Incomplete | - | - | - | Incomplete |
| S3 Glacier Instant Retrieval | $200.00 | $45.00 | $5.00 | $16.67 | $266.67 |
| S3 Glacier Flexible RetrievalRestore workflow is not acceptable when immediate access is required.Provide complete restoration inputs before archive totals can be recommended. | Incomplete | - | - | - | Incomplete |
| S3 Glacier Deep ArchiveRestore workflow is not acceptable when immediate access is required.Provide complete restoration inputs before archive totals can be recommended. | Incomplete | - | - | - | Incomplete |
Simple-mode policy and savings outcomes are eligibility-dependent estimates. Excluded objects remain in Standard; transition requests apply only to eligible objects.
Make the change
Default output is a mergeable rule fragment. Transition rules neither delete data nor enforce the modeled retention.
Add these rule blocks to the bucket’s existing aws_s3_bucket_lifecycle_configuration resource; do not create a competing resource.
rule {
id = "finitizer-glacier-ir"
status = "Enabled"
filter { object_size_greater_than = 131072 }
transition { days = 0
storage_class = "GLACIER_IR" }
}Optional browser-local complete CLI review
No AWS call is made here. Set $BUCKET locally; it MUST be the same bucket whose configuration is retrieved and reviewed.
BUCKET="your-reviewed-bucket" aws s3api get-bucket-lifecycle-configuration --bucket "$BUCKET" --output json > current-lifecycle.json
What this model assumes
Show
- Minimum-duration proration uses 30.4167 days per month (365/12).
- The selected lifecycle filter is strict: object size must be greater than 131,072 bytes. It is not a universal economic break-even.
- Transition rules do not delete data or enforce the modeled retention period.
- IA transitions are eligible at day zero; their 30-day destination minimum still applies as an early-departure remainder using 30.4167 days/month.
- Archive choices use explicit latency and documented tier timing: glacier-flexible standard 3 to 5 hours; glacier-flexible bulk 5 to 12 hours; glacier-deep-archive standard up to 12 hours; glacier-deep-archive bulk up to 48 hours.
- US East list-rate estimate: entered GiB are multiplied directly by displayed GB-month rates; negotiated pricing is excluded.
Prices verified 13 Oct 2026. Public list prices in USD for US East (N. Virginia), before any discount you have negotiated.
Want this done on your real bill?
Cloud Cost Audit: We go through your real AWS or Google Cloud bill and hand you a ranked list of what to cut first. From $1,500, fixed. Nothing paid upfront.
Questions
Can Standard-IA transition immediately?
Yes. This calculator models a day-zero lifecycle transition for Standard-IA and One Zone-IA. This is separate from the 30-day destination minimum billable duration: leaving either IA class early incurs the remaining charge. Minimum-duration calculations use 365/12, or 30.4167 days, per month.
Does 128 KiB mean objects always break even there?
No. Minimum billable object size, lifecycle-policy eligibility, and an economic break-even are different. The default generated filter is deliberately strict: object size must be greater than 131,072 bytes, so an object exactly 131,072 bytes remains in Standard. Small-object transitions require explicit opt-in and include floors, metadata, and transition requests.
Why are Glacier Flexible Retrieval and Deep Archive sometimes not recommended?
They require an explicit restore workflow. Recommendations use your selected latency requirement and the documented restore tier timing, not read frequency. The comparison keeps ineligible or incomplete archive rows visible with the reason.
Does the lifecycle rule delete data or enforce the retention period?
No. Generated transition rules contain no expiration, deletion, or noncurrent-version action. Retention is a pricing-model assumption only. Add the mergeable rule fragment to your existing lifecycle configuration; put-bucket-lifecycle-configuration replaces the complete configuration.
Related tools
CloudFront vs S3 Direct Calculator
Average object size decides this more than cache hit rate.
OpenCloud Storage Class Calculator
On Google Cloud, read and retrieval charges can outweigh what a colder class saves on storage.
OpenAzure Blob Storage Tier Calculator
Hot, Cool, Cold and Archive, with the early-delete fee counted.
OpenMore tools for: Storage and lifecycle
The hard part is knowing what is in the bucket.
Use inventory-derived object-size groups when possible. Grouped inputs remain an approximation unless based on exact object sizes.
See how Finitizer works