đ Introduction: Why Learn Amazon S3?
Amazon S3 (Simple Storage Service) is more than just a place to store files in the cloud â itâs a powerful, scalable, and secure backbone for countless web apps, backups, data pipelines, and even static websites. Whether you're just starting your cloud journey or building hands-on AWS skills, understanding S3 is foundational.
In this training, I went beyond theory and dove into real-world scenarios that demonstrate how S3 works in practice. From creating and securing buckets to hosting websites and replicating data across regions, each session was designed to build practical knowledge through step-by-step labs and relatable examples.
This post is a full recap of what I learned, including key features like versioning, encryption, storage classes, the AWS Snow Family, and more. If youâre looking for a beginner-friendly breakdown with practical context, youâre in the right place.
Practical Scenario: Hosting a Global NGO Website Using Amazon S3
Background:
Imagine you're helping a global NGO launch a simple, low-cost website that people can visit from anywhere in the world. The site only uses static files like HTML, CSS, and images. Amazon S3 is a great fit because itâs cheap, fast, and scalable.
(Beginners guide)
Step 1: Create an S3 Bucket
⢠Open the AWS Console and go to the S3 service
⢠Click âCreate bucketâ
⢠Give it a unique name like global-ngo-website
⢠Choose a region close to your users (e.g., US-East-1)
-Enable versioning :Although I enabled versioning during the initial bucket creationârather than navigating through the detailed âPropertiesâ tabâthe purpose remains the same: to safeguard my data. S3 Versioning is a crucial feature that ensures every change to an object is preserved, not overwritten. This means if I ever upload a new index.html file with the same name, the previous version is still securely stored and can be retrieved, restored, or deleted at any time.
In real-world scenarios, versioning acts like a built-in backup systemâprotecting against accidental deletions, overwrites, or even malicious changes. For a website or project where content accuracy matters, this feature adds an essential layer of safety and traceability.
-Unblock all public access
⢠Leave other settings as default and click âCreate bucketâ
Step 2: Upload Your Website Files, you do not need to worry about the code all you need to do is to generate it with ChatGPT,Gemini or any other AI.Then paste and save it via VScode(more info will be on the diragrams)
⢠Upload two basic files:
o index.html: The main homepage
o error.html: A page shown if someone visits the wrong URL
⢠Click your new bucket â Click âUploadâ â Add the files â Click âUploadâ
Step 3: Set Up Static Website Hosting
⢠Go to the âPropertiesâ tab of your bucket
⢠Scroll to âStatic website hostingâ â Click âEditâ â Enable it
⢠For Index Document, enter: index.html (the name of your main page)
⢠For Error Document, enter: error.html (the name of your error page)
â Save changes
lets check if we can now access our file on our browser, copy the url and paste it on your browser.
oops! now lets go and configure the permissions proper .
**Step 4: **Allow Public Access to Website Files
⢠Go to âPermissionsâ â Click âEditâ under âBucket Policyâ
⢠Paste this policy (replace your-bucket-name with yours):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": "",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/"
}
]
}
⢠Save the policy
now lets refresh our page and retry
great!
now make a slight mistake on our bucket name will bring up our error page
Step 5: Assign Different Storage Classes
⢠Click on your bucket name (e.g. mybucketwife)
⢠Go to the Objects tab
Youâll see the list of uploaded files like index.html, image.png, report.pdf, etc.
⢠Select a file you want to change
⢠Click the checkbox next to the file (e.g. report.pdf)
⢠Click on âActionsâ (or right-click)
⢠Choose âChange storage classâ
⢠Choose the new class
⢠For example:
o Standard (keep it like that for homepage files)
o Standard - Infrequent Access
o Glacier (for archive)
⢠Click Save/Apply
_And with that concludes this session !
The next project on s3 will be on replication and IAM !
_
Top comments (1)
Very articulate and understandable to read and learnđĽ