Mathieu Kerbel
All articles

Amazon S3: storage classes, pricing and how to cut the bill

By Mathieu Kerbel
Share on LinkedIn

Key facts

Durability
11 nines "99.999999999% durability" of objects over a given year, by design, for S3 Standard [3]
Consistency
Strong read-after-write consistency for PUT and DELETE requests, in all AWS Regions [1]
Request rate
5,500 GET/s at least, per partitioned prefix, and 3,500 PUT, COPY, POST or DELETE; no limit on prefixes [4]
Minimum durations
30, 90, 180 days: Standard-IA and One Zone-IA; Glacier Instant and Flexible Retrieval; Glacier Deep Archive [2]
Intelligent-Tiering
No retrieval fee except Expedited restores from its optional Archive Access tier; a monitoring fee per object of 128 KB or more instead [22]
Gateway endpoint
No extra charge for S3 traffic from a VPC in the same Region, without a NAT gateway [21]

Amazon Simple Storage Service (Amazon S3) stores objects in buckets and bills them by the gigabyte-month, but the gigabytes are rarely the whole S3 bill. AWS's pricing page lists six cost components: "storage pricing, request and data retrieval pricing, data transfer and transfer acceleration pricing, data management and insights feature pricing, replication pricing, and transform and query feature pricing". This article explains how S3 stores data, how S3 pricing works class by class, and the ways AWS documents to reduce S3 costs, priced with the list prices of the Paris Region (eu-west-3). Four architectures show what the levers do to whole monthly bills, and the cost section opens with an index of the levers, in the order to work through them.

Prices in this article are AWS list prices for the EU (Paris) Region, in USD before tax, from the AWS Price List, with two exceptions: CloudFront, a global service, is priced at its Europe edge locations, and Frankfurt (eu-central-1) prices the replica of the fourth architecture pattern and one Region comparison in the pricing section. Each card and table that uses them says so. The offer files and their publication dates are listed in the Sources section, and each table repeats the dates of its own prices. S3 counts a GB as 230 bytes and a TB as 1,024 GB. Monthly amounts (730 hours), totals, percentages and break-evens are computed from these prices.

What Amazon S3 is

In AWS's words, Amazon S3 "is an object storage service that offers industry-leading scalability, data availability, security, and performance". "An object is a file and any metadata that describes the file. A bucket is a container for objects", and each object has a key, "the unique identifier for the object within the bucket". Buckets and objects are private until you grant access, and Block Public Access is on by default.

You choose the Region of a bucket when you create it, and "you cannot change the name of the bucket or its Region" afterwards. The bill follows that choice: "Billing prices are based on the location of your S3 bucket". AWS sums up the pay model in one line: "Amazon S3 charges you only for what you actually use, with no hidden fees and no overage charges". The free tier is left out here. S3 has four bucket types, and this article is about the first:

The four bucket types of Amazon S3

Bucket type What AWS recommends it for
General purpose buckets "Most use cases and access patterns": the original S3 bucket type
Directory buckets Low-latency and data-residency use cases; they hold S3 Express One Zone
Table buckets Tabular data in the Apache Iceberg format
Vector buckets Storing and querying vectors

How S3 works under the hood

AWS documents S3's design at the level of zones, devices, checksums, consistency, prefixes and archives, and three of them show up on the bill: zones in One Zone-IA's price, prefixes in the request rates, archives in the restores. The storage fleet's internals are described in AWS talks and blog posts, not in its documentation, and are left out.

A flat namespace of keys

"Amazon S3 general purpose buckets have a flat structure instead of a hierarchy like you would see in a file system"; the console shows folders only "for the sake of organizational simplicity". A key prefix is "a string of characters at the beginning of the object key name", up to the key's 1,024 bytes, and "prefixes are not directories". AWS's own summary: S3 is "a basic data map between 'bucket + key + version' and the object itself". An object can reach 48.8 TiB, uploaded in parts (5 MiB to 5 GiB each, up to 10,000), and AWS suggests a multipart upload from about 100 MB. Each of those calls is a billed request, which the pricing section comes back to.

Where the copies live: zones, durability and availability

The Regional storage classes "redundantly store objects on multiple devices across a minimum of three Availability Zones in an AWS Region" (Data protection in Amazon S3), zones that are "many kilometers" apart, "although all are within 100 km (60 miles) of each other". S3 checks every upload end to end and "verifies that all data is correctly and redundantly stored across multiple storage devices before it considers your upload to be successful", then keeps checking the data at rest (Amazon S3 FAQs):

What happens when an application writes to S3An application sends a PUT to a bucket in the Paris Region. Amazon S3 stores the object redundantly on storage devices in three Availability Zones before it confirms the write; any read that starts after the confirmation returns the new object.Region eu-west-3 (Paris)Availability Zone 1Availability Zone 2Availability Zone 3ApplicationBucketStorage devicesStorage devicesStorage devices1234
What happens when an application writes to S3
  1. The application writes an object (PUT). The AWS SDKs send a checksum with the upload, and S3 checks it before it accepts the object.
  2. Before it confirms the write, S3 stores the object redundantly on multiple devices across at least three Availability Zones (S3 Standard and the other Regional storage classes).
  3. Strong read-after-write consistency: a GET or LIST that starts after the confirmation returns the new object, in every Region.
  4. At rest, S3 checks the data with checksums and repairs any lost redundancy from the redundant data.

S3 Standard is "designed to provide 99.999999999% durability and 99.99% availability of objects over a given year". Every class in this article shares that designed durability; what differs is availability, and whether the data survives the loss of a whole zone (storage classes):

Where each storage class keeps its data, and its designed availability

Class Availability Zones Designed availability
S3 Standard 3 or more 99.99%
S3 Intelligent-Tiering 3 or more 99.9%
S3 Standard-IA 3 or more 99.9%
S3 One Zone-IA 1 99.5%
S3 Express One Zone 1 99.95%
S3 Glacier Instant Retrieval 3 or more 99.9%
S3 Glacier Flexible Retrieval and Deep Archive 3 or more 99.99%, after a restore

All of them "except for S3 One Zone-IA (ONEZONE_IA) and S3 Express One Zone (EXPRESS_ONEZONE) are designed to be resilient to the physical loss of an Availability Zone resulting from disasters". That trade is priced: One Zone-IA stores data "at 20% less cost than geographically redundant S3 Standard-IA storage", in AWS's words; in Paris, 20.0% less per GB-month, computed. Durability is also not a backup:

Amazon S3's durability system does not protect against accidental or malicious deletes.

AWS, Amazon S3 FAQs

Versioning, replication and Object Lock add that protection. Versions and replicas are billed as stored objects (see Versioning, delete markers and unfinished uploads); Object Lock has no price of its own in the Price List, but a locked object version cannot be deleted or overwritten until its retention period ends, so it stays billed until then.

Strong consistency, and where it stops

"Amazon S3 provides strong read-after-write consistency for PUT and DELETE requests of objects in your Amazon S3 bucket in all AWS Regions": a read that starts after a successful PUT returns the new object, and a deleted object no longer appears in a listing. It has limits: S3 does not lock an object for concurrent writers ("the request with the latest timestamp wins"), "there is no way to make atomic updates across keys", and bucket configurations are eventually consistent: AWS recommends waiting 15 minutes after enabling versioning before writing to the bucket.

Request rates per prefix, and 503 Slow Down

S3 scales to "at least 3,500 PUT/COPY/POST/DELETE or 5,500 GET/HEAD requests per second per partitioned Amazon S3 prefix", with "no limits to the number of prefixes in a bucket". The scaling is gradual: while it happens, a client can receive 503 (Slow Down) errors, and AWS suggests spreading requests across prefixes. Those errors cost the bucket owner nothing: "Bucket owners aren't billed for HTTP 5XX server error responses". The same page sets out which responses are billed, and lists the error codes that are not:

Which responses S3 bills to the bucket owner

Response Billed to the bucket owner
HTTP 200 OK, a successful request Yes
HTTP 3XX redirects the page lists (301 PermanentRedirect, 307 TemporaryRedirect) No
HTTP 4XX, a client error Yes, except the 4XX error codes the page lists (for example 400 InvalidSignature or ExpiredToken, 403 SignatureDoesNotMatch, 404 NoSuchUpload, 405 MethodNotAllowed)
HTTP 403 AccessDenied, for a request from outside the owner's account or organization No: a separate rule
HTTP 5XX, a server error such as 503 Slow Down No

Archived objects are restored before they are read

Objects in S3 Glacier Flexible Retrieval and S3 Glacier Deep Archive are "not available for real-time access": "before you can access an archived object, you must first restore a temporary copy of it", kept for the days you ask for. A restore bills twice, the archive and the temporary copy "(S3 Standard storage rate)". Each archived object also carries 40 KB of metadata, 8 KB of it billed at the S3 Standard rate "so that you can get a real-time list of your archived objects", which is why AWS suggests "aggregating many small objects into a smaller number of large objects". How long a restore takes depends on its tier (archive retrieval options):

How long an archived object takes to come back, by retrieval tier

Class Expedited Standard Bulk
S3 Glacier Flexible Retrieval 1–5 minutes 3–5 hours 5–12 hours
S3 Glacier Deep Archive Not available Within 12 hours Within 48 hours

S3 Glacier Instant Retrieval is the archive class that needs no restore: its data is "available for real-time access", in milliseconds.

What S3 is used for

AWS points each kind of data to a storage class across its documentation: the storage classes guide, the Amazon S3 FAQs, the Intelligent-Tiering guide and the lifecycle guide:

Workloads and the storage classes, or features, AWS points them to

Workload Class or feature
Data read more than once a month: data lakes, cloud-native applications, dynamic websites, content distribution, analytics, machine learning models S3 Standard
Data with unknown, changing or unpredictable access: data lakes, data analytics, new applications S3 Intelligent-Tiering
Backups, long-term storage and disaster recovery data, read rarely but in milliseconds S3 Standard-IA
Data you can re-create if a zone fails, such as replicas of a Cross-Region Replication S3 One Zone-IA
Archives that need immediate access: medical images, news media assets, genomics data S3 Glacier Instant Retrieval
Backup and disaster recovery archives, large sets of data retrieved at no cost with Bulk retrievals S3 Glacier Flexible Retrieval
Long-lived archives: compliance archives, digital media preservation S3 Glacier Deep Archive
The most latency-sensitive applications S3 Express One Zone
Logs needed for a week or a month, records kept for a retention period Lifecycle rules
Datasets shared without paying for others' downloads Requester Pays buckets

The FAQ goes further for data whose access you cannot predict: "that is why S3 Intelligent-Tiering should be the default storage class to automatically save on storage costs". The Requester Pays line is about who pays: the requester pays for the requests and the downloads, the owner for the storage.

S3, EBS and EFS: three ways to be billed

S3 is object storage. Amazon Elastic Block Store (Amazon EBS) is block storage attached to one instance, and Amazon Elastic File System (Amazon EFS) a file system shared by many. AWS's decision guide sets them apart by workload: object storage for "read-heavy workloads such as content distribution, web hosting, big data analytics, and ML workflows", block storage for low-latency storage "attached to single Amazon EC2 instances or containers, such as databases", file storage for "shared read and write access across multiple Amazon EC2 instances or containers". They also live in different places, and bill on different bases:

Block, file and object storage in one RegionIn the Paris Region, an EBS volume attached to an instance in one Availability Zone, an EFS file system shared by instances in two zones, and an S3 bucket at the Region level that the VPC reaches through a gateway endpoint.Region eu-west-3 (Paris)VPCAvailability Zone 1Availability Zone 2InstanceEBS volumeAmazon EFSfile systemInstanceGateway endpointS3 bucket1234
Block, file and object storage in one Region
  1. An EBS volume lives in one Availability Zone and attaches to an instance there. It is billed on its provisioned size, used or not: $0.0928 per GB-month for gp3.
  2. An EFS file system is shared over NFS by instances in several zones. It is billed on the data stored, $0.33 per GB-month in EFS Standard, plus $0.03 per GB read and $0.07 per GB written with Elastic Throughput.
  3. A gateway endpoint gives the VPC a route to S3 in the same Region, at no additional charge.
  4. An S3 bucket belongs to the Region and is reached with HTTPS requests. It is billed on the data stored, $0.024 per GB-month in S3 Standard, and on its requests: $0.0053 per 1,000 PUT requests.

With EBS, "you pay only for what you provision", and a volume lives in one Availability Zone. An EFS Regional file system stores data "across multiple geographically separated Availability Zones" (What is Amazon EFS?), and you "pay only for the primary and backup storage you use and for your metadata and data read, write, and tiering activity". S3 bills the data stored and each request. Per GB-month in Paris, gp3 costs 3.87 times the price of S3 Standard and EFS Standard 13.75 times, computed: for 1 TB a month, $24.58 in S3 Standard, $95.03 of provisioned gp3, $337.92 in EFS Standard before its access charges. That is not a ranking: each figure leaves out what its service bills besides (requests for S3, unused provisioned space for EBS, reads and writes for EFS). The EC2 article's storage section compares EBS with instance store.

How S3 pricing works

What an S3 bill is made of

Storage is billed by the GB-month: "the volume of storage billed in a month is based on average storage used throughout the month", at the rate of each object's class (Amazon S3 FAQs). Requests are billed by type and count, and in some classes reading data back is billed per GB. "LIST requests for any storage class are charged at the same rate as S3 Standard PUT, COPY, and POST requests. DELETE and CANCEL requests are free", and browsing the console bills the GET and LIST requests it makes (Amazon S3 pricing). Data transfer, management features and replication complete the bill. The bucket owner pays all of it, unless the bucket is a Requester Pays bucket.

Storage, by class, in Paris

In S3 Standard, a terabyte stored for a month costs:

S3 Standard in Paris

$24.58 a TB-monthfor 1 TB (1,024 GB) stored a whole month, at the first tier: the first 50 TB of the month.

Computed from the AWS Price List · eu-west-3 · Oct 14, 2026

From S3 Standard down to Deep Archive, each class trades a lower storage price for minimums and retrieval charges, and the archive classes for a restore:

Storage classes, from hot to coldThe storage classes of a general purpose bucket, from S3 Standard to S3 Glacier Deep Archive, each with its minimum storage duration and minimum billable object size. S3 Glacier Flexible Retrieval and S3 Glacier Deep Archive must restore an object before it can be read. S3 Intelligent-Tiering moves each object between its own access tiers.Restore before readingS3 StandardS3 Standard-IAS3 One Zone-IANo minimum30 days, 128 KB30 days, 128 KBOne zoneS3 GlacierInstant RetrievalS3 GlacierFlexible RetrievalS3 GlacierDeep Archive90 days, 128 KB90 days, +40 KB180 days, +40 KBS3 Intelligent-TieringFee per object, no retrieval fee in its instant tiers12345
Storage classes, from hot to cold
  1. Lifecycle rules move objects one way, toward colder classes, and each move is a billed transition request. The arrows show some of the moves AWS lists; One Zone-IA cannot move to Glacier Instant Retrieval, and Glacier Flexible Retrieval only to Deep Archive.
  2. The infrequent access classes bill at least 30 days of storage and at least 128 KB per object, and charge a fee per GB read.
  3. Glacier Instant Retrieval still reads in milliseconds; it bills at least 90 days and 128 KB, and a fee per GB read.
  4. Glacier Flexible Retrieval and Deep Archive restore a temporary copy first, in minutes to hours; they bill at least 90 and 180 days, and 40 KB of metadata per object.
  5. Intelligent-Tiering has no minimum duration and no retrieval fee for its Frequent, Infrequent and Archive Instant Access tiers: it charges a monitoring fee per object and moves objects of 128 KB and more between its tiers as their access changes.

In Paris, their storage list prices per GB-month, and what a terabyte stored a whole month costs in each, computed:

S3 storage list prices in Paris (eu-west-3), by class

Storage classList price, per GB-monthA TB-month, computed
S3 StandardFirst 50 TB a month$0.024$24.58
S3 Standard-IA$0.0131$13.41
S3 One Zone-IAOne zone$0.01048$10.73
S3 Glacier Instant Retrieval$0.005$5.12
S3 Glacier Flexible RetrievalRestore before reading$0.00405$4.15
S3 Glacier Deep ArchiveRestore before reading$0.0018$1.84

USD, before tax. AWS Price List, eu-west-3, offer files published September 11, 2026 and October 14, 2026, fetched October 15, 2026.

Against S3 Standard, Standard-IA costs 45.4% less per GB-month in Paris, Glacier Instant Retrieval 79.2% less and Deep Archive 92.5% less, computed. S3 Standard gets cheaper with volume, $0.023 per GB-month for the next 450 TB and $0.022 per GB-month beyond 500 TB. Glacier Deep Archive has an offer file of its own, and "S3 Glacier Deep Archive usage and cost will show up as an independent service line item on your monthly AWS bill". Prices also differ by Region: S3 Standard costs 2.1% more in Frankfurt than in Paris. AWS's FAQ quotes its savings in percentages of US prices; this article prices Paris, so its percentages are its own, computed.

Minimum durations, minimum sizes and archive metadata

Four rules sit behind the table, and they decide whether a cheaper class really costs less (storage classes, Amazon S3 pricing):

The rules that bill more than the bytes stored

Rule Classes What it bills
Minimum storage duration Standard-IA and One Zone-IA: 30 days. Glacier Instant and Flexible Retrieval: 90 days. Deep Archive: 180 days An object deleted, overwritten or moved earlier is billed for the remaining days
Minimum billable size Standard-IA, One Zone-IA, Glacier Instant Retrieval An object under 128 KB is billed as 128 KB
Archive metadata Glacier Flexible Retrieval, Deep Archive, and the archive tiers of Intelligent-Tiering 40 KB per object: 32 KB at the class's rate, 8 KB at the S3 Standard rate
Retrieval fee Standard-IA, One Zone-IA, Glacier Instant Retrieval; restores of the archive classes A price per GB read back

The 40 KB are metadata added to each archived object, not a minimum size: AWS's own example bills 100,000 archived objects of 1 GB as "100,003.2 gigabytes of S3 Glacier storage". Computed from the Paris prices, storage alone, an object under 69.9 KB costs more in Standard-IA than in S3 Standard even if nobody reads it (55.9 KB for One Zone-IA, 26.7 KB for Glacier Instant Retrieval), and an object under 16.1 KB costs more archived in Glacier Flexible Retrieval than kept in S3 Standard (11.2 KB for Deep Archive). On the bill, these rules have names of their own, such as EarlyDelete-SIA and TimedStorage-SIA-SmObjects (usage reports).

Requests and retrieval

S3 bills each request, and the colder the class, the dearer the write:

PUT, COPY, POST and LIST requests by storage class in Paris

Storage classList price, per 1,000 requests
S3 StandardIntelligent-Tiering costs the same$0.0053
S3 Standard-IA$0.01
S3 One Zone-IA$0.01
S3 Glacier Instant Retrieval$0.02
S3 Glacier Flexible RetrievalPutObject$0.0318
S3 Glacier Deep ArchivePutObject$0.06

USD, before tax. AWS Price List, eu-west-3, offer files published September 11, 2026 and October 14, 2026, fetched October 15, 2026.

On the bill, Requests-Tier1 counts "PUT, COPY, or POST requests for S3 Standard, RRS, and tags, plus LIST requests for all buckets and objects", and Requests-Tier2 "GET and all other non-Tier1 requests". A multipart upload is billed for "all storage, bandwidth, and requests" of its parts, so every call counts: in AWS's replication example, a 100 GB object uploaded in 800 parts is replicated with 802 requests, 800 UploadPart plus one to start and one to complete (Amazon S3 FAQs). Reading data back is where the infrequent and archive classes charge most:

Reading data back in Paris: GET requests, retrievals and restores

ItemList priceUnit
S3 Standard
GET and all other requests$0.00042per 1,000 requests
S3 Standard-IA
GET and all other requests$0.001per 1,000 requests
Retrieval$0.01per GB
S3 One Zone-IA
GET and all other requests$0.001per 1,000 requests
Retrieval$0.01per GB
S3 Glacier Instant Retrieval
GET and all other requests$0.01per 1,000 requests
Retrieval$0.03per GB
S3 Glacier Flexible Retrieval
Restore request, Expedited$0.0105per request
Restore requests, Standard$0.053per 1,000 requests
Restore requests, Bulk$0.00per 1,000 requests
Retrieval, Expedited$0.0315per GB
Retrieval, Standard$0.0105per GB
Retrieval, Bulk$0.00per GB
S3 Glacier Deep Archive
Restore requests, Standard$0.106per 1,000 requests
Restore requests, Bulk$0.02625per 1,000 requests
Retrieval, Standard$0.021per GB
Retrieval, Bulk$0.005per GB

USD, before tax. AWS Price List, eu-west-3, offer files published September 11, 2026 and October 14, 2026, fetched October 15, 2026.

Bulk retrievals from Glacier Flexible Retrieval are free, data and requests alike, and Intelligent-Tiering charges no retrieval fee, except for Expedited restores from its optional Archive Access tier, billed at the Expedited request and retrieval rates (Amazon S3 pricing). A restored copy is billed at the S3 Standard rate for as long as you keep it.

Lifecycle transitions

A lifecycle rule moves objects to colder classes, or deletes them, on their age. "There is no additional cost to set up and apply Lifecycle policies. A transition request is charged per object", and transitions have no retrieval charge. In Paris, a transition into Standard-IA costs $0.01 per 1,000 requests, into Glacier Flexible Retrieval $0.0318 per 1,000 requests and into Deep Archive $0.06 per 1,000 requests: the price of a PUT into the class. Moves follow "a waterfall model", toward colder classes only, and "the transition of objects to the S3 Glacier Deep Archive storage class can go only one way".

Two details change what a rule costs. "Starting September 2024, the default behavior prevents objects smaller than 128 KB from being transitioned to any storage class", because "for smaller objects, the transition costs can outweigh the storage savings"; rules created before keep the old behavior until they are edited. And a new rule acts on the whole bucket at once: "the configuration rules apply to both existing objects and objects that you add later", so its first month can bill a burst of transitions. Objects no longer have to wait 30 days in S3 Standard before moving to Standard-IA or One Zone-IA (decision guide).

Intelligent-Tiering: a monitoring fee instead of retrieval fees

S3 Intelligent-Tiering moves each object by its own access (How S3 Intelligent-Tiering works): to the Infrequent Access tier after 30 consecutive days without access, to the Archive Instant Access tier after 90, and back to the Frequent Access tier when it is read. Two archive tiers are optional, from 90 and 180 days, and need a restore. Each tier is priced at the matching class:

S3 Intelligent-Tiering access tiers in Paris, storage

Access tierList price, per GB-month
Frequent AccessOn upload, and after any access · first 50 TB$0.024
Infrequent AccessAfter 30 days without access$0.0131
Archive Instant AccessAfter 90 days without access$0.005
Archive AccessOptional, from 90 days · restore$0.00405
Deep Archive AccessOptional, from 180 days · restore$0.0018

USD, before tax. AWS Price List, eu-west-3, offer file published October 14, 2026, fetched October 15, 2026.

In exchange, the class charges $0.0025 per 1,000 objects a month for monitoring and automation, on each object of 128 KB or more. "No additional tiering charges apply when objects are moved between access tiers", and "there are no retrieval fees for S3 Intelligent-Tiering"; the pricing page makes one exception, the Expedited restores of the optional Archive Access tier. Smaller objects "are not eligible for auto-tiering": they stay in the Frequent Access tier, and are not charged the fee (Amazon S3 FAQs). The class has no minimum storage duration. AWS gives its savings as "up to" percentages of US prices; in Paris, the Infrequent Access tier costs 45.4% less per GB-month than the Frequent Access tier, and the Archive Instant Access tier 79.2% less, computed.

Data transfer

"You pay for all bandwidth into and out of Amazon S3", except data in from the internet, data between buckets of one Region, data from S3 to any AWS service in the same Region (another account's included), data out to Amazon CloudFront, and the first 100 GB a month out to the internet, counted across all AWS services and Regions except China and GovCloud. Between S3 and Amazon EC2, the FAQ puts it plainly: same Region, no transfer charge; across Regions, charged.

Data transfer from S3 in Paris, and the two billed ways to reach it from a private subnet (a gateway endpoint has no additional charge)

ItemList priceUnit
Out of S3
To the internetFirst 10 TB a month$0.09per GB
To the internetNext 40 TB$0.085per GB
To the internetNext 100 TB$0.07per GB
To the internetOver 150 TB$0.05per GB
To CloudFront$0.00per GB
To Frankfurt (eu-central-1)$0.02per GB
In from the internet$0.00per GB
NAT gateway
NAT gateway$0.05per hour
Data processed$0.05per GB
Interface endpoint
Interface endpointPer endpoint$0.011per hour
Data processedFirst petabyte$0.01per GB

USD, before tax. AWS Price List, eu-west-3, offer files published September 16, 2026, September 17, 2026 and October 12, 2026, fetched October 15, 2026.

From a private subnet, traffic to S3 that goes through a NAT gateway pays the gateway's hourly charge and "each gigabyte of data that it processes" (NAT gateway pricing). A gateway endpoint reaches S3 "without requiring an internet gateway or NAT device for your VPC, and with no additional cost"; an interface endpoint, needed from on-premises networks, peered VPCs in other Regions or a transit gateway, is billed per hour and per GB. The EC2 article lists the other charges around an instance. For European customers, AWS adds: "EU customers may request reduced data transfer rates for eligible use cases under the European Data Act".

Versioning, delete markers and unfinished uploads

Three kinds of storage do not show in a normal listing of a bucket, and all three are billed:

What stays billed, and until when

What you do What stays billed, and until when
Overwrite an object in a versioned bucket The old object, as a noncurrent version at its class's rate, until a lifecycle rule expires it
Delete an object in a versioned bucket, without a version ID Every version, plus a delete marker in S3 Standard the size of its key name, until the versions expire and the rule removes the marker
Start a multipart upload and never complete it Every uploaded part, "all storage, bandwidth, and requests for this multipart upload", until the upload is completed or stopped

"If you have three versions of an object stored, you are charged for three objects", and a bucket "can never return to an unversioned state" once versioning is on; it can only be suspended.

Each version of an object is the entire object; it is not just a diff from the previous version.

AWS, Retaining multiple versions of objects with S3 Versioning

A DELETE request leaves every version in place under its marker. The parts of an unfinished upload stay "in an unusable state" and are listed by the ListMultipartUploads API, not by a listing of objects (multipart upload). An expiration rule does not remove them, and "there are no early delete charges for deleting incomplete multipart uploads regardless of storage class specified". Pattern 2 prices a year of them.

Replication

S3 Replication copies objects automatically and asynchronously to another bucket, in another Region (Cross-Region Replication) or the same one; objects that were in the bucket before the rule need S3 Batch Replication. "Both source and destination buckets must have versioning enabled", so a replicated bucket is a versioned bucket on both sides. Each charge has its Region (Amazon S3 pricing):

What replication bills, and at which Region's prices

Charge Priced in
Replica storage, in the class the rule chooses The destination Region
Replication PUT requests The destination Region
Retrieval charges, when the source is in an infrequent access class Its class's retrieval fee
Data transfer between Regions (Cross-Region Replication only) The source Region
S3 Replication Time Control data transfer, and its metrics as CloudWatch custom metrics The same in all Regions; metrics at CloudWatch's rate
S3 Batch Replication of existing objects S3 Batch Operations, plus a charge per object for a manifest AWS generates

A multipart object is replicated in as many parts, each a billed request (Amazon S3 FAQs). By default the replica takes the class of its source, but "you can specify any storage class that Amazon S3 supports". Objects in Glacier Flexible Retrieval, Deep Archive or the Intelligent-Tiering archive tiers are not replicated until they are restored and copied, and neither are lifecycle rules: each bucket needs its own. S3 Replication Time Control "replicates most objects that you upload to Amazon S3 in seconds", with a service-level agreement at 15 minutes.

Encryption

"Amazon S3 automatically applies server-side encryption with Amazon S3 managed keys (SSE-S3) as a base layer of encryption to all new objects added to S3, at no additional cost". With SSE-KMS, the keys of AWS Key Management Service (AWS KMS), "you pay AWS KMS charges to generate or retrieve the data key", and without an S3 Bucket Key "Amazon S3 makes a call to AWS KMS every time a request is made against a KMS-encrypted object":

100 million AWS KMS requests

$300.00 a monthat the Paris list price, the 20,000 free requests of the month not deducted.

Computed from the AWS Price List · eu-west-3 · Sep 11, 2026

Reading the S3 lines of a bill

S3's usage types carry the Region's code: in Paris they start with EUW3-, while "for the US East (N. Virginia) Region, the region prefix is omitted". Among them:

S3 usage types on a bill in Paris

Usage type What it counts
EUW3-TimedStorage-ByteHrs "The number of GB-months that data was stored in S3 Standard storage"
EUW3-TimedStorage-SIA-ByteHrs, -ZIA-, -GIR-, -GlacierByteHrs, -GDA-, -INT-FA-… The same for each class and access tier
EUW3-Requests-Tier1, EUW3-Requests-Tier2 PUT, COPY, POST and LIST requests; GET and every other request
EUW3-Retrieval-SIA Data read back from Standard-IA
EUW3-EarlyDelete-SIA Storage billed for objects removed from Standard-IA before 30 days
EUW3-Monitoring-Automation-INT Objects monitored by Intelligent-Tiering
EUW3-DataTransfer-Out-Bytes, EUW3-CloudFront-Out-Bytes, EUW3-EUC1-AWS-Out-Bytes Data out to the internet, to CloudFront, to Frankfurt

Cost Explorer groups them, in usage type groups such as "S3: Storage - Standard", "S3: API Requests - Standard", "S3: Data Transfer - Internet (Out)" and "S3: Data Transfer - Region to Region (Out)". For a cost per bucket, AWS's answer is tags: "label your Amazon S3 buckets using cost allocation tags"; they label buckets only, and appear in the bill once activated in the Billing and Cost Management console.

Other S3 storage

  • S3 Express One Zone, in directory buckets, is "purpose-built to deliver consistent, single-digit millisecond data access" in one zone; Paris has one, euw3-az1 (directory bucket endpoints). In Paris its PUT requests cost 77.4% less than S3 Standard's, computed, but its storage 4.79 times as much, plus a fee per GB uploaded and retrieved: a latency product first.
  • S3 Files is a shared file system over data in S3, "built using Amazon EFS": you pay for the active data on its high-performance storage, $0.33 per GB-month in Paris, and per GB read and written (Working with Amazon S3 Files).
  • S3 Tables and S3 Vectors have their own prices, outside this article.
  • S3 Select "is no longer available to new customers": it is not a way to save for a new workload.

Choosing a storage class

AWS's FAQ gives the rule of thumb: S3 Standard is "the best choice if you access data more than once a month", Standard-IA "ideal for data retained for at least a month and accessed once every month or two". The questions below put Paris numbers behind it, computed from list prices, storage and retrieval only.

Standard or Standard-IA?

Standard-IA stays cheaper than S3 Standard as long as less than 1.09 times the data it stores is read back each month (One Zone-IA: 1.35 times; Glacier Instant Retrieval: 0.63 times), for objects of 128 KB or more kept at least the class's minimum duration (30 days; 90 for Glacier Instant Retrieval). Below 128 KB the minimum billable size lowers that threshold, down to zero at 69.9 KB (55.9 KB for One Zone-IA, 26.7 KB for Glacier Instant Retrieval). For one terabyte of objects of 128 KB or more, read back half-way each month:

1 TB stored a month in objects of 128 KB or more, 512 GB of it read back, in Paris

1 TB in S3 Standard Illustrative

LineA month
Storage
S3 Standard storage1,024 GB × $0.024 /GB-mo$24.58
A month, computed$24.58

1 TB in S3 Standard-IA Illustrative

LineA month
Storage
S3 Standard-IA storage1,024 GB × $0.0131 /GB-mo$13.41
Other
Standard-IA retrieval512 GB × $0.01 /GB$5.12
A month, computed$18.53

S3 Standard-IA costs $6.05 a month less than S3 Standard (24.6% less), computed.

USD before tax, 730 h a month. AWS Price List, eu-west-3, offer file published October 14, 2026, fetched October 15, 2026. Illustrative configuration, not a client case.

Requests are left out of both: in Standard-IA a GET costs more than twice an S3 Standard GET, which matters for many small reads.

Is Intelligent-Tiering worth it?

For data whose access you cannot predict, AWS recommends it "independent of object size or retention period" (Intelligent-Tiering). The monitoring fee sets the limit, computed in Paris: an object that only reaches the Infrequent Access tier pays its fee back from 240.5 KB, and one that reaches the Archive Instant Access tier from 138.0 KB. Between 128 KB and those sizes, the fee costs more than the tier saves; data that stays hot pays the fee on top of the S3 Standard price. Pattern 3 draws the crossing by object size.

Which Glacier class?

Archive classes trade the price per GB-month against the time to get data back and its retrieval fee (archive retrieval options). In Paris, Glacier Flexible Retrieval costs 19.0% less per GB-month than Glacier Instant Retrieval, and Deep Archive 55.6% less than Glacier Flexible Retrieval, computed; reading back costs $0.03 per GB from Glacier Instant Retrieval, $0.0105 per GB from Glacier Flexible Retrieval with a Standard retrieval (Bulk is free), and $0.021 per GB from Deep Archive. The comparison table of the storage classes guide reads them by access: about once a quarter for Glacier Instant Retrieval, once a year for Glacier Flexible Retrieval, less than once a year for Deep Archive.

One Zone-IA

"Use if you can re-create the data if the Availability Zone fails", including replicas in another Region; for the "primary or only copy of data that can't be re-created", AWS points to Standard-IA. It shares Standard-IA's minimums and retrieval fee.

In short: A colder class costs less only for objects large enough, kept long enough and read rarely enough: in Paris, Standard-IA costs more than S3 Standard below 69.9 KB an object, or when more than 1.09 times the data it stores is read back a month, computed.

Architecture patterns around S3 and what they cost

Four illustrative configurations, each priced before and after the levers of the next section, line by line from the AWS Price List: a backup archive that moves down the classes with a lifecycle rule, a versioned bucket that keeps what nobody lists, a data lake on Intelligent-Tiering, and a Cross-Region Replication copy. None is a client case; every amount is computed, and each card lists its assumptions and what it leaves out. The EC2 patterns price the compute side the same way.

Pattern 1 of 4 · Illustrative configuration

Backup and log archive, moved down the classes as it ages

Backup jobs write 2 TB a month to one bucket in Paris, kept a year; a lifecycle rule moves each object to colder storage classes as it ages, then deletes it.

Backups and logs: a lifecycle from S3 Standard to S3 Glacier Flexible RetrievalBackup jobs write to an S3 bucket in the Paris Region. A lifecycle rule moves each object from S3 Standard to S3 Standard-IA after 30 days, to S3 Glacier Flexible Retrieval after 90 days, and deletes it after 365 days.Region eu-west-3 (Paris)Bucket with a lifecycle ruleBackup jobsS3 StandardS3 Standard-IAS3 GlacierFlexible RetrievalDeletedDays 0 to 30Days 30 to 90Days 90 to 365Day 3651234
Backups and logs: a lifecycle from S3 Standard to S3 Glacier Flexible Retrieval Illustrative configuration in Paris, not a client case.
  1. Every backup object is written with one PUT request: $0.0053 per 1,000. Data transferred in is not billed, from the internet or from AWS services in the same Region.
  2. After 30 days the rule moves each object to S3 Standard-IA, one transition request each: $0.01 per 1,000. Storage drops to $0.0131 per GB-month; reading it back costs $0.01 per GB.
  3. After 90 days, to S3 Glacier Flexible Retrieval: $0.0318 per 1,000 transitions, $0.00405 per GB-month, plus 40 KB of metadata per object. An object is restored before it is read: $0.0105 per GB with a Standard retrieval, free with a Bulk retrieval.
  4. At 365 days the rule deletes the object. Deletions are free, and an object kept past its class's minimum duration has no early-deletion charge.

Without the deletion at day 365, the S3 Standard bucket would grow by 2,048 GB, $49.15, every month.

Before · Everything in S3 Standard, deleted after a year: storage $589.82, other $0.17, total $589.99 a month.

With the levers · Standard-IA at 30 days, Glacier Flexible Retrieval at 90, deleted at 365: storage $178.10, other $3.17, total $181.27 a month.

With the levers: $408.72 a month less (69.3% less), computed.

The bills line by line, the assumptions and the sources

Backup and log archive, moved down the classes as it ages, before: Everything in S3 Standard, deleted after a year Illustrative

A year of backups in S3 Standard; an expiration rule deletes each object after 365 days.

LineA month
Storage
S3 Standard, 12 months of backups24,576 GB × $0.024 /GB-mo$589.82
Other$0.17
PUT requests, one per backup object32,768 requests × $0.0053 /1K req$0.17
GET requests on data 30 to 90 days old800 requests × $0.00042 /1K req$0.00
A month, computed$589.99

Backup and log archive, moved down the classes as it ages, with the levers: Standard-IA at 30 days, Glacier Flexible Retrieval at 90, deleted at 365 Illustrative

One lifecycle rule: S3 Standard-IA after 30 days, S3 Glacier Flexible Retrieval after 90, expiration after 365.

LineA month
Storage$178.10
S3 Standard, the first 30 days2,048 GB × $0.024 /GB-mo$49.15
S3 Standard-IA, days 30 to 904,096 GB × $0.0131 /GB-mo$53.66
S3 Glacier Flexible Retrieval, days 90 to 36518,432 GB × $0.00405 /GB-mo$74.65
Archive metadata, 32 KB per object at the Glacier Flexible Retrieval rate9 GB × $0.00405 /GB-mo$0.04
Archive metadata, 8 KB per object at the S3 Standard rate2.25 GB × $0.024 /GB-mo$0.05
Restored copies, kept 7 days at the S3 Standard rate100 GB × 168 h / 730 h × $0.024 /GB-mo$0.55
Other$3.17
PUT requests, one per backup object32,768 requests × $0.0053 /1K req$0.17
Lifecycle transitions into Standard-IA32,768 requests × $0.01 /1K req$0.33
Lifecycle transitions into S3 Glacier Flexible Retrieval32,768 requests × $0.0318 /1K req$1.04
GET requests on Standard-IA objects800 requests × $0.001 /1K req$0.00
Standard-IA retrieval50 GB × $0.01 /GB$0.50
Restore requests, Standard tier1,600 requests × $0.053 /1K req$0.08
Glacier Flexible Retrieval retrieval, Standard tier100 GB × $0.0105 /GB$1.05
A month, computed$181.27

Deep Archive at 90 days instead: $141.85 a month, 76.0% less than before, computed.

Assumptions

  • Illustrative configuration in Paris (eu-west-3), not a client case.
  • Backup jobs write 2,048 GB a month as 64 MiB objects: 32,768 objects a month, one PUT request each. Every object is kept 365 days, then deleted.
  • The bill is the steady month, once the bucket holds a full year: the lifecycle rule's 30, 90 and 365 days are counted as 1, 3 and 12 months, so S3 Standard holds one month of data, Standard-IA two and the archive class nine.
  • Reads: 50 GB a month of data 30 to 90 days old (800 objects). One audit a month restores 100 GB of data older than 90 days (1,600 objects) with Standard retrievals, and keeps the restored copies 7 days.
  • Each archived object adds 40 KB of metadata: 32 KB at the archive class's rate and 8 KB at the S3 Standard rate (294,912 archived objects).
  • No object is deleted before its class's minimum storage duration: objects stay 60 days in Standard-IA (minimum 30) and 275 days in the archive class (minimum 90, or 180 for Deep Archive).
  • The bucket is the account's only storage in these classes in Paris, so S3 Standard bills at its first tier (up to 50 TB).

Not counted

  • The backup jobs themselves, and data transfer in (not billed).
  • The GET requests of the monthly audit (1,600 a month), left out of every variant alike.
  • Encryption with AWS KMS (SSE-S3, the default, has no additional cost) and S3 Storage Lens advanced metrics.

Sources

USD before tax, 730 h a month. AWS Price List, eu-west-3, offer files published September 11, 2026 and October 14, 2026, fetched October 15, 2026. Illustrative configuration, not a client case.

Pattern 2 of 4 · Illustrative configuration

A versioned bucket: the storage nobody lists

An application keeps 5 TB of current data in a versioned S3 Standard bucket, overwrites part of it every month and leaves some multipart uploads unfinished; the bill is read after a year.

A versioned bucket: the storage nobody listsAn application writes to a versioned S3 bucket. Next to the current versions, the bucket holds noncurrent versions, the parts of unfinished multipart uploads and delete markers. S3 Storage Lens counts them; one lifecycle rule removes them.Region eu-west-3 (Paris)S3 bucket, versioning enabledApplicationCurrentversionsNoncurrent versionsUnfinished uploadsDelete markersS3 Storage LensLifecycle rule12345
A versioned bucket: the storage nobody lists Illustrative configuration in Paris, not a client case.
  1. With versioning on, writing to an existing key keeps the old object as a noncurrent version. Every version is a whole object, billed like one: $0.024 per GB-month in S3 Standard.
  2. The parts of a multipart upload that is never completed stay in the bucket, unusable and billed, until the upload is completed or stopped.
  3. A DELETE without a version ID only adds a delete marker: the versions under it stay, and stay billed.
  4. S3 Storage Lens shows noncurrent version bytes, delete markers and incomplete multipart upload bytes in its free metrics.
  5. One lifecycle rule: expire noncurrent versions 30 days after they become noncurrent, stop incomplete multipart uploads 7 days after they start, and remove expired delete markers.

Without the rule, the bill grows by 562 GB, $13.49, every month, as the chart below shows over two years; with it, it stays flat.

Before · Versioning on, no lifecycle rule: storage $284.74, total $284.74 a month.

With the levers · Noncurrent versions expire after 30 days, unfinished uploads stopped after 7: storage $135.28, total $135.28 a month.

With the levers: $149.46 a month less (52.5% less), computed.

The versioned bucket's monthly bill every six months, without and with the rule, computed

AfterNo rule, a monthWith the rule, a monthChange, computed
6 months$203.81$135.2833.6% less
12 months$284.74$135.2852.5% less
18 months$365.66$135.2863.0% less
24 months$446.59$135.2869.7% less

With the rule the bill stays the same: each noncurrent version and each unfinished upload leaves after its 30 or 7 days.

USD, before tax. AWS Price List, eu-west-3, offer file published October 14, 2026, fetched October 15, 2026.

The bills line by line, the assumptions and the sources

A versioned bucket: the storage nobody lists, before: Versioning on, no lifecycle rule Illustrative

Versioning enabled and no lifecycle rule: every noncurrent version and every unfinished upload of the year is still stored.

LineA month
Storage$284.74
Current versions5,120 GB × $0.024 /GB-mo$122.88
Noncurrent versions, 12 months of overwrites6,144 GB × $0.024 /GB-mo$147.46
Parts of unfinished multipart uploads, 12 months600 GB × $0.024 /GB-mo$14.40
A month, computed$284.74

A versioned bucket: the storage nobody lists, with the levers: Noncurrent versions expire after 30 days, unfinished uploads stopped after 7 Illustrative

One lifecycle rule: NoncurrentVersionExpiration after 30 days, AbortIncompleteMultipartUpload after 7 days, and ExpiredObjectDeleteMarker.

LineA month
Storage$135.28
Current versions5,120 GB × $0.024 /GB-mo$122.88
Noncurrent versions, each kept 30 days512 GB × 720 h / 730 h × $0.024 /GB-mo$12.12
Parts of unfinished multipart uploads, each kept 7 days50 GB × 168 h / 730 h × $0.024 /GB-mo$0.28
A month, computed$135.28

Assumptions

  • Illustrative configuration in Paris (eu-west-3), not a client case.
  • 5,120 GB of current versions in S3 Standard, versioning enabled. Each month the application overwrites 512 GB of objects: each overwrite keeps the old object as a noncurrent version, a whole object billed like one.
  • Each month 50 GB of parts belong to multipart uploads that are never completed: they stay in the bucket, billed, until the upload is completed or stopped.
  • The bill is read after 12 months, at a steady rate of overwrites and failed uploads.
  • With the rule, each noncurrent version is kept 30 days (720 hours) and each unfinished upload is stopped 7 days (168 hours) after it starts; 30 days is the recovery window the application's owner accepts, a choice, not an AWS figure.
  • Requests are the same in both variants and are not counted.

Not counted

  • Delete markers (AWS: a minimal charge, the size of their key name).
  • Requests, which are the same in both variants.

Sources

USD before tax, 730 h a month. AWS Price List, eu-west-3, offer file published October 14, 2026, fetched October 15, 2026. Illustrative configuration, not a client case.

Pattern 3 of 4 · Illustrative configuration

A data lake whose access nobody can predict

100 TB of analytics data in one bucket, read by queries whose access pattern nobody can predict: S3 Standard against S3 Intelligent-Tiering, which moves each object by its own access.

A data lake in S3 Intelligent-TieringAnalytics jobs in the Paris Region read and write a bucket in the same Region whose objects are stored in S3 Intelligent-Tiering. An object moves from the Frequent Access tier to the Infrequent Access tier after 30 days without access, to the Archive Instant Access tier after 90, and back to the Frequent Access tier when it is read.Region eu-west-3 (Paris)Bucket in S3 Intelligent-TieringAnalytics jobsS3 Intelligent-TieringFrequent Access tierInfrequent Access tierArchive Instant Access tier12345
A data lake in S3 Intelligent-Tiering Illustrative configuration in Paris, not a client case.
  1. Objects are written straight into S3 Intelligent-Tiering, with no transition request. Its requests are priced as S3 Standard's: $0.0053 per 1,000 PUT requests, $0.00042 per 1,000 GET requests.
  2. An object not accessed for 30 consecutive days moves to the Infrequent Access tier: $0.0131 per GB-month instead of $0.024.
  3. After 90 consecutive days without access, to the Archive Instant Access tier: $0.005 per GB-month, still read in milliseconds.
  4. When an object in either tier is read, it moves back to the Frequent Access tier. There is no retrieval fee, and no charge for moving between tiers.
  5. The class charges $0.0025 per 1,000 objects a month for monitoring and automation, on objects of 128 KB and more; smaller objects stay in the Frequent Access tier, unmonitored and not charged the fee.

Moving the existing objects into Intelligent-Tiering with a lifecycle rule costs $104.86 once, computed; new objects can be written straight into the class, with no transition. The chart under the bills shows why object size matters.

Before · S3 Standard: storage $2,406.40, total $2,406.40 a month.

With the levers · S3 Intelligent-Tiering, archive tiers off: storage $1,344.51, other $26.21, total $1,370.72 a month.

With the levers: $1,035.68 a month less (43.0% less), computed.

A million objects not read for 30 days, by object size: S3 Standard against Intelligent-Tiering, a month, computed

Object sizeS3 StandardIntelligent-TieringChange, computed
128 KB$2.93$4.1039.9% more
192 KB$4.39$4.9011.6% more
256 KB$5.86$5.702.7% less
512 KB$11.72$8.9024.1% less
1 MB$23.44$15.2934.8% less

Intelligent-Tiering: the Infrequent Access tier's storage plus the monitoring fee of $2.50 a month for a million objects. The pattern's objects are 10 MiB, far to the right of these sizes.

USD, before tax. AWS Price List, eu-west-3, offer file published October 14, 2026, fetched October 15, 2026.

The bills line by line, the assumptions and the sources

A data lake whose access nobody can predict, before: S3 Standard Illustrative

All 100 TB in S3 Standard.

LineA month
Storage$2,406.40
S3 Standard, first 50 TB51,200 GB × $0.024 /GB-mo$1,228.80
S3 Standard, next 450 TB tier51,200 GB × $0.023 /GB-mo$1,177.60
A month, computed$2,406.40

A data lake whose access nobody can predict, with the levers: S3 Intelligent-Tiering, archive tiers off Illustrative

The same objects in S3 Intelligent-Tiering, which moves each one to the Infrequent Access tier after 30 days without access and to the Archive Instant Access tier after 90.

LineA month
Storage$1,344.51
Frequent Access tier, 30% of the bytes30,720 GB × $0.024 /GB-mo$737.28
Infrequent Access tier, 30% of the bytes30,720 GB × $0.0131 /GB-mo$402.43
Archive Instant Access tier, 40% of the bytes40,960 GB × $0.005 /GB-mo$204.80
Other
Monitoring and automation10,485,760 objects × $0.0025 /1K obj-mo$26.21
A month, computed$1,370.72

Assumptions

  • Illustrative configuration in Paris (eu-west-3), not a client case.
  • 102,400 GB (100 TB) as 10 MiB objects: 10,485,760 objects, all of 128 KB or more, so all monitored by Intelligent-Tiering.
  • In the month, 30% of the bytes were read in the last 30 days, 30% have not been read for 30 to 90 days, and 40% not for more than 90 days: an assumed mix, steady from month to month (S3 Storage Lens or S3 Inventory measure the real one).
  • Queries need their data at once, so the optional Archive Access and Deep Archive Access tiers stay off: no object needs a restore.
  • Requests are priced the same in S3 Intelligent-Tiering as in S3 Standard in Paris, and are the same in both variants: they are not counted.
  • The bucket is the account's only S3 Standard storage in Paris: its first 50 TB bill at the first tier, the next 50 TB at the second.

Not counted

  • Requests, the same in both variants.
  • The analytics engine and the data transfer of its queries (none within the Region).

Sources

USD before tax, 730 h a month. AWS Price List, eu-west-3, offer file published October 14, 2026, fetched October 15, 2026. Illustrative configuration, not a client case.

Pattern 4 of 4 · Illustrative configuration

A disaster-recovery copy in Frankfurt

A versioned bucket in Paris copies each new object to a bucket in Frankfurt with S3 Cross-Region Replication: the replica's storage class and S3 Replication Time Control make most of the difference.

A disaster-recovery copy in Frankfurt with S3 ReplicationA replication rule on a versioned bucket in the Paris Region copies each new object to a bucket in the Frankfurt Region. The replicas are stored in S3 Glacier Instant Retrieval; S3 Replication Time Control is an option of the rule.eu-west-3 (Paris)eu-central-1 (Frankfurt)$0.02 /GBSource bucketS3 ReplicationS3 ReplicationTime ControlS3 StandardDestination bucketS3 GlacierInstant Retrieval1234
A disaster-recovery copy in Frankfurt with S3 Replication Illustrative configuration in Paris and Frankfurt, not a client case.
  1. Replication needs versioning on both buckets. Live replication copies objects written after the rule is set; existing objects need S3 Batch Replication.
  2. Each GB copied out of Paris to Frankfurt is billed as inter-Region data transfer: $0.02 per GB. The replica is stored, and its PUT requests are billed, at Frankfurt prices.
  3. S3 Replication Time Control adds $0.015 per GB replicated and replication metrics billed as CloudWatch custom metrics, for most objects replicated in seconds and an SLA at 15 minutes. It is optional.
  4. The replica's storage class is a setting of the rule; by default it is the source's. Here S3 Glacier Instant Retrieval, for a copy read only in a recovery, still in milliseconds: $0.005 per GB-month in Frankfurt, and $0.03 per GB read back.

A replica is paid for when it is read too: reading the whole replica back in a recovery bills $614.40 of retrieval from Glacier Instant Retrieval, $204.80 from One Zone-IA, and none from S3 Standard. A One Zone-IA replica costs $117.47 a month more and $409.60 less to read back once: it is the cheaper copy only if the whole replica is read back more often than once every 3.5 months, computed. Copying the 20 TB already in the bucket into Glacier Instant Retrieval with S3 Batch Replication costs $464.94 once, computed.

Before · Replica in S3 Standard, with S3 RTC: storage $993.28, network $35.84, other $1.40, total $1,030.52 a month.

With the levers · Replica in S3 Glacier Instant Retrieval, without S3 RTC: storage $593.92, network $20.48, other $3.31, total $617.71 a month.

With the levers: $412.81 a month less (40.1% less), computed.

The bills line by line, the assumptions and the sources

A disaster-recovery copy in Frankfurt, before: Replica in S3 Standard, with S3 RTC Illustrative

The replication defaults (the replica takes the source's class, S3 Standard) and S3 Replication Time Control.

LineA month
Storage$993.28
Source bucket in Paris, S3 Standard20,480 GB × $0.024 /GB-mo$491.52
Replica storage in Frankfurt, S3 Standard20,480 GB × $0.0245 /GB-mo$501.76
Network$35.84
Data transfer from Paris to Frankfurt1,024 GB × $0.02 /GB$20.48
S3 Replication Time Control data transfer1,024 GB × $0.015 /GB$15.36
Other$1.40
PUT requests in Paris131,072 requests × $0.0053 /1K req$0.69
Replication PUT requests in Frankfurt, S3 Standard131,072 requests × $0.0054 /1K req$0.71
A month, computed$1,030.52

A disaster-recovery copy in Frankfurt, with the levers: Replica in S3 Glacier Instant Retrieval, without S3 RTC Illustrative

The rule stores the replicas in S3 Glacier Instant Retrieval, for a copy read less than once a quarter and still read in milliseconds, and leaves S3 RTC off.

LineA month
Storage$593.92
Source bucket in Paris, S3 Standard20,480 GB × $0.024 /GB-mo$491.52
Replica storage in Frankfurt, S3 Glacier Instant Retrieval20,480 GB × $0.005 /GB-mo$102.40
Network
Data transfer from Paris to Frankfurt1,024 GB × $0.02 /GB$20.48
Other$3.31
PUT requests in Paris131,072 requests × $0.0053 /1K req$0.69
Replication PUT requests in Frankfurt, S3 Glacier Instant Retrieval131,072 requests × $0.02 /1K req$2.62
A month, computed$617.71

Replica in S3 One Zone-IA, without S3 RTC: $735.18 a month, 28.7% less than before, computed.

Assumptions

  • Illustrative configuration in Paris (eu-west-3) with its replica in Frankfurt (eu-central-1), not a client case.
  • 20,480 GB (20 TB) of production data in a versioned S3 Standard bucket in Paris, and 1,024 GB of new objects a month as 8 MiB objects (131,072 a month). New objects only: nothing is overwritten.
  • A copy must exist in another Region. Frankfurt (eu-central-1) is the illustration: the replica's storage and its replication PUT requests are billed at Frankfurt's list prices, the data transfer out of Paris and S3 Replication Time Control at Paris's.
  • The replica bucket holds the same 20 TB as the source, and is read only in a recovery.
  • Without S3 RTC: the recovery point does not need most objects copied within 15 minutes (an assumption to check against the business's own target).
  • The replica bucket's lifecycle expires noncurrent replicas no earlier than the replica class's minimum storage duration (90 days for Glacier Instant Retrieval, 30 for One Zone-IA).
  • Each bucket is its account's only S3 storage in its Region: both bill at the first tier.

Not counted

  • S3 Replication metrics, billed as Amazon CloudWatch custom metrics when S3 RTC is on.
  • Encryption with AWS KMS (SSE-S3 has no additional cost).
  • The requests and the transfer back to Paris of a recovery.

Sources

USD before tax, 730 h a month. AWS Price List, eu-west-3 and eu-central-1, offer files published September 16, 2026 and October 14, 2026, fetched October 15, 2026. Illustrative configuration, not a client case.

Want the same levers on your own bill?

Get a free audit

How to reduce S3 costs

Each lever below comes from AWS documentation; their order is this article's. S3 storage has no commitment discount in the AWS Price List, so the order is shorter than EC2's: see the bill first, then delete what nothing needs, then move what stays to the class that fits it, then route its traffic, and review on a cadence, because a rule added later acts on everything already in the bucket. The levers, in that order:

  1. Lever 01,SeeSee where the S3 bill comes fromAlways, and first
  2. Lever 02,TrimExpire what nobody needsData with a known end of life
  3. Lever 03,TrimClean up old versions, delete markers and unfinished uploadsEvery versioned bucket, every multipart upload
  4. Lever 04,TrimTurn on S3 Bucket Keys for SSE-KMSBuckets encrypted with SSE-KMS
  5. Lever 05,ReshapeMove data down the classes as it coolsAccess that falls with age
  6. Lever 06,ReshapeLet Intelligent-Tiering move data whose access you cannot predictUnknown or changing access
  7. Lever 07,ReshapeChoose the archive class by how fast you need the data backData read once a quarter or less
  8. Lever 08,ReshapeUse One Zone-IA for data you can re-createData you can re-create, replicas
  9. Lever 09,ReshapeStore fewer, larger objectsBuckets of many small objects
  10. Lever 10,ReshapeReplicate only what needs a copy, into the right classEvery replication rule
  11. Lever 11,RouteKeep S3 traffic off the NAT gateway with a gateway endpointPrivate subnets that reach S3 through NAT
  12. Lever 12,RouteServe public reads through CloudFront, after doing the sumsPublic content read many times
  13. Lever 13,RouteMake requesters pay for shared datasetsDatasets shared with other accounts
  14. Lever 14,ReviewReview on a cadenceEvery bucket

Lever 01 · See

See where the S3 bill comes from

When it applies
Always, and first: before any rule moves or deletes data.
Watch out
Cost allocation tags show in the bill only once activated in Billing; Storage Lens activity metrics and 15 months of history are paid.
Tools
Cost ExplorerCost allocation tagsS3 Storage LensStorage Class AnalysisS3 Inventory

Split the bill by usage type in Cost Explorer, and by bucket with cost allocation tags. Then look for the storage nobody lists: S3 Storage Lens can "identify cost optimization opportunities", and its free metrics include "Noncurrent version bytes", "Delete marker bytes" and "Incomplete multipart upload bytes" (metrics glossary). The free metrics come with 14 days of history; the advanced metrics add activity metrics, prefixes and 15 months, at $0.20 per million objects a month in Paris. AWS's cost guide for Storage Lens lists what to look for, and each finding has its lever below:

What Storage Lens points to, and the lever for each

Look for (AWS's words) Lever
"Buckets with incomplete multipart uploads older than 7 days" Lever 03: clean up
"Buckets that are accumulating numerous noncurrent versions" Lever 03: clean up
"Buckets that don't have lifecycle rules to abort incomplete multipart uploads" Lever 03: clean up
"Buckets that don't have lifecycle rules to expire noncurrent versions objects" Lever 03: clean up
"Buckets that don't have lifecycle rules to transition objects to a different storage class" Lever 05: move down

Storage Class Analysis watches a set of objects for 30 days or more, at $0.10 per million objects a month, but "only provides recommendations for Standard to Standard IA classes".

Lever 02 · Trim

Expire what nobody needs

When it applies
Logs, backups and records with a retention period.
Watch out
Expiring an object before its class's minimum duration bills the rest of it; in a versioned bucket, expiration only adds a delete marker.
Tools
S3 Lifecycle

The Well-Architected Framework asks you to "define data retention policies on supported resources to handle object deletion per your organizations' requirements"; in S3, that is a lifecycle expiration, and "Amazon S3 deletes expired objects on your behalf". Deletions are free, but an expiration acts differently in a versioned bucket (lifecycle configuration elements):

What a lifecycle expiration does to an object
Expiration
Deletes the object
Deleting it for good
Done: nothing more to add
Unfinished uploads
Not removed: they need their own action
Expiration
Adds a delete marker; the versions stay, billed
Deleting it for good
Add a noncurrent version expiration
Unfinished uploads
Not removed: they need their own action

What differs: in a versioned bucket, the expiration only hides the object until its noncurrent versions expire too.

Watch the minimum durations: "If you create a Lifecycle expiration rule that causes objects that have been in S3 Glacier Flexible Retrieval storage for less than 90 days to expire, you are charged for 90 days", and expired objects "can't be recovered".

Lever 03 · Trim

Clean up old versions, delete markers and unfinished uploads

When it applies
Every versioned bucket, and every bucket that receives multipart uploads.
Watch out
Noncurrent versions are the recovery path: keep them as long as a recovery needs. Lifecycle rules are not replicated.
Tools
S3 LifecycleS3 Storage Lens

One lifecycle rule holds the three actions: NoncurrentVersionExpiration, with a number of days and optionally NewerNoncurrentVersions (between 1 and 100 versions kept), ExpiredObjectDeleteMarker and AbortIncompleteMultipartUpload (lifecycle configuration elements). For unfinished uploads, AWS recommends "7 days as a good starting point" and a rule to delete them.

Keep the noncurrent versions as long as a recovery needs them: they are what versioning was turned on for. With both settings, "both the NoncurrentDays and the NewerNoncurrentVersions values must be exceeded" before a version goes. On a replicated bucket, set the rule on both sides. The versioned bucket above prices a year without the rule.

Lever 04 · Trim

Turn on S3 Bucket Keys for SSE-KMS

When it applies
Buckets encrypted with SSE-KMS that are read or written a lot.
Watch out
Objects already in the bucket need a copy to use the key; not for DSSE-KMS.
Tools
S3 Bucket Keys

Without a Bucket Key, S3 calls AWS KMS for each request on a KMS-encrypted object, at $0.03 per 10,000 requests in Paris (Encryption prices 100 million of them). A bucket-level key cuts that traffic (Reducing the cost of SSE-KMS with Amazon S3 Bucket Keys):

AWS says

Up to 99% lesson AWS KMS request costs, by decreasing the request traffic from Amazon S3 to AWS KMS.

AWS · Reducing the cost of SSE-KMS with Amazon S3 Bucket Keys

Objects already in the bucket keep their own data keys until a CopyObject rewrites them, Bucket Keys do not apply to DSSE-KMS, and AWS notes that "AWS KMS request savings reflect the number of requesters, request patterns, and relative age of the objects requested": the "up to" is AWS's, not a figure computed here.

Lever 05 · Reshape

Move data down the classes as it cools

When it applies
Backups, logs and finished projects, whose access falls with age.
Watch out
Each transition is a billed request, per object; minimum durations, minimum sizes and retrieval fees apply.
Tools
S3 LifecycleStorage Class Analysis

"As you move the objects from one storage class to another, you save on storage costs" (lifecycle), but "consider the ingest or transition cost before moving objects into any storage class" (Amazon S3 pricing). A transition is paid once per object, the saving every month, so object size decides how fast it pays back:

Months of storage saving needed to pay back one transition request, by object size, in Paris (computed)

Object size Into Standard-IA Into Glacier Flexible Retrieval Into Deep Archive
128 KB 7.52 14.94 24.27
512 KB 1.88 3.37 5.66
1 MB 0.94 1.66 2.80
10 MB 0.09 0.16 0.28
64 MB 0.01 0.03 0.04

Computed from the AWS Price List, eu-west-3, offer files published September 11, 2026 and October 14, 2026, fetched October 15, 2026.

Storage alone, from S3 Standard; the archive classes include the 40 KB of metadata per object. The rest of the rules apply too: minimum durations, the 128 KB minimum size, retrieval fees, and restores before reading. Storage Class Analysis shows when S3 Standard data cools. The backup archive above prices a full lifecycle.

Lever 06 · Reshape

Let Intelligent-Tiering move data whose access you cannot predict

When it applies
Data whose access is unknown, changing or unpredictable: data lakes, analytics, new applications.
Watch out
A monitoring fee per object of 128 KB or more; the optional archive tiers need restores.
Tools
S3 Intelligent-TieringS3 Inventory

"S3 Intelligent-Tiering is the recommended storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period". New objects can be written straight into it, by naming INTELLIGENT_TIERING as their storage class (How S3 Intelligent-Tiering works); existing objects move with a lifecycle transition, at $0.01 per 1,000 requests. Turn on the archive tiers only for data that can wait for a restore. S3 Inventory reports the access tier of each object. The data lake above prices it, with the crossing by object size of Is Intelligent-Tiering worth it?.

Lever 07 · Reshape

Choose the archive class by how fast you need the data back

When it applies
Data read about once a quarter, once a year, or less.
Watch out
Glacier Flexible Retrieval and Deep Archive restore before reading, and the restored copy bills at the S3 Standard rate.
Tools
S3 LifecycleS3 Batch Operations

Glacier Instant Retrieval reads in milliseconds; the two other archive classes restore first (Which Glacier class?), and differ on price and on time:

Two archive classes that restore before reading, in Paris
Storage
$0.00405 per GB-month
Minimum duration
90 days
Standard restore
3–5 hours, $0.0105 per GB
Bulk restore
5–12 hours, free
Storage
$0.0018 per GB-month
Minimum duration
180 days
Standard restore
Within 12 hours, $0.021 per GB
Bulk restore
Within 48 hours, $0.005 per GB

What differs: a lower price per GB-month against a longer wait, and a Bulk restore that is no longer free. Restore requests are billed on top, per 1,000.

Restores of "tens of millions of objects or hundreds of terabytes" take longer, and AWS points to S3 Batch Operations to restore many objects (archive retrieval options). In the backup archive, Deep Archive instead of Glacier Flexible Retrieval brings the month to $141.85, for restores within 12 hours instead of 3 to 5.

Lever 08 · Reshape

Use One Zone-IA for data you can re-create

When it applies
Data you can re-create if an Availability Zone fails, such as replicas in another Region.
Watch out
Not resilient to the loss of its Availability Zone; the 30-day and 128 KB minimums of Standard-IA apply.

One Zone-IA keeps data in a single zone, so it is "not resilient to the physical loss of the Availability Zone" (storage classes); AWS recommends it for data you can re-create, and for the replicas of a Cross-Region Replication:

One Zone-IA against Standard-IA

20.0% lessper GB-month in Paris, computed; AWS writes 20% less.

Computed from the AWS Price List · eu-west-3 · Oct 14, 2026

Its minimums and its retrieval fee are Standard-IA's. The copy in Frankfurt prices a One Zone-IA replica against a Glacier Instant Retrieval one: for a copy read only in a recovery, the second costs $117.47 a month less, computed.

Lever 09 · Reshape

Store fewer, larger objects

When it applies
Buckets that hold many small objects.
Watch out
An archived aggregate is restored whole: reading one small file back from Glacier Flexible Retrieval or Deep Archive restores, and bills, the whole object.
Tools
S3 Storage Lens

Every request is billed, and several charges count objects rather than bytes:

S3 charges counted per object, in Paris

ItemList priceUnit
Lifecycle transition into Standard-IA$0.01per 1,000 requests
PUT or transition into Glacier Deep Archive$0.06per 1,000 requests
Intelligent-Tiering monitoringObjects of 128 KB or more$0.0025per 1,000 objects a month
S3 Batch OperationsObjects processed$1.00per million objects

USD, before tax. AWS Price List, eu-west-3, offer files published September 11, 2026 and October 14, 2026, fetched October 15, 2026.

Each object archived in Glacier Flexible Retrieval or Deep Archive also carries 40 KB of metadata, 8 KB of it at the S3 Standard rate. AWS's advice for archives holds for the rest: "consider aggregating many small objects into a smaller number of large objects to reduce overhead costs". Storage Lens shows each bucket's object count and average object size. Below 16.1 KB, an object costs more archived than kept in S3 Standard, computed; the transition table above shows how size sets the payback.

Lever 10 · Reshape

Replicate only what needs a copy, into the right class

When it applies
Every replication rule.
Watch out
Versioning on both buckets, a lifecycle rule on each; a replica class's retrieval fee comes due in a recovery.
Tools
S3 ReplicationS3 Batch Replication

A replication rule can filter by prefix or tag and choose the replica's class (replication configuration); turn on S3 Replication Time Control only when the recovery point needs objects copied within 15 minutes. Set a lifecycle rule on the destination too, no shorter than the replica class's minimum duration, and count the retrieval fee a recovery would pay. The copy in Frankfurt prices three replica classes.

Lever 11 · Route

Keep S3 traffic off the NAT gateway with a gateway endpoint

When it applies
Instances or containers in private subnets that reach S3 in the same Region through a NAT gateway.
Watch out
A gateway endpoint serves its own Region's VPC only; on-premises networks, peered VPCs in other Regions and transit gateways need an interface endpoint, which is billed.
Tools
Gateway endpointsEndpoint policies

"If most traffic through your NAT gateway is to AWS services that support interface endpoints or gateway endpoints, consider creating an interface endpoint or gateway endpoint for these services" (NAT gateway pricing); the Well-Architected Framework says the same of VPC endpoints. For S3 in the same Region, a gateway endpoint does it for nothing:

Instances in a private subnet reading S3 in the same Region
Data processing
$0.05 per GB
The gateway
$0.05 per hour
Reaches
S3 and the internet
Data processing
No additional charge
The gateway
No additional charge
Reaches
S3 in its own Region, from its own VPC

What differs: a price per GB on S3 traffic. The NAT gateway's hourly charge stays if other traffic still needs it.

At 10 TB a month from S3 to the instances, the NAT gateway's data processing alone comes to:

NAT gateway data processing, Paris

$512.00 a monthfor 10 TB (10,240 GB) a month of S3 traffic, computed; through a gateway endpoint, no additional charge.

Computed from the AWS Price List · eu-west-3 · Oct 12, 2026

A gateway endpoint does not serve on-premises networks, peered VPCs in other Regions or a transit gateway; those need an interface endpoint, billed per hour and per GB. Endpoint policies can limit the buckets it reaches.

Lever 12 · Route

Serve public reads through CloudFront, after doing the sums

When it applies
Public content that users on the internet read many times.
Watch out
CloudFront's requests cost more than S3's GET requests: small objects can cost more through it.
Tools
Amazon CloudFront

Data from S3 to CloudFront is not billed, and AWS's case for a cache is that "applications that use caching also send fewer direct requests to Amazon S3, which can help reduce request costs" (performance design patterns). The list prices cut both ways: CloudFront's data out from Europe costs 5.6% less per GB than S3's, but an HTTPS request through CloudFront costs 2.86 times an S3 GET, computed. With 1 MB objects and 90% of requests served from the cache:

10 TB a month of 1 MB objects to internet users, in Europe

Served from S3 Illustrative

LineA month
Network
Data out to the internet10,240 GB × $0.09 /GB$921.60
Other
GET requests10,485,760 requests × $0.00042 /1K req$4.40
A month, computed$926.00

Served through CloudFront Illustrative

LineA month
Network$870.40
CloudFront data out, Europe10,240 GB × $0.085 /GB$870.40
S3 to CloudFront1,024 GB × $0.00 /GB$0.00
Other$13.02
CloudFront HTTPS requests10,485,760 requests × $0.012 /10K req$12.58
S3 GET requests, cache misses1,048,576 requests × $0.00042 /1K req$0.44
A month, computed$883.42

Through CloudFront costs $42.58 a month less than straight from S3 (4.6% less), computed.

USD before tax, 730 h a month. AWS Price List, eu-west-3 and Europe edge locations, offer files published September 16, 2026, October 3, 2026 and October 14, 2026, fetched October 15, 2026. Illustrative configuration, not a client case.

With 100 KB objects, the same 10 TB cost $966.70 straight from S3 and $1,003.76 through CloudFront: at a 90% hit ratio, CloudFront costs less from about 172 KB per object, computed. The hit ratio is an assumption, the CloudFront free tier (1 TB and 10 million requests a month, one per organization) is not deducted, and CloudFront's flat-rate plans, a monthly price per distribution, are left out of these sums.

Lever 13 · Route

Make requesters pay for shared datasets

When it applies
Datasets you share without wanting to pay for others' requests and downloads.
Watch out
No anonymous access; requesters accept the charge in each request.
Tools
Requester Pays

"With Requester Pays buckets, the requester instead of the bucket owner pays the cost of the request and the data download from the bucket. The bucket owner always pays the cost of storing data". It suits datasets shared with other accounts, such as reference or geospatial data. A Requester Pays bucket allows no anonymous access, and each requester accepts the charge in its requests.

Lever 14 · Review

Review on a cadence

When it applies
Every workload's buckets, more often for the larger ones.
Watch out
A rule added to a bucket acts on its existing objects at once, transition requests included.
Tools
S3 Storage Lens

"The review effort should reflect potential benefit", in AWS's words (COST10-BP01):

How often AWS suggests reviewing a workload, its buckets included

Workload Reviewed
Core workloads, or workloads over ten percent of the bill Quarterly or every six months
Workloads below ten percent of the bill Annually

Storage Lens keeps 14 days of history in its free metrics, 15 months in the advanced ones. A review that adds a lifecycle rule acts on the whole bucket at once, so price the first month's transitions before turning it on.

In short: See the bill per bucket, expire and clean what nothing needs, then move what stays to the class its size and reads justify: deleting is free past the minimum durations, but each object a rule moves is a billed transition request.

FAQ

How is S3 billed?

By the GB-month of storage, averaged over the month, at each object's class rate, plus requests, retrievals, data transfer, management features and replication; the bucket owner pays, unless the bucket is a Requester Pays bucket (What an S3 bill is made of).

Does S3 versioning cost money?

Every version is a whole object, billed at its class's rate, and a delete in a versioned bucket keeps the versions under a delete marker (Versioning, delete markers and unfinished uploads).

Is data transfer between S3 and EC2 free?

Within the same Region, yes; across Regions, it is charged. From a private subnet, a gateway endpoint avoids the NAT gateway's charge per GB (Data transfer).

Does CloudFront reduce S3 costs?

Not always: data from S3 to CloudFront is free and CloudFront's data out costs less per GB, but its requests cost more than S3's, so small objects can cost more through it (Serve public reads through CloudFront, after doing the sums).

What happens if I delete, overwrite or move an object before its minimum storage duration?

You are billed for the days left to the minimum: the minimum is 30 days for Standard-IA and One Zone-IA, 90 for Glacier Instant and Flexible Retrieval, 180 for Deep Archive; S3 Standard and Intelligent-Tiering have none (Minimum durations, minimum sizes and archive metadata).

Sources

  1. What is Amazon S3? AWS, documentation, accessed October 15, 2026.
  2. Understanding and managing Amazon S3 storage classes AWS, documentation, accessed October 15, 2026.
  3. Data protection in Amazon S3 AWS, documentation, accessed October 15, 2026.
  4. Best practices design patterns: optimizing Amazon S3 performance AWS, documentation, accessed October 15, 2026.
  5. Performance design patterns for Amazon S3 AWS, documentation, accessed October 15, 2026.
  6. Organizing objects using prefixes AWS, documentation, accessed October 15, 2026.
  7. Organizing objects in the Amazon S3 console by using folders AWS, documentation, accessed October 15, 2026.
  8. Amazon S3 multipart upload limits AWS, documentation, accessed October 15, 2026.
  9. Amazon S3 FAQs AWS, product page, accessed October 15, 2026.
  10. Billing for Amazon S3 error responses AWS, documentation, accessed October 15, 2026.
  11. Locking objects with Object Lock AWS, documentation, accessed October 15, 2026.
  12. Transitioning objects using Amazon S3 Lifecycle AWS, documentation, accessed October 15, 2026.
  13. Understanding archive retrieval options AWS, documentation, accessed October 15, 2026.
  14. Managing storage costs with Amazon S3 Intelligent-Tiering AWS, documentation, accessed October 15, 2026.
  15. Managing the lifecycle of objects AWS, documentation, accessed October 15, 2026.
  16. Using Requester Pays general purpose buckets for storage transfers and usage AWS, documentation, accessed October 15, 2026.
  17. Choosing an AWS storage service AWS, documentation, accessed October 15, 2026.
  18. What is Amazon Elastic Block Store? AWS, documentation, accessed October 15, 2026.
  19. What is Amazon Elastic File System? AWS, documentation, accessed October 15, 2026.
  20. Amazon EFS FAQs AWS, product page, accessed October 15, 2026.
  21. Gateway endpoints for Amazon S3 AWS, documentation, accessed October 15, 2026.
  22. Amazon S3 pricing AWS, pricing page, accessed October 15, 2026.
  23. Billing and usage reporting for Amazon S3 AWS, documentation, accessed October 15, 2026.
  24. Understanding your AWS billing and usage reports for Amazon S3 AWS, documentation, accessed October 15, 2026.
  25. How S3 Intelligent-Tiering works AWS, documentation, accessed October 15, 2026.
  26. Pricing for NAT gateways AWS, documentation, accessed October 15, 2026.
  27. Retaining multiple versions of objects with S3 Versioning AWS, documentation, accessed October 15, 2026.
  28. How S3 Versioning works AWS, documentation, accessed October 15, 2026.
  29. Working with delete markers AWS, documentation, accessed October 15, 2026.
  30. Uploading and copying objects using multipart upload in Amazon S3 AWS, documentation, accessed October 15, 2026.
  31. Replicating objects within and across Regions AWS, documentation, accessed October 15, 2026.
  32. What does Amazon S3 replicate? AWS, documentation, accessed October 15, 2026.
  33. Requirements and considerations for replication AWS, documentation, accessed October 15, 2026.
  34. Meeting compliance requirements with S3 Replication Time Control AWS, documentation, accessed October 15, 2026.
  35. Replication configuration file elements AWS, documentation, accessed October 15, 2026.
  36. Replicating existing objects with Batch Replication AWS, documentation, accessed October 15, 2026.
  37. Reducing the cost of SSE-KMS with Amazon S3 Bucket Keys AWS, documentation, accessed October 15, 2026.
  38. Filtering the data that you want to view (Cost Explorer) AWS, documentation, accessed October 15, 2026.
  39. Using cost allocation S3 bucket tags AWS, documentation, accessed October 15, 2026.
  40. Regional and Zonal endpoints for directory buckets in an Availability Zone AWS, documentation, accessed October 15, 2026.
  41. Working with Amazon S3 Files AWS, documentation, accessed October 15, 2026.
  42. Querying data in place with Amazon S3 Select AWS, documentation, accessed October 15, 2026.
  43. Examples of S3 Lifecycle configurations AWS, documentation, accessed October 15, 2026.
  44. Lifecycle configuration elements AWS, documentation, accessed October 15, 2026.
  45. Expiring objects AWS, documentation, accessed October 15, 2026.
  46. Configuring a bucket lifecycle configuration to delete incomplete multipart uploads AWS, documentation, accessed October 15, 2026.
  47. Monitoring your storage activity and usage with Amazon S3 Storage Lens AWS, documentation, accessed October 15, 2026.
  48. Amazon S3 Storage Lens metrics glossary AWS, documentation, accessed October 15, 2026.
  49. Using Amazon S3 Storage Lens to optimize your storage costs AWS, documentation, accessed October 15, 2026.
  50. Amazon S3 analytics – Storage Class Analysis AWS, documentation, accessed October 15, 2026.
  51. COST04-BP05 Enforce data retention policies AWS, whitepaper, accessed October 15, 2026.
  52. COST08-BP02 Select components to optimize data transfer cost AWS, whitepaper, accessed October 15, 2026.
  53. COST10-BP01 Develop a workload review process AWS, whitepaper, accessed October 15, 2026.
  54. Amazon CloudFront FAQs AWS, product page, accessed October 15, 2026.
  55. Amazon CloudFront pricing AWS, pricing page, accessed October 15, 2026.
  56. AWS Price List: Amazon S3, eu-west-3 (offer file of October 14, 2026) AWS, price list, accessed October 15, 2026.
  57. AWS Price List: Amazon S3, eu-central-1 (offer file of October 14, 2026) AWS, price list, accessed October 15, 2026.
  58. AWS Price List: Amazon S3 Glacier Deep Archive, eu-west-3 (offer file of September 11, 2026) AWS, price list, accessed October 15, 2026.
  59. AWS Price List: AWS Data Transfer, eu-west-3 (offer file of September 16, 2026) AWS, price list, accessed October 15, 2026.
  60. AWS Price List: Amazon CloudFront, Europe edge locations (offer file of October 3, 2026) AWS, price list, accessed October 15, 2026.
  61. AWS Price List: Amazon EC2, eu-west-3 (offer file of October 12, 2026) AWS, price list, accessed October 15, 2026.
  62. AWS Price List: Amazon EFS, eu-west-3 (offer file of September 11, 2026) AWS, price list, accessed October 15, 2026.
  63. AWS Price List: AWS Key Management Service, eu-west-3 (offer file of September 11, 2026) AWS, price list, accessed October 15, 2026.
  64. AWS Price List: Amazon VPC, eu-west-3 (offer file of September 17, 2026) AWS, price list, accessed October 15, 2026.

Quotations from AWS documentation are used under CC BY-SA 4.0.

Amazon Web Services, AWS and the names of AWS services are trademarks of Amazon.com, Inc. or its affiliates. Diagrams use the AWS Architecture Icons, unaltered.

More articles

AWS · AI

Amazon Bedrock pricing: how to cut the bill

Read
AWS · Cost management

AWS Cost Explorer: reading your bill

Read
AWS · Databases

Amazon DynamoDB pricing and how to cut it

Read