AWS Static Website Hosting

Project: Professional CV on AWS (S3 + CloudFront + Route 53 + ACM)

Domain: buildcloudwithanwer.co.uk

Prepared by: Anwer Sadath Abdul Muttaliff

Project Overview

Objective

To deploy a static CV website on AWS using:

Why This Project?

Architecture Diagram

AWS Static Website Architecture Diagram

Architecture showing S3, CloudFront, Route 53, and ACM integration

About Route 53 Hosted Zones

A Hosted Zone in Route 53 is a container for DNS records that define how traffic is routed for a specific domain. There are two types:

In this project, we created a public hosted zone for our domain buildcloudwithanwer.co.uk.

About DNS Records

DNS records in Route 53 tell the internet how to handle requests for your domain. Key record types:

Record Type Purpose Example
A Maps a hostname to an IPv4 address example.com → 192.0.2.1
AAAA Maps a hostname to an IPv6 address example.com → 2001:0db8:85a3::8a2e:0370:7334
CNAME Maps a hostname to another hostname www.example.com → example.com
Alias AWS-specific record that maps to AWS resources example.com → CloudFront distribution
NS Nameserver records for your hosted zone Delegates domain to Route 53 nameservers

Step-by-Step Implementation

Step 1: Domain Registration & Route 53 Setup

View Detailed Steps

Why Route 53?

  • Provides reliable DNS management
  • Needed to link buildcloudwithanwer.co.uk to AWS resources
  • Supports health checking and failover

Steps Performed:

  1. Registered domain (buildcloudwithanwer.co.uk) via Names.co.uk
  2. Created a Hosted Zone in Route 53
  3. Updated nameservers at registrar (names.co.uk) to AWS NS records:
    ns-1720.awsdns-23.co.uk
    ns-568.awsdns-07.net
    ns-1182.awsdns-19.org
    ns-17.awsdns-02.com
  4. Waited for DNS propagation (took about 12 hours)

Screenshots:

Nameserver update screenshot WHOIS information nslookup and ping verification

Step 2: S3 Bucket Configuration

View Detailed Steps

Why Amazon S3?

  • Cost-effective storage for static files
  • No servers to manage
  • High durability and availability
  • Built-in static website hosting capability

Steps Performed:

  1. Created bucket named buildcloudwithanwer.co.uk
  2. Enabled static website hosting (Index document: index.html)
  3. Set bucket policy for public access:
    {
      "Version": "2012-10-17",
      "Statement": [{
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::buildcloudwithanwer.co.uk/*"
      }]
    }
  4. Uploaded CV files (index.html, assets)

Screenshots:

Enable static website hosting Bucket policy edit File upload to S3

Step 3: CloudFront Distribution

View Detailed Steps

Why CloudFront?

  • Global CDN for faster loading worldwide
  • Free HTTPS via AWS ACM
  • DDoS protection
  • Edge locations improve performance

Steps Performed:

  1. Created distribution with S3 as origin
  2. Configured alternate domain name: cv.buildcloudwithanwer.co.uk
  3. Requested SSL Certificate via AWS ACM (free)
  4. Key settings:
    • Default root object: index.html
    • Protocol: Redirect HTTP → HTTPS
    • Caching: Optimized for static content
    • Price class: Use all edge locations

Screenshots:

Request public certificate Certificate issued confirmation

Step 4: Route 53 DNS Records

View Detailed Steps

Why DNS Configuration?

  • To route traffic from domain to CloudFront
  • To enable custom domain with HTTPS
  • To manage subdomains effectively

Steps Performed:

  1. Created A record for cv.buildcloudwithanwer.co.uk
  2. Configured Alias target to point to CloudFront distribution
  3. Verified SSL (takes ~30 minutes)
  4. Tested HTTPS connection

Screenshots:

HTTPS test result

Performance Optimization

Cost Optimization

Scalability

Lessons Learned

Cleanup Instructions

  1. Delete CloudFront distribution
  2. Empty and delete S3 bucket
  3. Remove Route 53 hosted zone
  4. Delete ACM certificate (if no longer needed)

Conclusion

This project successfully demonstrated:

Next Steps

Back to Top Back to Home