Welcome to my new blog series, "My AWS Projects: From Beginner to Advanced." This series is all about documenting my hands-on journey with AWS, from basic deployments to complex cloud architectures. If you're someone looking to get started with AWS or advance your cloud skills, this series is for you!
🔹 Why This Series?
As an AWS enthusiast, I wanted to go beyond theoretical knowledge and build real-world projects. Each project in this series will cover:
✅ A practical use case ✅ A step-by-step guide on implementation ✅ Key takeaways and learnings
Whether you're a beginner or an aspiring cloud engineer, these projects will help you gain hands-on experience and confidence in working with AWS services.
🔹 Project #1: Hosting My Resume on AWS (Beginner Level)
In the first project, I hosted my personal resume (built with HTML & CSS) on AWS using S3 and CloudFront for global distribution. It was a simple yet powerful way to understand AWS storage and content delivery services. To make this project even easier to follow, here is walk through to the entire process. Feel free to watch it alongside this guide for better understanding.
🛠️ Steps Involved:
1️⃣ Logging into AWS
- First, I logged into my AWS account and navigated to the S3 (Simple Storage Service) dashboard.
2️⃣ Creating an S3 Bucket
- I created an S3 bucket (
yuvraj-resume
) to store my resume files. Since I wanted my website to be publicly accessible, I ensured the bucket name was unique globally.
3️⃣ Uploading the Resume Files
- I uploaded my
YuvsResume.html
files into the S3 bucket.
4️⃣ Enabling Static Website Hosting
- Inside the Properties tab of my S3 bucket, I enabled Static website hosting and set
YuvsResume.html
as the default document.
5️⃣ Configuring Permissions
- By default, S3 buckets are private. To make my site publicly accessible, I used AWS’s Policy Generator to allow public
GetObject
permissions.
Here’s the bucket policy I used:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::yuvraj-resume/YuvsResume.html",
"Principal":"*"
}
]
}
6️⃣ Setting Up CloudFront for Global Distribution
Next, I used AWS CloudFront to speed up content delivery and reduce latency.
Opened CloudFront and created a new Distribution.
Chose S3 Bucket as the origin.
Configured caching and security settings.
AWS generated a CloudFront domain (e.g.,
xyz.cloudfront.net
), which I could use to access my resume globally.
7️⃣ Using a Custom Domain (Optional - Route 53)
- If I wanted my resume to be accessible via a custom domain (like
myresume.com
), I could purchase a domain via Route 53 and configure it to point to my CloudFront distribution.
🎯 Key Learnings
✅ How to host a static website on AWS S3
✅ How to make it globally accessible using CloudFront
✅ How to configure S3 bucket policies for public access
✅ How to integrate a custom domain using Route 53
🔹 What's Coming Next?
This is just the beginning! The next projects will include: 🔥 Deploying a serverless application with AWS Lambda
🔥 Set up secure user sign-up and sign-in using Amazon Cognito.
🔥 Containerised the app using Docker for consistent deployment.
🔥 And much more...
The projects I am documenting span from beginner to advanced levels, as outlined in my resume. Each project will introduce new AWS services and progressively increase in complexity. Keep following for more updates on my AWS journey!
💡 Join the Journey!
If you’re passionate about AWS and cloud computing, follow along! Drop your questions, share your experiences, and let’s build some awesome cloud projects together. 🚀
Stay tuned for the next project! 👀