Skip to content

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

  1. CORS Configuration: Properly configuring CORS between CloudFront and API Gateway
  2. MkDocs + CloudFront: Setting use_directory_urls: false for compatibility
  3. DynamoDB Permissions: Correctly configuring IAM roles for Lambda
  4. 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, and sitemap.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