📋 Post Updated: June 2026
This post has been updated to reflect the current AWS S3 storage classes (8 classes as of 2025), the deprecation of standalone Amazon Glacier vaults, S3 Glacier storage class renaming, removal of S3 Reduced Redundancy Storage (RRS) recommendation, and new S3 capabilities including S3 Tables, S3 Vectors, and S3 Express One Zone.
Amazon S3
- highly-scalable, reliable, and low-latency data storage infrastructure at very low costs.
- provides a simple web services interface that can be used to store and retrieve any amount of data, at any time, from within Amazon EC2 or from anywhere on the web.
- allows you to write, read, and delete objects containing from 1 byte to 5 terabytes of data each.
- number of objects you can store in an Amazon S3 bucket is virtually unlimited.
- highly secure, supporting encryption at rest and in transit, and providing multiple mechanisms to provide fine-grained control of access to Amazon S3 resources.
- as of January 5, 2023, all new objects are automatically encrypted with SSE-S3 (server-side encryption with S3 managed keys) at no additional cost.
- highly scalable, allowing concurrent read or write access to Amazon S3 data by many separate clients or application threads.
- provides data lifecycle management capabilities, allowing users to define rules to automatically transition data between storage classes (including S3 Glacier classes) or delete data at end of life.
- stores data redundantly across a minimum of 3 Availability Zones by default (except One Zone classes), providing built-in resilience against widespread disaster.
S3 Storage Classes
Amazon S3 offers 8 storage classes designed for different access patterns and cost requirements:
- S3 Standard – General-purpose storage for frequently accessed data. High throughput and low latency.
- S3 Intelligent-Tiering – Automatic cost optimization by moving data between access tiers (Frequent, Infrequent, Archive Instant Access) based on changing access patterns, with no retrieval charges or operational overhead.
- S3 Standard-Infrequent Access (S3 Standard-IA) – For data accessed less frequently but requiring rapid access when needed. Lower storage cost with per-GB retrieval charge.
- S3 One Zone-Infrequent Access (S3 One Zone-IA) – Lower-cost option for infrequently accessed data that does not require multi-AZ resilience. Replaces the legacy Reduced Redundancy Storage (RRS).
- S3 Express One Zone – Single-digit millisecond data access with up to 10x faster performance and 80% lower request costs than S3 Standard. Data stored in a single Availability Zone. Ideal for latency-sensitive applications like ML training and analytics.
- S3 Glacier Instant Retrieval – Lowest-cost storage for long-lived data rarely accessed (once per quarter) that requires millisecond retrieval. 68% lower cost than S3 Standard-IA.
- S3 Glacier Flexible Retrieval (formerly S3 Glacier) – For archive data accessed once or twice per year. Retrieval options: Expedited (1-5 minutes), Standard (3-5 hours), or free Bulk (5-12 hours). Minimum 90-day storage.
- S3 Glacier Deep Archive – Lowest-cost storage class for long-term archive and digital preservation. Retrieval: Standard (within 12 hours) or Bulk (within 48 hours). Minimum 180-day storage.
Ideal Use Cases
- Storage & Distribution of static web content and media
- frequently used to host static websites and provides a highly-available and highly-scalable solution for websites with only static content, including HTML files, images, videos, and client-side scripts such as JavaScript
- works well for fast growing websites hosting data intensive, user-generated content, such as video and photo sharing sites as no storage provisioning is required
- content can either be directly served from Amazon S3 since each object in Amazon S3 has a unique HTTP URL address
- can also act as an Origin store for the Content Delivery Network (CDN) such as Amazon CloudFront
- it works particularly well for hosting web content with extremely spiky bandwidth demands because of S3’s elasticity
- Data Store for Large Objects
- can be paired with RDS or NoSQL database and used to store large objects for e.g. file or objects, while the associated metadata for e.g. name, tags, comments etc. can be stored in RDS or NoSQL database where it can be indexed and queried providing faster access to relevant data
- Data store for computation and large-scale analytics
- commonly used as a data store for computation and large-scale analytics, such as analyzing financial transactions, clickstream analytics, and media transcoding.
- data can be accessed from multiple computing nodes concurrently without being constrained by a single connection because of its horizontal scalability
- S3 Tables (launched Dec 2024) provides storage optimized for tabular data in Apache Iceberg format, with up to 3x faster query throughput for analytics workloads
- Backup and Archival of critical data
- used as a highly durable, scalable, and secure solution for backup and archival of critical data, and to provide disaster recovery solutions for business continuity.
- stores objects redundantly on multiple devices across multiple facilities, it provides the highly-durable storage infrastructure needed for these scenarios.
- it’s versioning capability is available to protect critical data from inadvertent deletion
- AI and Machine Learning
- S3 Vectors (GA Dec 2025) provides native vector storage with subsecond query performance for AI embeddings, reducing costs up to 90% compared to dedicated vector databases
- integrated with Amazon Bedrock Knowledge Bases for retrieval augmented generation (RAG) workloads
- Data Lakes
- S3 serves as the foundation for building data lakes, with native integration with analytics services like Amazon Athena, Amazon EMR, and Amazon Redshift Spectrum
- Mountpoint for Amazon S3 (GA Aug 2023) allows mounting S3 buckets as local file systems on Linux compute instances for high-throughput workloads
Anti-Patterns
Amazon S3 has following Anti-Patterns where it is not an optimal solution
- Dynamic website hosting
- While Amazon S3 is ideal for hosting static websites, dynamic websites requiring server side interaction, scripting or database interaction cannot be hosted and should rather be hosted on Amazon EC2 or AWS Lambda with API Gateway
- Rapidly Changing Data
- Data that needs to updated frequently might be better served by a storage solution with lower read/write latencies, such as Amazon EBS volumes, RDS, or DynamoDB.
- File System Requirements
- Amazon S3 uses a flat namespace and isn’t meant to serve as a standalone, POSIX-compliant file system. However, by using delimiters (commonly the ‘/’ character) you can emulate hierarchical folder structures within a bucket.
- NOTE: Mountpoint for Amazon S3 provides file system access for read-heavy workloads, but is not a full POSIX file system. For full POSIX compliance, consider Amazon EFS or Amazon FSx.
Performance
- Access to Amazon S3 from within Amazon EC2 in the same region is fast.
- Amazon S3 is designed so that server-side latencies are insignificant relative to Internet latencies.
- Amazon S3 automatically scales to high request rates — your application can achieve at least 3,500 PUT/COPY/POST/DELETE and 5,500 GET/HEAD requests per second per partitioned prefix in a bucket. There are no limits to the number of prefixes in a bucket.
- If Amazon S3 is accessed using multiple threads, multiple applications, or multiple clients concurrently, total Amazon S3 aggregate throughput will typically scale to rates that far exceed what any single server can generate or consume.
- S3 Express One Zone provides single-digit millisecond latency and up to 10x faster performance than S3 Standard for latency-sensitive workloads.
- S3 Transfer Acceleration enables fast, easy, and secure transfers of files over long distances between your client and an S3 bucket using CloudFront’s globally distributed edge locations.
Durability & Availability
- Amazon S3 storage provides the highest level of data durability and availability, by automatically and synchronously storing your data across a minimum of three Availability Zones within the selected geographical region
- Amazon S3 is designed to sustain the concurrent loss of data in two facilities, making it very well-suited to serve as the primary data storage for mission-critical data.
- Amazon S3 is designed for 99.999999999% (11 nines) durability per object and 99.99% availability over a one-year period.
- Amazon S3 data can be protected from unintended deletions or overwrites using Versioning.
- Versioning can be enabled with MFA (Multi Factor Authentication) Delete on the bucket, which would require two forms of authentication to delete an object
- S3 Object Lock provides write-once-read-many (WORM) protection to prevent objects from being deleted or overwritten for a fixed period or indefinitely (Governance or Compliance mode).
For Non Critical and Reproducible data, S3 Reduced Redundancy Storage (RRS) was previously available but is no longer recommended.Use S3 One Zone-IA instead for non-critical, reproducible data at lower cost with 99.5% availability.
Cost Model
- With Amazon S3, you pay only for what you use and there is no minimum fee.
- Amazon S3 pricing components include: storage (per GB per month, varies by storage class), data transfer out (per GB per month), requests and data retrievals (per n thousand requests per month), and optional management/analytics features.
- S3 Intelligent-Tiering has a small monthly monitoring and automation charge per object but no retrieval fees, making it ideal for data with unknown or changing access patterns.
Scalability & Elasticity
- Amazon S3 has been designed to offer a very high level of scalability and elasticity automatically
- Amazon S3 supports a virtually unlimited number of files in any bucket
- Amazon S3 bucket can store a virtually unlimited number of bytes
- Amazon S3 allows you to store any number of objects (files) in a single bucket, and Amazon S3 will automatically manage scaling and distributing redundant copies of your information across multiple AZs in the same region, all using Amazon’s high-performance infrastructure.
Security & Access Management
- Default Encryption: Since January 5, 2023, all new objects are automatically encrypted with SSE-S3. Options include SSE-S3, SSE-KMS (AWS KMS keys), SSE-C (customer-provided keys), and client-side encryption.
- SSE-C Disabled by Default: As of April 2026, SSE-C is disabled by default on all new S3 general purpose buckets for improved security.
- S3 Access Points: Simplify managing data access at scale by creating named access points with distinct permissions and network controls for different applications or teams.
- S3 Block Public Access: Bucket-level and account-level settings to prevent public access.
- Bucket Policies & ACLs: Fine-grained access control using IAM policies, bucket policies, and (legacy) Access Control Lists.
- VPC Endpoints: Access S3 privately from within a VPC without traversing the public internet.
Interfaces
- Amazon S3 provides standards-based REST APIs for both management and data operations.
- NOTE – SOAP support over HTTP was deprecated. New Amazon S3 features are not supported for SOAP. Use the REST API or the AWS SDKs.
- Amazon S3 provides SDKs in multiple languages (Java, Python, .NET, Go, JavaScript/TypeScript, PHP, Ruby, and more) that wrap the underlying APIs
- AWS CLI provides high-level S3 file commands (ls, cp, mv, sync, etc.) with support for parallel transfers and recursive operations.
- AWS Management Console provides a web-based interface for managing S3 buckets and objects
- Mountpoint for Amazon S3 – open-source file client that mounts S3 buckets as local file systems on Linux, optimized for high-throughput read-heavy workloads (GA August 2023).
- All interfaces provide the ability to store Amazon S3 objects in uniquely-named buckets, with each object identified by a unique Object key within that bucket.
S3 Data Query & Analytics
- Amazon Athena – Serverless query service to analyze data in S3 using standard SQL without loading data into a database.
- S3 Tables (Dec 2024) – Fully managed Apache Iceberg tables optimized for analytics, with up to 3x faster query throughput. Supports Intelligent-Tiering and replication.
- S3 Vectors (GA Dec 2025) – Native vector storage and query for AI embeddings with subsecond performance, up to 2 billion vectors per index.
- S3 Storage Lens – Cloud storage analytics providing organization-wide visibility into object storage usage, activity, and cost optimization recommendations.
S3 Select– Closed to new customers as of July 25, 2024. Use Amazon Athena, S3 Object Lambda, or client-side filtering as alternatives.
Amazon S3 Glacier
⚠️ Standalone Amazon Glacier Vaults – No Longer Available to New Customers
As of December 15, 2025, the original standalone vault-based Amazon Glacier service stopped accepting new customers. Existing customers can continue using it, but no migration is required.
Recommendation: Use the S3 Glacier storage classes (Instant Retrieval, Flexible Retrieval, Deep Archive) which are fully integrated with Amazon S3 and provide the same low-cost archival storage with better management capabilities.
AWS provides a Data Transfer from Amazon S3 Glacier Vaults to Amazon S3 guidance for migrating existing vault data to S3 buckets.
Amazon S3 Glacier storage classes provide extremely low-cost storage for data archival and long-term backup:
- S3 Glacier Instant Retrieval – Millisecond access for archive data accessed once per quarter. Up to 68% lower cost than S3 Standard-IA. Minimum 90-day storage.
- S3 Glacier Flexible Retrieval (formerly S3 Glacier) – For archive data accessed once or twice per year. Retrieval options:
- Expedited: 1-5 minutes
- Standard: 3-5 hours
- Bulk: 5-12 hours (free)
Minimum 90-day storage duration.
- S3 Glacier Deep Archive – Lowest-cost storage for data retained for 7-10+ years. Retrieval options:
- Standard: Within 12 hours
- Bulk: Within 48 hours
Minimum 180-day storage duration.
Ideal Usage Patterns
- Amazon S3 Glacier classes are ideally suited for long-term archival storage for infrequently accessed data including:
- Offsite enterprise information archiving
- Media asset preservation
- Research and scientific data retention
- Digital preservation and magnetic tape replacement
- Regulatory and compliance archives
- Healthcare records, financial records retention
- S3 Glacier Instant Retrieval is ideal for data like medical images, news media assets, or user-generated content archives that need millisecond access but are rarely retrieved.
Anti-Patterns
Amazon S3 Glacier storage classes have following Anti-Patterns where they are not an optimal solution
- Rapidly changing data
- Data that must be updated very frequently should use a storage solution with lower read/write latencies such as Amazon EBS, DynamoDB, or S3 Standard
- Real time access (Flexible Retrieval and Deep Archive)
- Data stored in Glacier Flexible Retrieval or Deep Archive cannot be accessed in real time and requires a restore request with retrieval times from minutes to hours. If immediate access is needed, use S3 Standard, S3 Glacier Instant Retrieval, or S3 Intelligent-Tiering.
- Short-lived data
- Glacier classes have minimum storage duration charges (90 days for Instant/Flexible, 180 days for Deep Archive). Data deleted before the minimum is charged for the remainder.
Performance
- S3 Glacier Instant Retrieval: Millisecond access time, same performance as S3 Standard-IA.
- S3 Glacier Flexible Retrieval: Expedited (1-5 min), Standard (3-5 hours), Bulk (5-12 hours, free).
- S3 Glacier Deep Archive: Standard (within 12 hours), Bulk (within 48 hours).
Durability and Availability
- All S3 Glacier storage classes redundantly store data across a minimum of three Availability Zones
- Designed to provide 99.999999999% (11 nines) durability per object
- Data is synchronously stored across multiple facilities before returning SUCCESS on upload.
- Regular, systematic data integrity checks are performed and the system is built to be automatically self-healing.
Cost Model
- S3 Glacier pricing components include: storage (per GB per month), data transfer out (per GB per month), requests (per thousand requests per month), and data retrievals (per GB retrieved).
- S3 Glacier Flexible Retrieval Bulk retrievals are free.
- Early deletion charges apply if objects are deleted before the minimum storage duration (90 days for Instant/Flexible, 180 days for Deep Archive).
- S3 Glacier Deep Archive offers storage starting at approximately $0.00099 per GB per month (lowest cost in the cloud).
Scalability & Elasticity
- Individual objects can be up to 5 TB in size.
- There is no limit to the total amount of data stored — Amazon S3 Glacier scales automatically from gigabytes to petabytes.
Interfaces & Lifecycle Integration
- S3 Glacier storage classes are fully managed through the Amazon S3 APIs and console — objects are transitioned to Glacier classes via S3 Lifecycle policies or direct PUT with storage class specification.
- S3 Lifecycle policies can automatically transition objects from S3 Standard → S3 Standard-IA → S3 Glacier Instant Retrieval → S3 Glacier Flexible Retrieval → S3 Glacier Deep Archive based on age.
- Restoring objects from Glacier Flexible Retrieval or Deep Archive creates a temporary copy in S3 Standard for a specified retention period; the archived object remains in Glacier.
- S3 Batch Operations can restore archived objects at scale across millions of objects.
- Objects in S3 Glacier classes are managed through S3 APIs — they appear in S3 bucket listings and can be managed with standard S3 tools.
- For data migration into AWS at scale, use the AWS Snow Family (Snowball Edge, Snowcone) for physical data transport.
AWS Import/Export(legacy disk-based service) has been replaced by the Snow Family.
AWS Certification Exam Practice Questions
- Questions are collected from Internet and the answers are marked as per my knowledge and understanding (which might differ with yours).
- AWS services are updated everyday and both the answers and questions might be outdated soon, so research accordingly.
- AWS exam questions are not updated to keep up the pace with AWS updates, so even if the underlying feature has changed the question might not be updated
- Open to further feedback, discussion and correction.
- You want to pass queue messages that are 1GB each. How should you achieve this?
- Use Kinesis as a buffer stream for message bodies. Store the checkpoint id for the placement in the Kinesis Stream in SQS.
- Use the Amazon SQS Extended Client Library for Java and Amazon S3 as a storage mechanism for message bodies. (Amazon SQS messages with Amazon S3 can be useful for storing and retrieving messages with a message size of up to 2 GB. To manage Amazon SQS messages with Amazon S3, use the Amazon SQS Extended Client Library for Java. Refer link)
- Use SQS’s support for message partitioning and multi-part uploads on Amazon S3.
- Use AWS EFS as a shared pool storage medium. Store filesystem pointers to the files on disk in the SQS message bodies.
- Company ABCD has recently launched an online commerce site for bicycles on AWS. They have a “Product” DynamoDB table that stores details for each bicycle, such as, manufacturer, color, price, quantity and size to display in the online store. Due to customer demand, they want to include an image for each bicycle along with the existing details. Which approach below provides the least impact to provisioned throughput on the “Product” table?
- Serialize the image and store it in multiple DynamoDB tables
- Create an “Images” DynamoDB table to store the Image with a foreign key constraint to the “Product” table
- Add an image data type to the “Product” table to store the images in binary format
- Store the images in Amazon S3 and add an S3 URL pointer to the “Product” table item for each image
- A company has 500 TB of archival data that must be retained for 10 years for regulatory compliance. The data is rarely accessed but must be retrievable within 12 hours when needed. Which S3 storage class is the MOST cost-effective?
- S3 Standard-IA
- S3 Glacier Instant Retrieval
- S3 Glacier Flexible Retrieval
- S3 Glacier Deep Archive (For data retained 7-10+ years with retrieval within 12 hours, Deep Archive provides the lowest cost at approximately $0.00099/GB/month with Standard retrieval within 12 hours.)
- A media company stores user-uploaded photos that are frequently accessed for the first 30 days, occasionally accessed for the next 90 days, and rarely accessed after that. They want to minimize storage costs without operational overhead. Which solution is MOST appropriate?
- Store in S3 Standard and create lifecycle rules to transition to S3 Standard-IA after 30 days and S3 Glacier Flexible Retrieval after 120 days
- Store in S3 Intelligent-Tiering which automatically moves objects between Frequent, Infrequent, and Archive Instant Access tiers based on access patterns (S3 Intelligent-Tiering eliminates operational overhead by automatically optimizing costs based on changing access patterns with no retrieval charges.)
- Store in S3 One Zone-IA with lifecycle rules
- Store in S3 Standard and manually move objects between storage classes
- An organization needs to query CSV data stored in S3 without provisioning any infrastructure. The data is several terabytes and they need to run ad-hoc SQL queries. Which AWS service should they use?
- Amazon RDS
- Amazon Redshift
- Amazon Athena (Amazon Athena is a serverless query service that can run SQL queries directly against data in S3 without loading it into a database. It’s ideal for ad-hoc queries on S3 data.)
- S3 Select
- A healthcare company needs to store patient records in S3 that cannot be deleted or modified for 7 years due to compliance regulations. Which S3 feature should they use?
- S3 Versioning with MFA Delete
- S3 Bucket Policy denying delete operations
- S3 Object Lock in Compliance mode with a 7-year retention period (S3 Object Lock in Compliance mode provides WORM protection that cannot be overridden by any user, including the root account, ensuring objects cannot be deleted or overwritten for the retention period.)
- S3 Glacier Vault Lock
- A machine learning team needs to store and query billions of vector embeddings from their AI models with subsecond performance. Which AWS service is purpose-built for this use case?
- Amazon OpenSearch Service
- Amazon DynamoDB
- Amazon S3 with Athena
- Amazon S3 Vectors (S3 Vectors provides native vector storage and query capabilities with subsecond performance, supporting up to 2 billion vectors per index, purpose-built for AI embedding workloads at S3’s low cost.)
S3 supports 0 byte files. Thanks for the great series of blog posts, super useful!
A single glacier archive is limited to a maximum size of 40 terabytes.
https://aws.amazon.com/glacier/faqs/
Thanks a ton for putting together such phenomenal series of blogs!
Thanks updated the same … the limit literally changes every day 🙂
Dear Jayendrapatil,
Sorry for bother you,
Can you help answering below question ?
I confused between B & D options.
Thanks you.
A customer wants to leverage Amazon Simple Storage Service (S3) and Amazon Glacier as part of their
backup and archive infrastructure. The customer plans to use third-party software to support this integration.
Which approach will limit the access of the third party software to only the Amazon S3 bucket named
“company-backup”?
A.
A custom bucket policy limited to the Amazon S3 API in thee Amazon Glacier archive “company-backup”
B.
A custom bucket policy limited to the Amazon S3 API in “company-backup”
C.
A custom IAM user policy limited to the Amazon S3 API for the Amazon Glacier archive “company-backup”
D.
A custom IAM user policy limited to the Amazon S3 API in “company-backup”
Correct answer is D as the IAM policy can be granted to S3 and proper lifecycle rules configured to archive the data to Glacier
Thanks you so much.
Hi,
Why Option B is not correct. By configuring policy at bucket level, it can be granted to user/role.
Thanks a lot for your useful blogs
just to mention that it’s possible now to query directly from S3 using Amazon Athena service.
Thanks Saadelden, let me check further and I will update the blog accordingly.
Hi Jayendra,
Great post and very detailed one. I just have a question, when we use lifecycle management in S3 and choose to archive it to Glacier, where exactly that data is stored. I mean which vault does it use and how and where can we see that information.
Hi Manohar, it is moved to Glacier storage while S3 still maintains the index entry.
You can refer to an old blog post for S3 -> Glacier
Sir,
Could you please validate the following sentence about S3 written in this same page
“allows you to write, read, and delete objects containing from 1 byte to 5 terabytes of data each.”
Here I would like to pull your attention ” 1 byte”.
There is confusion for 0 byte and 1 byte from the AWS documentation. However, AWS S3 does allow 0 byte file.
This is irrelevant from the exam perspective as this would never be tested for sure.
Please update the part that S3 does not have query capability which it now has. circa 2017
Thanks Subhajit, will update the same …
Mistake from your notes: A single archive is limited to 40 TBs? It should be 4TB max I believe
Please ignore.
Hello Jayendra
I have 2 questions:
1. How can we check which user in my account has created a particular bucket or can say, any bucket is created by which user ?
2. When we go in a bucket permissions – ACL, there is a permissions “ACCESS FOR YOUR AWS ACCOUNT”
giving permissions read or read/write, which users these permissions impact. Like if these permissions are for my account users, and I m giving read/write for whole account, a user with readonly permission would be able to upload objects in this bucket or not ?
Hello Jayendra, Great Blog! Please update that SOAP Support over HTTP has been deprecated and that folks should use REST APIs moving forward. Heres the link: https://docs.aws.amazon.com/AmazonS3/latest/API/APISoap.html
Thanks Divya for the update, have added it to the post.
Hi Jayendra,
Thankyou for all the blogs that you’ve shared. It truely is of great help to everyone preparing for the AWS Certification exams. Just wanted to ask you about this question posted above. Why is the correct answer mentioned as D and not B?
Even bucket policy can be used to restrict access to that particular bucket.
Bucket policy needs a (existing) principal, user policy needs a (existing) user/group/role
“allows you to write, read, and delete objects containing from 1 byte to 5 terabytes of data each.” I think S3 minimum bytes is 0. Please correct.. Anyways a great blog maintained by you.. Thanks for your effort and making our life easier..
Thats right Sajal, you can upload a zero bytes file to S3 as well. However, there was a discrepancy in the AWS documentation.
Jayendra,
Would you say that I could read your blog instead of the whitepaper? You seem to have already gone though and captured the most important parts.
Its pretty much covered if you looking at the same whitepaper, i would suggest you can stick with the blog.
Jayendra,
I am pretty new to AWS and started writing a blog myself about AWS services that I am learning. I really like the way you have laid out the services and would like to follow your footsteps for my future blog posts.
Please check my blog post on S3 (http://sgogineni.com/blog/ataglance-s3/), I have added new things from the AWS documentation page. I learned it from AWS Solutions architect guide and AWS website.
Thats great Sgogineni …
Sir
I have a question. I have to keep my LIC policy long period (till the maturity time). But when the customer wants the copy I need to produce it immediately. Which storage option i will select.
S3 / Glacier / Paying money to AWS to get data from Glacier immediately?
S3 Infrequent access should be good enough to lower cost and immediate access. Else use Glacier with expedited retrievals (which would cost money) and delay will be in minutes.