AWS Builder Center

Getting Started with Amazon S3: A Beginner’s Guide

Learn the fundamentals of Amazon S3, including buckets, objects, storage classes, permissions, and common use cases. This guide explains S3 in simple terms and walks through the basic concepts every AWS beginner should understand.

Student

Getting Started with Amazon S3: A Beginner’s Guide

Amazon S3 (Simple Storage Service) is one of the most widely used services in AWS. It provides highly scalable object storage that can be used to store and retrieve files such as images, videos, documents, backups, application data, and datasets.
If you are new to AWS, understanding Amazon S3 is a great place to start because many AWS applications use S3 as a storage layer.

What Is Amazon S3?

Amazon S3 is an object storage service.
Instead of organizing data like files on your local computer, S3 stores data as objects inside buckets.
A simple way to think about it is:
1
2
3
4
5
6
7
8
9
10
AWS Account
|
+--- S3
|
+--- Bucket
|
+--- image.jpg
+--- document.pdf
+--- video.mp4
+--- backup.zip
An S3 object consists of the actual data, metadata, and a unique key that identifies the object.
For example:
1
2
3
4
Bucket: my-project-files

Object:
photos/profile.jpg
Here, photos/profile.jpg is the object's key.

What Is an S3 Bucket?

A bucket is a container for objects stored in Amazon S3.
Before uploading an object to S3, you normally create a bucket.
For example, you could create:
1
my-website-assets
and store files inside it:
1
2
3
4
5
6
7
8
my-website-assets/
├── images/
│ ├── logo.png
│ └── banner.jpg
├── documents/
│ └── guide.pdf
└── videos/
└── demo.mp4
Buckets can be used for many different purposes, including application files, backups, static website assets, logs, and datasets.

What Is an S3 Object?

An object is the data you store in S3.
For example:
1
2
3
4
profile.jpg
resume.pdf
database-backup.zip
product-data.csv
Each object has a key that identifies its location within the bucket.
For example:
1
images/profile.jpg
The object can also contain metadata that provides additional information about the stored data.

Why Use Amazon S3?

There are several reasons developers and organizations use S3.

1. Scalability

S3 is designed to store very large amounts of data. You don't need to manually manage storage disks as your application grows.

2. Durability

Amazon S3 is designed for extremely high durability, making it suitable for important data and backups.

3. Accessibility

Applications running on AWS or outside AWS can access S3 objects when the appropriate permissions are configured.

4. Security

S3 integrates with AWS Identity and Access Management (IAM), bucket policies, encryption, and other AWS security features.

5. Cost Flexibility

S3 provides different storage classes so you can choose storage based on how frequently you need to access your data.

S3 Storage Classes

Amazon S3 provides different storage classes for different access patterns.
Some commonly used classes include:
Storage ClassTypical Use
S3 StandardFrequently accessed data
S3 Intelligent-TieringData with changing or unknown access patterns
S3 Standard-IAInfrequently accessed data
S3 Glacier Instant RetrievalArchive data that still needs quick access
S3 Glacier Flexible RetrievalLong-term archival data
S3 Glacier Deep ArchiveVery long-term archival
For example, if you have website images that users access frequently, S3 Standard may be appropriate.
For old backups that are rarely accessed, an S3 Glacier storage class may be more suitable.

How Does S3 Security Work?

One of the most important concepts when learning S3 is security.
An S3 bucket should not automatically be made publicly accessible.
AWS provides several mechanisms for controlling access, including:
  • IAM policies
  • Bucket policies
  • Block Public Access settings
  • Access control mechanisms
  • Encryption
For example, an application may be given permission to upload files to a specific bucket without giving it permission to delete other resources in the AWS account.
A good security principle is:
Give users and applications only the permissions they actually need.
This is known as the principle of least privilege.

S3 Encryption

S3 supports encryption to help protect stored data.
Encryption can be used when objects are stored in S3 so that the underlying data is protected.
AWS provides server-side encryption options, including encryption using AWS-owned or AWS Key Management Service (KMS) keys.
For sensitive information, it is important to understand both encryption and access control rather than relying on only one security mechanism.

A Simple S3 Workflow

A typical application might use S3 like this:
1
2
3
4
5
6
7
8
9
10
11
12
13
User
|
v
Web Application
|
v
Upload File
|
v
Amazon S3 Bucket
|
v
Object Stored
When a user uploads an image, the application can store the image in S3.
Later, the application can retrieve the object when the image needs to be displayed.
For example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
User uploads:
profile.jpg

↓

Application

↓

S3 Bucket

↓

images/profile.jpg

Creating Your First S3 Bucket

If you are learning AWS, you can create a bucket through the AWS Management Console.
The general process is:
  1. Sign in to the AWS Management Console.
  2. Search for S3.
  3. Open the Amazon S3 service.
  4. Choose Create bucket.
  5. Enter a globally unique bucket name.
  6. Select the appropriate AWS Region.
  7. Keep security settings enabled unless you have a specific reason to change them.
  8. Create the bucket.
  9. Open the bucket.
  10. Upload a test file.
For learning purposes, you can upload a small text file or image.

Important: Avoid Making Test Buckets Public

When experimenting with S3, be careful with permissions.
If a bucket or object is publicly accessible, anyone who has the appropriate public URL may be able to access the data.
For beginner experiments, it is safer to keep Block Public Access enabled unless you specifically understand why public access is required.
This is especially important if your bucket contains personal information, credentials, private documents, or other sensitive data.

Example Use Cases

Amazon S3 can be used in many types of applications.

Website Assets

A website can store images, videos, CSS files, JavaScript files, or downloadable documents in S3.

Backups

Applications can store backup files in S3 for recovery purposes.

Data Lakes

Organizations can use S3 as a foundation for storing large datasets used for analytics and machine learning.

Log Storage

Application and infrastructure logs can be stored in S3 for later analysis.

Media Storage

Images, videos, audio files, and other media can be stored as S3 objects.

S3 and Other AWS Services

S3 becomes even more powerful when combined with other AWS services.
For example:
1
2
3
4
5
6
7
8
9
10
11
12
Amazon EC2
|
v
Amazon S3
|
+---- Amazon CloudFront
|
+---- AWS Lambda
|
+---- Amazon Athena
|
+---- AWS Glue
An application running on Amazon EC2 can store files in S3.
Amazon CloudFront can distribute content stored in S3 through a content delivery network.
AWS Lambda can process objects when events occur.
Amazon Athena can query certain datasets stored in S3.
This makes S3 an important building block for many AWS architectures.

What I Learned

As a beginner, the most important S3 concepts to understand are:
  1. Bucket – a container for objects.
  2. Object – the data stored in S3.
  3. Object key – the identifier used to locate an object.
  4. Storage class – determines how data is stored based on access patterns.
  5. IAM and bucket policies – control who or what can access data.
  6. Encryption – helps protect stored information.
  7. Block Public Access – helps prevent unintended public access.
Understanding these concepts provides a strong foundation for learning more advanced AWS services.

Conclusion

Amazon S3 is a simple concept at first: store and retrieve objects from buckets. However, it becomes a powerful part of AWS architectures when combined with security controls, lifecycle policies, storage classes, and other AWS services.
If you are beginning your AWS journey, creating a small S3 bucket and uploading a test object is a good hands-on exercise.
From there, you can explore IAM permissions, lifecycle rules, versioning, encryption, event notifications, and integrations with services such as Lambda and CloudFront.
Always remember to review your permissions and delete resources you no longer need, especially when experimenting in an AWS account.
Happy learning! ☁️
Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article