AWS S3 cost has four components: storage class, storage amount, request count, and data transfer out. The right way to model S3 spend is the AWS Pricing Calculator, not a back-of-envelope guess. The team that models all four components has the right answer. The team that only models storage is wrong by 30-50%.
Table of contents
- The four S3 cost components
- The right way to use the AWS Pricing Calculator
- The right S3 cost optimization
- The right S3 Storage Lens
- FAQ
The four S3 cost components
The first component is storage class. S3 Standard, S3 Intelligent-Tiering, S3 Standard-IA, S3 One Zone-IA, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive. The right answer is to pick the class based on access pattern.
The second component is storage amount. The first 50 TB / month in S3 Standard is $0.023/GB. The next 450 TB is $0.022/GB. Over 500 TB is $0.021/GB. The right answer for a high-volume bucket is the tiered pricing.
The third component is request count. PUT, COPY, POST, LIST requests are $0.005 per 1,000. GET, SELECT, and other requests are $0.0004 per 1,000. The right answer for a high-traffic bucket is to model the request count, not just the storage.
The fourth component is data transfer out. The first 100 GB / month is free. The next 9.9 TB is $0.09/GB. Over 10 TB is tiered lower. The right answer for a public-facing bucket is to model the data transfer out.
The right way to use the AWS Pricing Calculator
The right answer is to use https://calculator.aws/. The right workflow:
- Click
Create estimate. - Search for
S3and add it. - Configure the storage class and amount.
- Configure the request count.
- Configure the data transfer out.
- Save the estimate and share with the team.
The right answer is to save the estimate as a JSON file and version it. The wrong answer is to use a spreadsheet.
The right S3 cost optimization
The right way to reduce S3 cost: lifecycle policies to move old data to cheaper classes, S3 Intelligent-Tiering for unpredictable access patterns, delete incomplete multipart uploads, compress data before storing, and use S3 Storage Lens to find cost outliers.
The right S3 Storage Lens
The right answer is to enable S3 Storage Lens for organization-wide visibility. The right dashboard shows the largest buckets, the most expensive access patterns, and the lifecycle policy coverage.
FAQ
What is the cheapest S3 class?
S3 Glacier Deep Archive at $0.00099/GB/month. The right answer is to use it only for archive data that is rarely accessed.
What is the right class for a static website?
S3 Standard. The right answer is to combine with CloudFront for the actual delivery to reduce data transfer cost.
What is the right class for backups?
S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive, depending on how often you need to restore.
How do I model data transfer cost?
The right answer is to use the AWS Pricing Calculator. The wrong answer is to assume it is free (only the first 100 GB / month is free, the rest is tiered).
What is S3 Intelligent-Tiering?
An S3 class that automatically moves objects to the most cost-effective tier based on access patterns. The right answer is to use it for unpredictable workloads.
How do I reduce S3 cost?
The right answer is to use lifecycle policies, Intelligent-Tiering, Storage Lens, and to delete incomplete multipart uploads.
If you are sizing the infrastructure for the kind of project this post covers, the RunxBuild hosting calculator is the right place to model the line items. The compute, the memory, the storage, the bandwidth, the database - each one is a separate number, and the team’s mental model for the platform is the sum of those numbers. The RunxBuild dashboard is where the team sees the actual usage in one place.
Useful related references: