AWS S3 Essentials: Real-World Training on Buckets, Hosting, and Snow Family
Okoye Genevieve

Okoye Genevieve @_eve_

About: Cloud & DevOps Engineer. Network Engineer. Designs & deploys robust, scalable cloud infra. Solutions: AWS, Azure, GCP. Implements DevOps. Linux & API Security pro. Connects globally.

Location:
Lagos, Nigeria
Joined:
May 22, 2025

AWS S3 Essentials: Real-World Training on Buckets, Hosting, and Snow Family

Publish Date: Aug 3
0 1

📘 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 !
_

make sure to like and follow for more contents like this and also remember to delete your resources to avoid charges!

Comments 1 total

  • Okonkwo Valentine
    Okonkwo ValentineAug 3, 2025

    Very articulate and understandable to read and learn🔥

Add comment