☁️ Amazon S3 Explained: More Than Just Object Storage
Amazon S3 Explained: More Than Just Object Storage
When people hear Amazon S3, they usually think it is only used to store files like images, logs, backups, or documents.
That is true, but S3 has grown into much more than simple object storage. Today, S3 can be used for object storage, file-like access, immutable backups, lifecycle management, static websites, event-driven workflows, analytics, and data lake storage.
In this post, let us understand what S3 is and how it is used in real-world AWS environments.
1. What is Amazon S3?
Amazon S3 stands for Simple Storage Service. It is mainly an object storage service.
In S3, data is stored as objects inside buckets.
Bucket → Object
Each object usually contains:
- The actual data
- Metadata
- A unique object key
Example:
Bucket name: my-app-logs Object key: logs/2026/app.log
Even though this looks like a folder path, S3 does not work like a traditional filesystem internally. The folder-like structure is actually based on object key prefixes.
2. Is S3 a File System?
S3 is not a traditional file system like EFS, EBS, or a Linux filesystem.
In a normal filesystem, you have real directories, file locking, file permissions, and POSIX behavior. S3 does not work exactly that way.
But S3 can feel similar to a filesystem because object keys can look like folders.
reports/2026/january/report.csv images/products/item-1.png logs/app/server.log
These are not real folders. They are object keys with prefixes.
3. Can We Mount S3 Like a File System?
Yes, S3 can be mounted using tools such as:
- Mountpoint for Amazon S3
- s3fs
- goofys
After mounting, a bucket may appear like this:
/mnt/my-s3-bucket
But this does not make S3 a full replacement for EFS or EBS. S3 is still object storage underneath.
Important limitations:
- Not full POSIX filesystem behavior
- Rename operations are different
- Latency is different from local disk or EFS
- Not ideal for applications that need frequent small file updates
S3 is best when the application writes and reads complete objects.
4. Common Use Cases of S3
Amazon S3 is used in many different ways.
- Application file uploads
- Images and videos
- Static website hosting
- Log storage
- Backups
- Terraform remote state
- Data lake storage
- Machine learning datasets
- Archive storage
- Disaster recovery
5. S3 Storage Classes
S3 provides multiple storage classes depending on how often data is accessed and how much cost you want to optimize.
| Storage Class | Use Case |
|---|---|
| S3 Standard | Frequently accessed data |
| S3 Intelligent-Tiering | Unknown or changing access patterns |
| S3 Standard-IA | Infrequently accessed data |
| S3 One Zone-IA | Infrequent data stored in one Availability Zone |
| S3 Glacier Instant Retrieval | Archive data that still needs fast retrieval |
| S3 Glacier Flexible Retrieval | Archive data with slower restore time |
| S3 Glacier Deep Archive | Lowest-cost long-term archive |
6. S3 Lifecycle Policies
S3 lifecycle rules help automatically move or delete objects based on age.
Example lifecycle flow:
Upload object → Keep in S3 Standard → Move to Glacier → Delete later
Common lifecycle examples:
- Move logs to Glacier after 30 days
- Delete temporary files after 5 days
- Delete old noncurrent versions after 30 days
- Archive compliance logs for long-term storage
Lifecycle policies are very useful for cost optimization.
7. S3 Versioning
S3 versioning keeps multiple versions of the same object.
If versioning is enabled and someone uploads a new file with the same key, S3 keeps the old version instead of overwriting it permanently.
app.log → version 1 app.log → version 2 app.log → version 3
Versioning helps protect against:
- Accidental overwrite
- Accidental delete
- Rollback needs
- Data recovery
8. S3 Object Lock
S3 Object Lock is used to make objects immutable. That means objects cannot be deleted or overwritten during a retention period.
Object Lock is commonly used for:
- Compliance logs
- Audit records
- Financial records
- Security archives
- Ransomware protection
Object Lock Modes
| Mode | Meaning |
|---|---|
| Governance Mode | Protected, but users with special permission can bypass retention |
| Compliance Mode | Nobody can delete or change the object until retention expires |
Simple Object Lock flow:
Upload object → Apply retention → Object cannot be deleted or overwritten
Important note:
Object Lock requires versioning. It should be planned carefully because Compliance Mode is very strict.
9. S3 ACLs
S3 ACL means Access Control List. ACLs are an older way to control access to buckets and objects.
Example ACL permissions include:
- Private
- Public read
- Bucket owner full control
In modern AWS setups, ACLs are often disabled. AWS generally recommends using:
- IAM policies
- Bucket policies
- S3 Block Public Access
- S3 Object Ownership
For many new buckets, you may see this setting:
Object Ownership: Bucket owner enforced
When Bucket owner enforced is enabled, ACLs are disabled and the bucket owner automatically owns the objects.
10. S3 Bucket Policy vs IAM Policy vs ACL
| Access Control | Where It Applies | Common Use |
|---|---|---|
| IAM Policy | Attached to IAM users, roles, or groups | Allow an app role to read/write S3 |
| Bucket Policy | Attached to the S3 bucket | Allow public read or restrict access by condition |
| ACL | Bucket or object level | Older access model, usually avoided now |
11. S3 Static Website Hosting
S3 can host static websites made of HTML, CSS, JavaScript, and image files.
Example:
index.html style.css script.js
For production websites, S3 is commonly used with CloudFront.
User → CloudFront → S3 static website files
12. S3 Events
S3 can trigger events when objects are created, deleted, or changed.
Example:
File uploaded to S3 → Lambda runs → Process file
S3 events can be sent to:
- AWS Lambda
- Amazon SQS
- Amazon SNS
- Amazon EventBridge
This is very useful for serverless workflows.
13. S3 as Data Lake Storage
S3 is also commonly used as the storage layer for data lakes.
Data teams store files like:
- CSV
- JSON
- Parquet
- ORC
These files can then be queried or processed using services like:
- Athena
- Glue
- EMR
- Spark
- SageMaker
Example data lake flow:
Application logs → S3 → Glue Catalog → Athena query
14. S3 Is More Than Just a Bucket
Amazon S3 started as object storage, but today it is used as a major storage platform in AWS.
It can support:
- Application storage
- Static websites
- Backup and archive
- Immutable storage with Object Lock
- Event-driven workflows
- Data lakes
- Machine learning datasets
15. Final Thought
The easiest way to remember S3 is this:
S3 stores objects, but AWS has added many features around those objects.
So S3 is still object storage at its core, but it can now be used for many modern cloud patterns: storage, backup, archive, compliance, events, analytics, and data lakes.
If you are learning AWS, S3 is one of the most important services to understand deeply. It appears almost everywhere in real-world cloud architecture.