Build a Static Website on Amazon S3

Published: December 1, 2025 (Updated: Dec 1, 2025)

Enjoying this content? Subscribe to the Channel!

Host Your Static Website for Pennies: The Easy AWS S3 Tutorial!


Hi there! I’m Darren, and welcome back to Darren’s Tech Tutorials.

When people think of Amazon Web Services (AWS) Simple Storage Service (S3), they usually think of file storage—and they’d be right! But S3 is also one of the easiest, cheapest, and most reliable platforms for hosting static websites.

If you have a simple site built only with HTML, CSS, and JavaScript, S3 is the perfect, low-maintenance solution. In this quick and comprehensive guide, we’ll walk through the process step-by-step, showing you exactly how to get your static site live in minutes.

Ready to launch your site? Let’s dive in!


What We Need to Get Started

Before we jump into the AWS console, you need two basic files for this demonstration:

  1. Index File: Your main page (e.g., index.html).
  2. Error File: A custom page for errors (e.g., error.html).

Pro Tip: We’ve provided all the sample files and a full text tutorial on our site if you want to follow along perfectly. You can find them here: https://darrenoneill.eu/?p=1397

Step 1: Accessing the AWS Console and Navigating to S3

Once you are signed into your AWS Management Console, the first step is to access the S3 service. You can search for “S3” in the search bar or click on the “Services” menu.

Step 2: Creating Your Unique S3 Bucket

The S3 bucket is the container that holds all your website files. It is crucial to remember that bucket names must be globally unique—no two people on AWS can have the exact same bucket name.

Here’s how to create and configure it for public access:

  1. Click Create bucket.
  2. Choose a unique name (e.g., darren-s3-website-2023).
  3. Select the desired region for your hosting.
  4. Crucially, under “Block Public Access settings for this bucket,” we need to untick all the options. By default, AWS blocks public access for security. Since we are hosting a public website, we must remove these blocks.
  5. Click Create bucket.
  6. AWS will prompt you to confirm that you understand you are making the bucket public. Type confirm and click Confirm.

Note: By turning off public access blocks, you are telling AWS that you intend for this bucket to host publicly accessible data (your website).

Step 3: Uploading Files and Setting Public Permissions

Now that the bucket is created, it’s time to upload your website files.

  1. Click on the name of the bucket you just created (darren-s3-website-2023).
  2. Click the Upload button.
  3. Click Add files and select your index.html and error.html files (or all your necessary website assets).
  4. Click Upload to move the files into the bucket.

Once the files are uploaded, they are stored, but they aren’t publicly accessible yet. We need to explicitly tell S3 that anyone can view these specific files.

  1. In your bucket, select all the files you just uploaded.
  2. Click the Actions menu at the top.
  3. Select Make public using ACL.
  4. Confirm the action by clicking Make public.

Step 4: Enabling Static Website Hosting and Defining Endpoints

This is the key step where we tell S3 to stop acting like a simple storage folder and start acting like a web server.

  1. While viewing your bucket, click the Properties tab.
  2. Scroll down until you find the Static website hosting card. Click on it.
  3. Select the option: Use this bucket to host a website.
  4. Index document: Enter the name of your main file. (e.g., index.html)
  5. Error document: Enter the name of your error file. (e.g., error.html)
  6. Click Save changes.

Once saved, S3 will provide you with a unique Endpoint URL. This is the address where your website will be live!

Step 5: Launching Your New S3 Website

In the Static website hosting card, copy the provided Endpoint URL.

Paste this URL into any web browser, and success! You will see your index page displayed live, hosted directly from your Amazon S3 bucket.

For custom domains, you can easily use DNS rules—specifically a CNAME record—to point your existing domain name to this S3 Endpoint URL, giving you a professional address without the complexity of traditional web servers.


Conclusion: Static Hosting Made Simple and Cheap!

As you can see, hosting a static website on Amazon S3 is incredibly quick, surprisingly easy, and best of all, incredibly cheap! You only pay for the storage space used and the minimal data transfer out—making it a perfect solution for portfolios, landing pages, and documentation sites.

If you found this guide helpful and easy to follow, please show your support! Don’t forget to Like this post and Subscribe to Darren’s Tech Tutorials for more clear and accessible technology guides.

If you had any trouble following along, drop a comment below, and I’ll certainly help out! Happy hosting!