AWS Multi-Tier Serverless Platform

Route 53 · CloudFront + WAF · Cognito · API Gateway · Lambda · DynamoDB

🌐

Route 53

DNS routing to CloudFront — domain: cliffworld.link

🛡️

CloudFront + WAF

Global CDN with Web Application Firewall; rate-limited to 300 requests per 5 minutes

☁️

S3 Static Hosting

Private bucket; assets served exclusively through CloudFront via Origin Access Control

🔐

Amazon Cognito

User Pool with hosted UI; authorization code + PKCE flow; JWT authorizer on API Gateway

API Gateway v2

HTTP API with throttling — 20 req/s burst 50; public and JWT-protected routes

λ

Lambda

Python 3.12 function — 256 MB, 5 s timeout, 20 reserved concurrency; no servers to manage

🗄️

DynamoDB

On-demand table; atomic ADD increments power the visitor counter below

Live Serverless API

Each click hits API Gateway → Lambda → DynamoDB and returns the live visitor count.

API Status: Connecting

Request Flow

1

User Browser

2

Route 53

3

CloudFront + WAF

4

S3 (static)
API Gateway (dynamic)

5

Lambda

6

DynamoDB

🔁 Deployed via GitHub Actions + OIDC — no long-lived AWS credentials; infrastructure managed with Terraform