Cloud Resume Hosting: A Step-by-Step Guide
Table of Contents
Project Overview
This project is my implementation of the Cloud Resume Hosting, a hands-on project designed to help learn and showcase cloud skills, particularly with AWS. The challenge involves creating a personal resume website hosted entirely on AWS, incorporating various services to create a static website with content delivery capabilities, using a custom domain registered with GoDaddy.
Architecture
The project uses the following AWS services and external components:
S3: Hosts the static website files (HTML, CSS, JavaScript)
CloudFront: Provides content delivery and HTTPS
Route 53: Manages DNS settings
AWS Certificate Manager: Provides SSL/TLS certificate
GoDaddy: Domain registrar [ This is what i used . You can also get your domain from Route 53 at prices starting from $15 ]
Prerequisites
An AWS account
Basic knowledge of HTML, CSS, and JavaScript
A domain name registered with GoDaddy/NameCheap etc [ or Route 53]
Implementation Steps
Step 1: Create and Style Your Resume
Create your resume using HTML and CSS. Here's a basic structure to get you started:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Your Name - Resume</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header>
<h1>Your Name</h1>
<p>Web Developer | Cloud Enthusiast</p>
</header>
<main>
<!-- Add your resume sections here -->
</main>
<footer>
<p>© 2024 Your Name</p>
</footer>
</body>
</html>
You can also download and edit templates from https://nicepage.com/html-templates
Step 2: Set Up S3 Static Website Hosting
Create an S3 bucket with a unique name (e.g., "your-name-resume")
Enable static website hosting in the bucket properties
Upload your HTML, CSS, and JavaScript files to the bucket
Set the bucket policy to allow public read access:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/*"
}
]
}
Step 3: Configure CloudFront
Create a CloudFront distribution
Set the S3 bucket as the origin
Configure HTTPS settings
Set the default root object to "index.html"
Step 4: Set Up Custom Domain with GoDaddy and Route 53
In Route 53, create a public hosted zone for your domain
Note the NS (Name Server) records provided by Route 53
Log in to your GoDaddy account and update the domain's nameservers to use the ones provided by Route 53
In Route 53, create an A record that points to your CloudFront distribution using "Alias to CloudFront distribution"
Step 5: Request SSL Certificate with AWS Certificate Manager
Open the AWS Certificate Manager console
Click "Request a certificate"
Enter your domain name (and optionally, www subdomain)
Choose DNS validation method
Create the required CNAME records in Route 53 to validate domain ownership
Wait for the certificate to be issued
In your CloudFront distribution settings, update the SSL certificate to use the newly issued ACM certificate
Testing
Manually test your website by accessing it through your custom domain
Ensure that HTTPS is working correctly
Use browser developer tools to ensure all resources are loading correctly
Test your website on different devices and browsers to ensure responsiveness
Future Improvements
Implement CI/CD pipeline for automatic deployments
Use Terraform or CloudFormation for infrastructure as code
Add more interactive elements to the resume
Implement a blog section using a serverless CMS
Add a visitor counter using API Gateway, Lambda, and DynamoDB