☁️ 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.

Popular posts from this blog

☁️ AWS Global Accelerator (GA) + Route 53

🐳 Docker Filesystem Internals (AdvancEd)

Understanding RabbitMQ Classic Mirrored Queues and Quorum Queues

🐳 Docker Tutorial for Beginners: Step-by-Step with a Simple Example

☸️What’s Inside EKS? A Beginner’s Guide to Its Core Components

☸️ Kubernetes Taints and Tolerations(with Node Affinity)

AWS Load Balancer Controller Upgrade Guide: v2.x to v3.3

🐳 Build a Tiny Flask Web App in Docker (with Ports)

☸️ CoreDNS and AWS VPC CNI in EKS