DEV Community

rabie
rabie

Posted on

I Built My Cloud Resume with Terraform, Amplify, Lambda & API Gateway β€” Here's How

Hi Devs! πŸ‘‹
As part of leveling up my cloud skills and showcasing my portfolio, I completed the Cloud Resume Challenge β€” and automated the entire infrastructure using Terraform, AWS Amplify, Lambda, and API Gateway. Here's the journey, the stack, and what I learned.

🎯 Project Goals
βœ… Host a static resume website

βœ… Add a dynamic visitor counter using a serverless backend

βœ… Deploy everything as code

βœ… Automate deployment with CI/CD

βœ… Add a custom domain using Route 53

πŸ”§ Tech Stack
Component Service / Tool
Frontend HTML, CSS, JavaScript via AWS Amplify
Backend AWS Lambda (Python) + API Gateway
Database AWS DynamoDB
Infra as Code Terraform
CI/CD Jenkins

🧱 Architecture Overview
[ Amplify (HTML/CSS/JS) ]
|
[ API Gateway ]
|
[ Lambda (Python) ]
|
[ DynamoDB Table ]

I used the front end from frontend

The frontend is hosted on AWS Amplify.

A Lambda function (written in Python) updates a visitor count in DynamoDB.

The API Gateway serves as the public endpoint for the frontend to call the Lambda.

All infrastructure is defined using Terraform and deployed via Jenkins.
Note: The project is ready to be fully run by Terraform alone

βš™οΈ CI/CD Automation
I configured a local Jenkins server to deploy both the frontend and backend automatically:

Terraform deploys the backend (Lambda, API Gateway, DynamoDB, etc.).

The output API Gateway URL is passed directly to Amplify using build-time environment variables.

This avoids hardcoding API URLs and keeps everything dynamic and reusable.

🌐 Custom Domain + CORS
I registered a free domain on DigitalPlatDev

hosted it on route 53 (0.5$/month)

I used Route 53 to configure my custom domain.

To make frontend-backend communication seamless, I added CORS configuration directly in the Lambda URL and API Gateway.

I debugged CORS issues using browser dev tools and made sure requests worked cross-origin.

🧠 What I Learned
Deep dive into AWS Amplify for static hosting and CI/CD.

Building and deploying serverless applications with Python Lambda.

Understanding how API Gateway integrates with Lambda.

Using Terraform to manage backend as code β€” repeatable and version-controlled.

Managing CORS headers and debugging with browser tools.

Tying everything together into a fully automated DevOps workflow.

πŸ“‚ Repos
πŸ”— Frontend (Amplify)

πŸ”— Infrastructure & Backend (Terraform + Lambda)

πŸ’¬ Let’s Connect!
If you’re working on similar projects or hiring for DevOps/cloud roles, I’d love to connect!

πŸ§‘β€πŸ’» My GitHub

🌐 My Resume Site

πŸ’Ό LinkedIn

Top comments (0)