Meter
What Amazon S3 charges to send data out
A practical AWS-specific guide to the free monthly allowance, graduated internet-transfer tiers, destination rules, CloudFront path, and restore-related charges that sit beside egress.
Put your own numbers through the calculator to see what this meter does to a normal month and to the day you restore.
The charge starts with destination and monthly volume
S3 internet transfer out is not a single flat charge. AWS first classifies where the bytes go, then applies the account's shared monthly allowance and the applicable volume tier. For ordinary internet delivery outside China and GovCloud, the first 100 GB per month is free across AWS services and Regions, not the first 1 GB. [1]
A calculator that subtracts only 1 GB overstates the first paid tier by 99 GB. At $0.09 per GB, that error adds 99 GB x $0.09 = $8.91 before any request, retrieval, or storage-class charge is considered. [1]
| Monthly internet-transfer band | Published rule | Source ref |
|---|---|---|
| First 100 GB | not charged; shared across AWS services and Regions except China and GovCloud [1] | [1] |
| Next 10 TB | $0.09 per GB [1] | [1] |
| Next 40 TB | $0.085 per GB [1] | [1] |
| Next 100 TB | $0.07 per GB [1] | [1] |
| Next 350 TB | $0.05 per GB [1] | [1] |
| More than 500 TB per month | not published; AWS directs customers to contact it [1] | [1] |
Apply the 100 GB allowance before the paid tiers
The monthly allowance is aggregated across AWS services and Regions, so another AWS workload can consume some or all of it before an S3 restore begins. The allowance also excludes AWS China and GovCloud. [1]
Tier pricing is graduated. Bytes in one band keep that band's rate when later bytes enter the next band. Do not multiply the entire transfer by the last rate reached. [1]
| 5,000 GB internet transfer example | Arithmetic | Charge |
|---|---|---|
| Free allowance | min(5,000 GB, 100 GB) = 100 GB [1] | $0.00 [1] |
| Billable transfer | 5,000 GB - 100 GB = 4,900 GB [1] | 4,900 GB [1] |
| First paid band | 4,900 GB x $0.09 per GB [1] | $441.00 [1] |
| S3 internet-transfer total | $0.00 + $441.00 | $441.00 [1] |
Destination changes whether S3 calls the bytes billable egress
Destination classification comes before the internet tier table. Data entering S3, data moving between S3 buckets in the same AWS Region, data moving from S3 to another AWS service in that same Region, and data transferred from S3 to CloudFront are not charged as S3 data transfer out. [1]
Cross-Region movement is different. The captured US East price data records a $0.02 per GB cross-Region S3 transfer meter, while the exact bill depends on the source and destination path. Treat a region change as conditional, not as free same-Region traffic. [2]
| Path | S3-side transfer state | What to check | Source ref |
|---|---|---|---|
| Internet into S3 | not charged [1] | Requests and storage still apply [1] | [1] |
| S3 to the public internet | conditional; first 100 GB monthly allowance, then graduated rates [1] | Shared allowance usage and total monthly volume [1] | [1] |
| S3 bucket to S3 bucket in the same Region | not charged [1] | Requests on the source and destination operations [1] | [1] |
| S3 to another AWS service in the same Region | not charged [1] | The destination service can have its own meters [1] | [1] |
| S3 to another AWS Region | conditional; $0.02 per GB in the captured US East row [2] | Source Region, destination Region, and direction [2] | [2] |
| S3 origin to CloudFront | not charged on the S3-to-CloudFront leg [1] | CloudFront delivery is billed under the selected CloudFront plan or pay-as-you-go model [3] | [1] [3] |
A restore can add retrieval, requests, and temporary-copy storage
Archive restores expose why the data-transfer line is not the whole receipt. AWS charges retrieval when an archive is restored, charges the restore request, and stores a temporary readable copy at the S3 Standard rate for the duration selected by the user. Internet transfer out is then a separate line. [1] [2]
Reading an object does not create an early-deletion charge. AWS applies minimum-duration charges when an object is deleted, overwritten, or transitioned before its storage class minimum. A read-only restore therefore has retrieval, request, transfer, and temporary-copy meters, but no early-deletion meter. [1]
| 1,000 GB Deep Archive bulk restore | Arithmetic | Charge |
|---|---|---|
| Bulk data retrieval | 1,000 GB x $0.0025 per GB [2] | $2.50 [2] |
| Bulk restore requests for 1,000 objects | 1,000 requests x $0.025 per 1,000 requests [2] | $0.025 [2] |
| Internet transfer with the 100 GB allowance still unused | (1,000 GB - 100 GB) x $0.09 per GB [1] | $81.00 [1] |
| Temporary S3 Standard copy for 7 days in a 30-day illustrative month | 1,000 GB x $0.023 per GB-month x 7 / 30 [2] | $5.37 [2] |
| Early-deletion charge | does not apply because the scenario reads and restores without deleting, overwriting, or transitioning the source object [1] | $0.00 [1] |
| Illustrative restore total | $2.50 + $0.025 + $81.00 + $5.37 + $0.00 | $88.90 after rounding [1] [2] |
Trace a surprising bill in meter order
A larger invoice usually means the estimate omitted a meter or used the wrong path. Start with destination, then confirm how much of the shared 100 GB allowance remained, split the transfer across the graduated bands, identify the storage class, count GET or restore requests, add retrieval where the class charges it, and include temporary restored-copy storage for archive restores. [1]
Keep early deletion outside a read-only restore calculation. Add it only when the scenario also deletes, overwrites, or transitions an object before its 30-day, 90-day, or 180-day minimum, depending on class. [1]
| Audit question | Why it changes the result | Source ref |
|---|---|---|
| Where did the bytes go? | Same-Region AWS, CloudFront origin transfer, cross-Region transfer, and public internet use different rules [1] | [1] |
| Was the 100 GB allowance already used? | The allowance is shared across AWS services and Regions outside the stated exclusions [1] | [1] |
| Which storage class supplied the data? | Standard has no retrieval charge, while infrequent and archive classes can add retrieval [1] | [1] |
| How many requests did the restore make? | GET and restore requests are metered separately from transferred bytes [1] | [1] |
| Was an archive copy kept temporarily? | The restored copy is billed at S3 Standard for the selected duration [1] | [1] |
| Was anything deleted, overwritten, or transitioned early? | Only those mutations can add a minimum-duration remainder charge [1] | [1] |
Sources
Every figure above comes from one of these pages, on the date shown. Each numbered reference in the text links to its entry here. Vendors change prices; if a date looks old, check the source. Three vendors publish a machine-readable feed and the rest are re-checked by hand, which is why the dates are not uniform.
The source ledger3 sources
- 1Amazon Web Services: S3 pricingaws.amazon.com · checked 2026-07-25 15:34:44+00:00
- 2AWS Price List API: Us east 1pricing.us-east-1.amazonaws.com · checked 2026-07-25 15:34:44+00:00
- 3Amazon Web Services: Cloudfront pricingaws.amazon.com · checked 2026-07-26 01:04:13+00:00