πŸš€ 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 the visitorCounter table.

  • api-gateway.tf – Defines the API endpoint.

  • iam-role.tf – Sets the permissions.

  • providers.tf and variables.tf – General config and inputs.

GitHub CI/CD Workflow:

  • Uses terraform init, plan, and apply 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:

πŸ’¬ 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!

10
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 πŸš€