Hands-on AWS cloud engineering — problem, architecture, and results
I wanted to prove I could build and operate real cloud infrastructure end to end — not just write code, but host it securely, serve it over HTTPS on a custom domain, and automate every deployment. The goal was a live, production-grade site that doubles as evidence of hands-on AWS skills.
Static frontend in a private S3 bucket, served worldwide through CloudFront with an ACM TLS certificate and a Route 53 custom domain. A visitor counter runs on API Gateway → Python Lambda → DynamoDB. All infrastructure is defined in Terraform (split into frontend and backend modules) with remote state in S3 and DynamoDB state locking.
A live, fully automated serverless site running on 9 AWS services for roughly $0.50/month plus domain registration. Every push auto-deploys with no manual steps and no long-lived credentials anywhere.
Cloud spend is easy to lose track of, and idle resources quietly cost money. I wanted an automated tool that watches AWS spending, catches waste and anomalies early, and delivers plain-language recommendations without me having to log into the console.
An EventBridge schedule triggers a Python Lambda every morning. The function pulls Cost Explorer data, scans EC2/RDS/EBS and CloudWatch metrics for idle resources, detects cost anomalies, stores history in DynamoDB, and sends a report through SNS by email. The entire stack is defined in AWS CDK (TypeScript).
A hands-off FinOps report that lands in my inbox every morning with top spend, trends, a month-end forecast, waste findings with dollar estimates, and recommendations — running for about $0.90/month with zero external Lambda dependencies.