Build Story

Why This Site Runs Entirely on AWS

After completing the AWS Cloud Institute program, I wanted a portfolio that did more than list certifications: I wanted it to be proof. So instead of a template site on a page builder, this site is deployed with the same production AWS patterns showcased in the projects above: static hosting, a global CDN, managed DNS and TLS, and an automated, security-conscious deploy pipeline.

Challenge

Certificates prove you passed an exam. They don't prove you can run real infrastructure. I wanted a live site that visitors, and recruiters, could inspect end-to-end as evidence of applied cloud skill, not just a resume line.

Hosting and Delivery

The frontend is a hand-built static site synced to S3 and served globally through CloudFront, with gzip compression and HTTP/2 for fast loads anywhere.

DNS and TLS

The custom domain routes to CloudFront via CNAME records at the registrar, with a Certificate Manager (ACM) certificate handling HTTPS at the CloudFront edge so every visit is encrypted by default.

CI/CD Pipeline

Every push to main triggers a GitHub Actions workflow that syncs the site to S3 and invalidates the CloudFront cache automatically, with no manual upload steps, ever.

Security Hardening

The deploy pipeline originally used long-lived IAM access keys with broad admin permissions. I re-architected it to authenticate through short-lived IAM OIDC federation, scoped to a least-privilege role that can only touch this site's two buckets and one CloudFront distribution.

Continuous Improvement

While auditing the deployment, I found internal AWS config files were unintentionally being published alongside the site. I removed the exposure, purged the CDN cache, and rebuilt the deploy process to exclude infrastructure files going forward, the kind of real-world troubleshooting that doesn't show up on a certification.

Open Architecture Visual Back to Portfolio