Introduction
If you have a static website (HTML, CSS, and JavaScript files) and want to host it online securely with your own domain, AWS offers an easy and reliable way to do it.
With just a few services β Amazon S3, CloudFront, Route 53, and AWS Certificate Manager (ACM) β you can host a website that is fast, secure, and scalable, without needing any server.
In this article, youβll learn step by step how to make your static website live using AWS.
βοΈ Services Youβll Use
| Service | Purpose |
|---|
| Amazon S3 | Stores your website files (HTML, CSS, JS) |
| CloudFront | Makes your website load fast everywhere |
| Route 53 | Connects your custom domain name |
| Certificate Manager (ACM) | Adds HTTPS security (SSL certificate) |
![StormIT-HTTPS-Static-Website-1]()
πͺ Step 1. Create an S3 Bucket
Go to the S3 console β click Create Bucket.
Name your bucket the same as your domain (e.g., www.example.com).
Uncheck Block all public access and confirm.
Upload your website files (index.html, style.css, etc.).
Then go to Properties β Static website hosting β
Click Save β youβll get a website endpoint like:
http://www.example.com.s3-website-us-east-1.amazonaws.com
πͺ Step 2. Create a CloudFront Distribution
CloudFront helps your website load faster globally.
Go to CloudFront β click Create Distribution.
In the Origin domain, select your S3 bucket (the website endpoint).
Set Viewer Protocol Policy β βRedirect HTTP to HTTPS.β
Under Alternate Domain Names (CNAMEs), add your domain name.
Choose Request or import a certificate from ACM (for HTTPS).
Click Create Distribution and note down the CloudFront URL, e.g.:
d123abc.cloudfront.net
πͺ Step 3. Request an SSL Certificate (HTTPS)
Open AWS Certificate Manager (ACM).
Click Request a public certificate.
Add your domain name (e.g., example.com and www.example.com).
Choose DNS validation.
ACM will give you a CNAME record to add in Route 53.
Wait until the status shows βIssuedβ.
πͺ Step 4. Configure Route 53 (Domain Name)
Go to Route 53 β Hosted Zones β open your domain.
Add a new A Record (Alias):
Save the record.
This connects your domain to CloudFront β S3.
πͺ Step 5. Test Your Website
After 10β30 minutes (DNS propagation), open your browser and go to:
https://www.example.com
β
You should see your website live
β
It loads fast globally
β
It has a secure HTTPS lock icon
π° Cost Summary (Approximate)
| Service | Cost |
|---|
| S3 | $0.50/month |
| CloudFront | $1β3/month |
| Route 53 | $1/month |
| ACM | Free |
π‘ Total: Usually under $5 per month for small websites.
π§ Why This Setup is Great
π Fast β CloudFront caches your site worldwide
π Secure β Free SSL certificate
βοΈ Scalable β No servers to manage
πΈ Cheap β Pay only for what you use
π§ Simple β Perfect for portfolios, landing pages, or blogs
π― Conclusion
Hosting a static website on AWS is simple, powerful, and affordable.
With just S3, CloudFront, Route 53, and ACM, you get a fully serverless, secure, and globally available website.
This is one of the best ways to start learning AWS β and itβs a skill every cloud developer should know.