Multi-Cloud High-Availability Resume Platform
Executive Summary
To demonstrate high-availability distributed systems engineering, I built and deployed an automated, multi-cloud static resume website operating concurrently across Amazon Web Services and Microsoft Azure. AWS CloudFront acts as the central global edge layer, serving content from an Amazon S3 static website origin while maintaining an automated failover origin pointing to Azure Blob Storage.
The architecture features automated origin failover across error codes (403, 404, 5xx), secure end-to-end TLS 1.3 encryption with AWS Certificate Manager, custom DNS routing via Amazon Route 53, and a continuous deployment pipeline driven by GitHub Actions that synchronizes dual-cloud storage and programmatically purges edge caches.
Architecture & Request Flow
- DNS Resolution: Amazon Route 53 routes inbound client traffic for
samuelojo.techdirectly to AWS CloudFront Anycast edge locations. - Edge Security & Handshake: CloudFront handles TLS termination using an ACM certificate configured for
TLSv1.2_2021, negotiating modern TLS 1.3 protocol handshakes. - Origin Grouping & Routing: Inbound requests hit a CloudFront Origin Group where Amazon S3 is defined as the primary origin and Azure Blob Storage (
$webstatic hosting) acts as the secondary standby. - Resilient Failover: If the primary S3 origin returns a 403, 404, or 5xx response code, CloudFront reroutes the client request to the Azure container origin without user-facing disruption.
- Automated CI/CD: Pushing code to GitHub executes a unified runner pipeline that uploads static builds simultaneously to S3 and Azure Blob Storage before executing a global CloudFront invalidation (
/*).
Key Technical Challenges Resolved
TLS & SNI Handshake Alignment
Resolved client-side SSL alert 40 failures by validating ACM certificate scopes in us-east-1,
explicitly registering apex (samuelojo.tech) and subdomain (www) Alternate Domain Names (CNAMEs),
and binding them under modern edge cipher suites.
Cross-Origin Case Sensitivity
Addressed path-resolution errors by harmonizing directory naming conventions across local POSIX filesystems, S3 bucket keys, and Azure storage containers, eliminating negative-cached 404s for static media assets.