How to Host a Static Website on AWS S3 (Step-by-Step Guide)
Published
Short answer. An S3 bucket with static website hosting enabled serves your HTML over a public endpoint URL, with no server to run and no fixed monthly cost. You need public read access on the objects and an index document. For your own domain and HTTPS you also need Route 53 and CloudFront, which the next guides cover.
Part 1 of 4 — static hosting on AWS, end to end:
- Host it on S3 (you are here)
- Add your own domain with Route 53
- Automate deploys with GitHub Actions
- Lock it down with CloudFront and a private bucket
Introduction
If you’ve built a static website using HTML, CSS, and images, the next step is getting it online. One of the simplest and most cost-effective ways is to use Amazon S3 (Simple Storage Service).
With just a few clicks, you can deploy your static site and make it accessible to the world — no servers required!
Let’s go step by step.
Step 1: Prepare Your Files
Make sure your project folder contains all necessary files, such as:
index.htmlstyle.css- Any images or assets
Keep them organized in a single folder before uploading.
Step 2: Create an S3 Bucket
- Log in to AWS Management Console → S3
- Click Create bucket
- Enter a unique bucket name (example:
portfolio-website) - Uncheck Block all public access if you want your site to be public
- Click Create bucket
Step 3: Configure Bucket for Static Website Hosting
-
Open your newly created bucket
-
Go to the Properties tab
-
Scroll to Static website hosting → Edit
-
Enable it and set:
- Index document →
index.html - Error document →
404.html(optional)
- Index document →
-
Save changes
Step 4: Make Files Public
There are two ways to allow public access:
Option 1: Manually
- Select all objects → Click Actions → Make public
Option 2: Bucket Policy (Recommended)
- Go to Permissions → Bucket Policy
- Paste the following JSON (replace
YOUR_BUCKET_NAME):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*"
}
]
}
- Save changes
Step 5: Upload Your Files
- Go to the Objects tab
- Click Upload → Add files
- Select all your project files (
index.html,style.css, images, etc.) - Click Upload
Step 6: Access Your App
- Open the Properties tab of your bucket
- Scroll to Static website hosting
- Copy the Bucket website endpoint URL
- Paste it into your browser — your site is live
Conclusion
Hosting a static website on AWS S3 is one of the fastest ways to make your portfolio, landing page, or small project available online.
It’s cost-efficient, secure, and scalable — making it perfect for developers of all levels.
Next Steps
Be interview-ready in the era of AI & Cloud — start your DevOps journey today! YouTube won’t get you a job. Real projects + real internship certificate will. AI is reshaping jobs. Don’t watch it happen, be part of it with DevOps & Cloud skills. ₹2000/month today = Dream job tomorrow. Secure your spot now. ⏳ Every month you wait, Cloud + AI jobs are being filled. Don’t miss out! DevOps + AWS + AI = The skillset every recruiter is hunting for in 2025.
Register now at TechEazy Consulting