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.
Request Flow
User Browser
Route 53
CloudFront + WAF
S3 (static)
API Gateway (dynamic)
Lambda
DynamoDB