Welcome viewer number: , thank you for visting!
Overview
This project is an implementation of the AWS Cloud Resume Challenge, demonstrating a
full-stack serverless application hosted on AWS. It shows the use of cloud technologies, CI/CD automation,
and infrastructure-as-code.
Live site: aaronke.com
Technologies Used
Frontend (Static Website)
- S3 — Hosts the static files (HTML, CSS, JavaScript).
- CloudFront — CDN for performance and security.
- Route 53 — Custom domain management.
- AWS Certificate Manager (ACM) — SSL/TLS certificates for HTTPS.
Backend (Serverless)
- Lambda — Serverless function that updates and retrieves visitor count from DynamoDB.
- DynamoDB — NoSQL database to store and track website visits.
CI/CD & Infrastructure as Code
- GitHub Actions — Automates deployment (upload to S3, CloudFront invalidation).
- Terraform — Defines and provisions cloud infrastructure.
How It Works
Frontend Flow
- End user visits the site (e.g.
aaronke.com).
- Route 53 resolves DNS to a CloudFront distribution.
- CloudFront serves cached static content from S3.
- The site calls a Lambda function to update and display the visitor count.
Backend Flow (Without API Gateway)
- The frontend invokes AWS Lambda directly using the AWS SDK.
- The Lambda function reads the count from DynamoDB, increments it, updates DynamoDB, and returns the new count.
CI/CD Deployment
On push to GitHub the Actions workflow uploads files to S3 and invalidates CloudFront so changes go live quickly. Terraform manages the infrastructure.
Disclaimer
The architecture diagram may show API Gateway, but this implementation does not use API Gateway.
Instead the frontend calls Lambda directly using the AWS SDK and the Lambda function has an IAM role
permitting read/write access to DynamoDB. This was chosen for cost efficiency and simplicity.
Diagram
If available, the architecture diagram is shown below: