← Back to Projects

Multi-Cloud High-Availability Resume Platform

Automated Cross-Cloud Redundancy & Edge Delivery across AWS and Microsoft Azure

AWS CloudFront Amazon S3 Azure Blob Storage Route 53 ACM (TLS 1.3) GitHub Actions

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

  1. DNS Resolution: Amazon Route 53 routes inbound client traffic for samuelojo.tech directly to AWS CloudFront Anycast edge locations.
  2. Edge Security & Handshake: CloudFront handles TLS termination using an ACM certificate configured for TLSv1.2_2021, negotiating modern TLS 1.3 protocol handshakes.
  3. Origin Grouping & Routing: Inbound requests hit a CloudFront Origin Group where Amazon S3 is defined as the primary origin and Azure Blob Storage ($web static hosting) acts as the secondary standby.
  4. 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.
  5. 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.