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:

  1. Host it on S3 (you are here)
  2. Add your own domain with Route 53
  3. Automate deploys with GitHub Actions
  4. 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.html
  • style.css
  • Any images or assets

Keep them organized in a single folder before uploading.


Step 2: Create an S3 Bucket

  1. Log in to AWS Management Console → S3
  2. Click Create bucket
  3. Enter a unique bucket name (example: portfolio-website)
  4. Uncheck Block all public access if you want your site to be public
  5. Click Create bucket

Step 3: Configure Bucket for Static Website Hosting

  1. Open your newly created bucket

  2. Go to the Properties tab

  3. Scroll to Static website hosting → Edit

  4. Enable it and set:

    • Index documentindex.html
    • Error document404.html (optional)
  5. 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

  1. Go to the Objects tab
  2. Click Upload → Add files
  3. Select all your project files (index.html, style.css, images, etc.)
  4. Click Upload

Step 6: Access Your App

  1. Open the Properties tab of your bucket
  2. Scroll to Static website hosting
  3. Copy the Bucket website endpoint URL
  4. 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