Cloud Resume Challenge: From PDF to AWS
Introduction
The Cloud Resume Challenge is a hands-on project originally created by Forrest Brazeal and designed to demonstrate cloud computing, web development, and DevOps skills. Instead of a traditional PDF resume, I decided to create an interactive experience that showcases my technical competencies in a practical way.
Want to take on the challenge yourself? Check out the official guide at cloudresumechallenge.dev
Architecture Overview
flowchart TD
%% User Flow
User[👤 User] --> R53[🌐 Route 53]
R53 --> CF[☁️ CloudFront CDN]
CF --> S3[📦 S3 Static Website]
%% Counter Flow
S3 --> JS[📜 JavaScript Counter]
JS --> API[🔌 API Gateway]
API --> Lambda[⚡ Lambda Function]
Lambda --> DDB[(🗄️ DynamoDB)]
%% CI/CD Flow
Dev[👨💻 Developer] --> GH[📚 GitHub Repository]
GH --> CB[🔨 CodeBuild]
CB --> S3
%% Styling
classDef userClass fill:transparent,stroke:#1976d2,stroke-width:3px,color:#1976d2
classDef awsClass fill:#ff9800,stroke:#f57c00,stroke-width:2px,color:#fff
classDef serverlessClass fill:#4caf50,stroke:#388e3c,stroke-width:2px,color:#fff
classDef devClass fill:#9c27b0,stroke:#7b1fa2,stroke-width:2px,color:#fff
classDef externalClass fill:#607d8b,stroke:#455a64,stroke-width:2px,color:#fff
class User userClass
class R53,CF,S3 awsClass
class API,Lambda,DDB serverlessClass
class CB devClass
class Dev,GH externalClass
The Challenge
Build a resume website that includes: - Static frontend hosted in the cloud - Database for visitor counter - API to handle visits - Infrastructure as Code - Automated CI/CD pipeline
Solution Architecture
Technologies Used
Frontend
- MkDocs Material: Static documentation framework
- HTML/CSS/JavaScript: Counter customization and functionality
- Markdown: Structured and maintainable content
Backend & Cloud Infrastructure
- AWS S3: Static website hosting
- AWS CloudFront: Global CDN distribution
- AWS Lambda: Serverless function for visitor counter
- AWS DynamoDB: NoSQL database for counter storage
- AWS API Gateway: REST endpoint for Lambda function
- AWS Route 53: DNS management
DevOps & Automation
- AWS CodeBuild: Automated build process
- AWS CloudFormation: Infrastructure as Code
- GitHub: Version control and pipeline trigger
Results and Metrics
Technical Achievements
- ✅ Fully serverless website
- ✅ 100% Infrastructure as Code
- ✅ Automated CI/CD pipeline
- ✅ Real-time visitor counter
- ✅ Global CDN distribution
- ✅ Minimal costs (< $5 USD/month)
Performance Metrics
- Load time: < 2 seconds
- Availability: 99.9%
- Global distribution: 200+ edge locations
- Total visits: [Dynamic counter on homepage]
Lessons Learned
Technical Challenges
- CORS Configuration: Properly configuring CORS between CloudFront and API Gateway
- MkDocs + CloudFront: Setting
use_directory_urls: false
for compatibility - DynamoDB Permissions: Correctly configuring IAM roles for Lambda
- Pipeline Debugging: Troubleshooting CodeBuild errors
Best Practices Applied
- Security: Least privilege principle in IAM
- Cost Optimization: Using serverless and pay-per-use services
- Reliability: Multi-AZ deployment with CloudFront
- Performance: Asset optimization and caching
Skills Developed
- Serverless architecture on AWS
- Infrastructure as Code with CloudFormation
- CI/CD with AWS Developer Tools
- Frontend development with MkDocs
- API development with Lambda and API Gateway
Advanced Monitoring & Error Analysis
As part of the project evolution, I implemented comprehensive CloudFront monitoring and error analysis:
Error Analysis Discovery
- Initial Issue: 37.78% 4xx error rate detected through CloudWatch metrics
- Root Cause: Missing standard web files (
robots.txt
,ads.txt
) causing bot errors - Investigation: Automated log analysis from S3 CloudFront logs using Python
Solutions Implemented
- Standard Web Files: Created
robots.txt
,ads.txt
, andsitemap.xml
- Real-time Monitoring: Lambda-based metrics API with hourly updates
- Automated Analysis: S3 log processing to identify error patterns and security threats
Results Achieved
- 80-90% reduction in 4xx errors expected
- Improved SEO through proper bot guidance
- Enhanced security by blocking malicious access attempts
- Real-time dashboard available at Live Metrics
This extension demonstrates advanced AWS monitoring, log analysis, and proactive problem-solving in production environments.
Conclusion
The Cloud Resume Challenge isn't just about creating an online resume; it's a practical demonstration of cloud computing, DevOps, and full-stack development skills. This project allowed me to apply theoretical knowledge in a real-world scenario and gain hands-on experience with AWS services.
Interested in implementing your own Cloud Resume Challenge? Start with Forrest Brazeal's official guide and feel free to contact me to discuss strategies and best practices.
Last updated: January 2025