01 / Live
Cloud Resume Challenge
16-step cloud project · serverless AWS · multi-environment delivery
Challenge briefThe Cloud Resume Challenge is a 16-step project specification: earn a cloud certification; publish a styled HTML resume on S3 with HTTPS and custom DNS; add a JavaScript visitor counter backed by DynamoDB, API Gateway, Lambda, and Python; test the code; define the infrastructure as code; use source control and CI/CD; then document the work in a blog post. I used that specification as the baseline and extended it into separate test and production environments.
Implementation
- Built the Next.js and TypeScript static frontend and Python serverless backend across two AWS accounts; Terraform provisions approximately 40 resources per environment.
- Built a Python Lambda and DynamoDB visitor counter behind API Gateway, using atomic updates and unit tests with pytest and moto.
- Reused one Terraform codebase across test and production workspaces in separate AWS accounts, with state managed in HCP Terraform.
- Created GitLab pipelines using OIDC and short-lived AWS credentials for unit tests, environment plans and applies, frontend deployment, browser smoke tests, and test teardown.
Reliability & security
- GitLab jobs assume AWS roles through OIDC, so the pipeline does not store long-lived AWS access keys.
- CloudWatch alarms route through SNS and a notifier Lambda to Slack; the webhook is stored in SSM Parameter Store.
- CloudFront Origin Access Control keeps the S3 bucket private, while Terraform prevent_destroy rules protect the CI identity resources.