S3 pricing is a price per GB-month of stored data by storage class, per 1,000 requests by request type and class, per GB for retrievals from the colder classes and for data transfer to the internet and to other regions, plus a price per object for Intelligent-Tiering monitoring, per transition for lifecycle rules and per GB-month for objects deleted before their minimum storage duration. On the bill, storage in S3 Standard dominates in most accounts, requests in accounts with many small objects or analytics workloads, and data transfer in accounts with public buckets.
Pricing dimensions
S3 has no provisioned storage: what is charged is what lies in a bucket, measured in byte-hours and billed as GB-months, at rates of its own per storage class. Every class has its own combination of storage price, request price, retrieval price and minimum duration; the class is therefore the most important dimension of this page, and an object's storage class sits in the usage type of every line.
| Dimension | Unit | What drives it | Optional |
|---|---|---|---|
| Storage S3 Standard | GB-month in three tiers (up to 50 TB, up to 500 TB, beyond) | Every object version, incomplete multipart uploads included | No |
| Storage Standard-IA and One Zone-IA | GB-month, 30 days and 128 KB per object minimum | Data that is rarely read; One Zone without zone redundancy | Yes |
| Storage Glacier Instant Retrieval, Flexible Retrieval, Deep Archive | GB-month, 90, 90 and 180 days minimum | Archives; Flexible Retrieval and Deep Archive need a restore before a read | Yes |
| Intelligent-Tiering | GB-month per access tier plus monitoring per 1,000 objects | Objects above 128 KB move to cheaper tiers after 30, 90 and 180 days without access; no retrieval price | Yes |
| Requests | Per 1,000 by tier: PUT, COPY, POST and LIST dearer than GET and the rest | Number of objects and calls; the colder classes charge requests higher | No |
| Retrieval | GB from IA and Glacier Instant Retrieval; GB and request by speed from Flexible Retrieval and Deep Archive | Reads from a colder class; expedited, standard and bulk as tiers | Yes |
| Lifecycle transitions | Per 1,000 transitions by target class | Every object a rule moves into another class | Yes |
| Early deletion | GB-month for the remaining days of the minimum duration | Objects deleted, overwritten or moved before 30, 90 or 180 days | Yes |
| Data transfer | GB to the internet in four tiers, GB to other regions; inbound and to CloudFront free | Downloads, replication, access from other regions | Yes (data transfer pricing) |
| Replication | Requests and storage at the destination, data transfer between regions, per GB for Replication Time Control | Every replication rule | Yes |
| Management and analytics | Objects per month for Inventory, Storage Lens advanced and Storage Class Analysis; GB for S3 Select; Batch Operations per job and object | Reports and tools switched on | Yes |
The minimum storage duration is what separates the colder classes from Standard: Standard-IA and One Zone-IA charge every object for at least 30 days and at least 128 KB, Glacier Instant Retrieval and Flexible Retrieval for 90 days, Deep Archive for 180 days. Whoever deletes, overwrites or moves an object to another class earlier pays the remaining days as a line of its own. Intelligent-Tiering has neither a minimum duration nor a retrieval price, but the monitoring fee per object instead; objects under 128 KB are not monitored and stay in the Frequent Access tier at the Standard price.
Requests cost between fractions of a cent and a few cents per 1,000 depending on tier and class, and the colder classes charge requests higher than Standard. For workloads with millions of small objects this is the dominant dimension; a lifecycle transition is a request per object too, which is why AWS no longer moves objects under 128 KB into colder classes by default. Retrievals from Flexible Retrieval and Deep Archive cost per GB and per request by speed: bulk is free on Flexible Retrieval, standard and expedited cost per GB, and the restored object sits as an additional copy in Standard for the chosen time.
How it appears in your billing data
In the Cost and Usage Report the lines carry the product code AmazonS3, lineItem/ResourceId the bucket name and the usage type the class and dimension; the prefix is the region code, EUC1 for Frankfurt. Storage appears as EUC1-TimedStorage-ByteHrs for Standard, EUC1-TimedStorage-SIA-ByteHrs and EUC1-TimedStorage-ZIA-ByteHrs for the IA classes, EUC1-TimedStorage-GIR-ByteHrs, EUC1-TimedStorage-GlacierByteHrs and EUC1-TimedStorage-GDA-ByteHrs for the three Glacier classes and EUC1-TimedStorage-INT-FA-ByteHrs, -INT-IA-, -INT-AIA-, -INT-AA- and -INT-DAA- for the tiers of Intelligent-Tiering, measured daily and shown as GB-months. Objects under 128 KB in the IA classes appear as EUC1-TimedStorage-SIA-SmObjects, rounded up to 128 KB.
Requests appear as EUC1-Requests-Tier1 for PUT, COPY, POST and LIST on Standard and EUC1-Requests-Tier2 for GET and everything else, with the class code for the other classes (EUC1-Requests-SIA-Tier1, EUC1-Requests-GIR-Tier2); lifecycle transitions as EUC1-Requests-Tier4 into the IA classes, Intelligent-Tiering and Glacier Instant Retrieval and as EUC1-Requests-Tier3 into Flexible Retrieval and Deep Archive. Retrievals appear as EUC1-Retrieval-SIA, EUC1-Retrieval-GIR, EUC1-Standard-Retrieval-Bytes, EUC1-Expedited-Retrieval-Bytes and EUC1-Bulk-Retrieval-Bytes, early deletion as EUC1-EarlyDelete-SIA, EUC1-EarlyDelete-GIR and EUC1-EarlyDelete-ByteHrs for Flexible Retrieval, monitoring as EUC1-Monitoring-Automation-INT per object. Data transfer to the internet sits under the same product code as EUC1-DataTransfer-Out-Bytes, transfer to other regions as EUC1-EUW2-AWS-Out-Bytes with both region codes, and transfer to CloudFront as EUC1-CloudFront-Out-Bytes at a price of 0.
lineItem/Operation names the API call or the storage class, such as PutObject, GetObject and StandardStorage, and product/storageClass the class in plain words. What S3 does not deliver is a cost line per prefix or per object: the granularity is the bucket, and whoever needs cost per team or customer inside a bucket allocates it from Storage Lens or the Inventory by prefix. The report's structure is described in the AWS Cost and Usage Report. In the FOCUS export, ServiceName carries Amazon Simple Storage Service and x_ServiceCode AmazonS3; storage, requests, retrievals and transfer are all ChargeCategory Usage and differ only in x_UsageType and SkuId (FOCUS columns).
Levers
Configuration: the storage class is the first lever, and a lifecycle rule per bucket is the tool: transitions by age into Standard-IA or Glacier, deletion of noncurrent versions in versioned buckets and the abort of incomplete multipart uploads after a few days; the rules and their traps are in storage tiers and lifecycle, the method in storage optimisation. Intelligent-Tiering is the second lever for data with an unknown access pattern and objects above 128 KB; the monitoring fee pays off as soon as a sizeable share falls into the Infrequent Access tier. The third is object size: many small objects cost more in requests and transitions than in storage, and bundling before the upload lowers both.
Purchase option: there is none for S3; the tier prices from 50 TB and 500 TB apply per account and region on their own, and discounts beyond them are part of an enterprise agreement.
Architecture: data transfer to the internet costs more per GB than a month of storage of the same GB; whoever serves objects publicly puts CloudFront in front, because transfer from S3 to CloudFront is free and CloudFront has free allowances of its own (CloudFront pricing). Replication into a second region doubles the storage and pays the transfer between the regions; it belongs only where a requirement demands it. Data that is read and written constantly belongs on EBS or EFS (EBS pricing, EFS and FSx); the dimensions across all three providers are set side by side in block, object and file storage.
Where it goes wrong
- The bucket grows although nothing is uploaded. Versioning keeps every overwritten and deleted version, and incomplete multipart uploads stay behind. Storage Lens shows both shares; a lifecycle rule for noncurrent versions and aborted uploads ends them.
- Archiving costs more than it saves. Moving millions of small objects to Glacier costs a transition per object and afterwards at least 128 KB or the minimum duration per object. Filter rules by object size and work out the transitions before switching them on.
- Deleting costs. Objects removed from a class with a minimum duration before 30, 90 or 180 days pay the remaining days as
EarlyDelete. Short-lived data belongs in Standard, not in IA. - Retrievals exceed storage. A backup tool that reads from Standard-IA every night pays more per GB retrieved than it saves on storage. Lines with
Retrieval-SIAbesideTimedStorage-SIA-ByteHrsare the clue. - Intelligent-Tiering costs monitoring but saves nothing. A bucket of objects under 128 KB stays in Frequent Access and does not pay the fee, but one of objects read constantly pays it without ever changing tier. Check the spread across the tiers in the usage types after three months.
- Transfer is the largest line. A bucket that customers or scripts download from directly pays internet transfer per GB. CloudFront in front, or an interface endpoint for access from your own VPC, changes the line.
- The requests come from a tool. A scanner, virus scanner or sync client that lists and reads every object every day produces Tier2 requests by the million.
lineItem/Operationand the server access logs show who is asking.
Example
List prices in USD for Frankfurt (eu-central-1), read on 2026-10-21 from the AWS price list: S3 Standard costs USD 0.0245 per GB-month for the first 50 TB, USD 0.0235 for the next 450 TB and USD 0.0225 beyond; Standard-IA USD 0.0135, One Zone-IA USD 0.0108, Glacier Instant Retrieval USD 0.005 and Glacier Flexible Retrieval USD 0.00405 per GB-month; the Deep Archive Access tier of Intelligent-Tiering USD 0.0018. Requests cost USD 0.0054 per 1,000 PUT, COPY, POST and LIST and USD 0.00043 per 1,000 GET in Standard, USD 0.01 and 0.001 in Standard-IA, USD 0.02 and 0.01 in Glacier Instant Retrieval. Retrievals cost USD 0.01 per GB from Standard-IA, USD 0.03 from Glacier Instant Retrieval, USD 0.012 for standard and USD 0.036 for expedited from Flexible Retrieval and USD 0.024 for standard from Deep Archive. Lifecycle transitions cost USD 0.01 per 1,000 into the IA classes and Intelligent-Tiering, USD 0.02 into Glacier Instant Retrieval, USD 0.036 into Flexible Retrieval and USD 0.06 into Deep Archive; Intelligent-Tiering monitoring USD 0.0025 per 1,000 objects. Data transfer to the internet costs USD 0.09 per GB for the first 10 TB a month, USD 0.085 up to 50 TB, USD 0.07 up to 150 TB and USD 0.05 beyond; to another region USD 0.02 per GB.
A bucket of 10 TB costs USD 250.88 a month in Standard (10,240 GB × 0.0245), USD 138.24 in Standard-IA and USD 51.20 in Glacier Instant Retrieval. If 2 TB of it are read in a month, Standard-IA adds USD 20.48 and Glacier Instant Retrieval USD 61.44 of retrieval, so Glacier Instant Retrieval still sits below Standard-IA at this read share with USD 112.64, but not at 5 TB of reads. The same 2 TB served once to the internet cost USD 184.32, almost three quarters of the whole bucket's Standard storage cost. The figures show that the class lowers the storage price to a fifth, that retrieval eats the saving under frequent reads, and that transfer to the internet can exceed the storage cost within a month.
Sources
Read on 2026-10-21. Prices: Amazon S3 pricing, AWS Price List, offer AmazonS3 for eu-central-1, AWS Price List, offer AWSDataTransfer for eu-central-1. Billing data: Amazon S3 usage types in the usage report, Cost and Usage Report columns: lineItem, FOCUS 1.0 with AWS columns. Service: Amazon S3 storage classes, S3 Intelligent-Tiering, lifecycle transitions, replication.