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)