S3 PUT Request Cost Calculator
Cost S3 upload requests including the extra PUTs that multipart uploads generate for every part of every object.
Inputs
S3 requires parts of at least 5 MB, except the final part.
Monthly Request Cost
$50.00
Billable Requests
10,000,000
Requests per Object
5
Extra Cost vs a Single PUT
$40.00
Upload Path
Multipart — 3 part uploads plus create and complete
Step by step
Values used
Objects uploaded per month = 2,000,000 objects; Average object size = 40 MB; Multipart part size = 16 MB; Size at which the client switches to multipart = 16 MB; PUT, COPY, POST and LIST price = 0.0050 USD per 1,000 requests
S3 PUT Request Cost
requests per object = ceil(size ÷ part size) + 2 when multipart is used, otherwise 1; cost = requests ÷ 1000 x price per 1,000.
Monthly Request Cost
= 50.00
Billable Requests
= 10,000,000
Requests per Object
= 5
Extra Cost vs a Single PUT
= 40.00
Upload Path
= Multipart — 3 part uploads plus create and complete
How it works
A multipart upload is not one request: every part is a separate PUT, and the create and complete calls are billed as well, so a 40 MB object at a 16 MB part size costs five requests rather than one. Choosing a larger part size cuts request count but raises the amount re-sent when a part fails. The per-1,000 rate above is a user-supplied list price to confirm on the AWS S3 pricing page for your region. Ingest pipelines that write millions of small objects or use an aggressively small part size can spend more on requests than on storage, and the fix is a part-size or batching change rather than a storage-class change.
Formula
S3 PUT Request Cost
requests per object = ceil(size ÷ part size) + 2 when multipart is used, otherwise 1; cost = requests ÷ 1000 x price per 1,000.
- size
- Average object size in MB
- part size
- Multipart part size in MB
- +2
- CreateMultipartUpload and CompleteMultipartUpload are billed as requests too
Frequently Asked Questions
How is S3 PUT Request Cost calculated?
requests per object = ceil(size ÷ part size) + 2 when multipart is used, otherwise 1; cost = requests ÷ 1000 x price per 1,000. A multipart upload is not one request: every part is a separate PUT, and the create and complete calls are billed as well, so a 40 MB object at a 16 MB part size costs five requests rather than one. Choosing a larger part size cuts request count but raises the amount re-sent when a part fails. The per-1,000 rate above is a user-supplied list price to confirm on the AWS S3 pricing page for your region.
Why does S3 PUT Request Cost matter?
Ingest pipelines that write millions of small objects or use an aggressively small part size can spend more on requests than on storage, and the fix is a part-size or batching change rather than a storage-class change.
What values do I need to enter?
This calculator takes 5 inputs: Objects uploaded per month, Average object size, Multipart part size, Size at which the client switches to multipart, PUT, COPY, POST and LIST price. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
Do failed or abandoned multipart uploads still cost money?
Yes. Parts already uploaded were billed as requests and continue to be billed as storage until the upload is aborted, which is why an AbortIncompleteMultipartUpload lifecycle rule belongs on every bucket.
You might also need
- S3 Storage Cost CalculatorCommonly used together
- S3 GET Request Cost CalculatorCommonly used together
- Storage Optimization Score CalculatorCommonly used together
- EBS Volume Cost CalculatorAlso in AWS Storage
- Cross Region Replication CalculatorAlso in AWS Storage
- S3 Intelligent Tiering CalculatorAlso in AWS Storage