π AWS Cloud Resume Challenge β DevOps Edition

β¨ Introduction
The AWS Cloud Resume Challenge is a hands-on project designed to build and demonstrate real-world cloud skills by creating and deploying a resume website. This blog will walk you through my implementation of the challenge with a modern DevOps approach including CI/CD, Terraform, AWS services, and more.
π Problem Statement
Create a live resume website hosted on AWS using various cloud services while automating the infrastructure and deployment pipelines.
π§ High-Level Architecture
π§© What Cloud Resume Challenge Requires
A resume hosted on a public website
HTTPS via SSL
DNS management (Route 53 preferred)
JavaScript visitor counter via API Gateway + Lambda + DynamoDB
CI/CD pipelines
Infrastructure as Code (IaC)
β οΈ My Approach vs Official Challenge
The challenge suggests managing the domain via Route 53, but I already owned a domain through GoDaddy. Hence, I chose to manage the DNS using GoDaddy itself. Not only was this practical, but it was also more cost-effective while still integrating well with AWS services.
ποΈ Infrastructure Setup with Terraform
I split the Terraform project into modular files inside a folder called backend-terraform/
:
lambda.tf
β Defines the visitor count function.dynamodb.tf
β Creates thevisitorCounter
table.api-gateway.tf
β Defines the API endpoint.iam-role.tf
β Sets the permissions.providers.tf
andvariables.tf
β General config and inputs.
GitHub CI/CD Workflow:
Uses
terraform init
,plan
, andapply
automatically.Conditionally imports existing resources to avoid duplication.
π Tech Stack Used
Frontend: HTML, CSS, JavaScript
Backend: AWS Lambda (Python), DynamoDB, API Gateway
Hosting/CDN: S3, CloudFront
DNS: GoDaddy (instead of Route 53)
CI/CD: GitHub Actions
Infrastructure as Code: Terraform
π Frontend (Static Website Hosting)
The static frontend was written in HTML/CSS/JS and hosted on S3 with CloudFront for CDN and SSL support.
Visitor Counter: A JavaScript snippet calls the API Gateway which triggers a Lambda function to increment and retrieve visit counts from DynamoDB.
π CI/CD for Frontend
A GitHub Actions workflow was created to:
Sync code to S3 bucket on push
Invalidate CloudFront cache (optional)
No manual steps required β push to GitHub, and itβs live! β‘
π§ͺ Testing the Setup
β Visit www.ganeshinfo.life to view the live resume
β Check for HTTPS via CloudFront
β Check real-time visitor counter
β Test updates via GitHub push
π Learnings & Takeaways
Deep understanding of AWS services: S3, Lambda, DynamoDB, API Gateway
Practiced writing secure IAM roles and permissions
Hands-on CI/CD pipelines with GitHub Actions
Practical use of Terraform with real infrastructure
Efficient domain management via GoDaddy (cost-saving move!)
β GitHub Repositories:
Frontend: AWS-cloud-resume-challenge-frontend
Backend: AWS-Cloud-Resume-Challenge-backend
π¬ Final Thoughts
This challenge taught me how to architect, build, and ship cloud applications in a professional DevOps pipeline. Itβs more than just a resume β itβs a real-world application that demonstrates multiple cloud-native skills.
π₯ Want to collaborate or give feedback? Reach out on LinkedIn or check the GitHub repos!
Subscribe to my newsletter
Read articles from Venkatesh Vakamudula directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Venkatesh Vakamudula
Venkatesh Vakamudula
I'm Venkatesh, a DevOps enthusiast passionate about automating infrastructure and deploying full-stack applications with modern tools like Docker, Kubernetes, GitHub Actions, and Terraform. I love solving real-world problems with CI/CD pipelines, containerization, and cloud-native technologies. Currently sharing my journey and projects as I grow in the DevOps space π