Deploy CloudFront from day one for static assets. It’s effectively free at low traffic (1TB free tier) and gives you global performance without multi-region infrastructure.
Skip WAF until you see abuse. WAF adds $5/month minimum + per-request costs.
Use versioned filenames (app.abc123.js) from the start — never rely on invalidations.
CloudFront in front of Lambda Function URLs is often better than API Gateway. You get custom domains, caching, and WAF at CloudFront cost ($0.085/GB + $0.01/10K requests) instead of API Gateway cost ($1.00/million requests). For a startup doing 10M requests/month on small payloads: CloudFront = ~$10, HTTP API = $10, REST API = $35. But CloudFront gives you the caching layer for free.
Don’t use edge-optimized API Gateway endpoints. They silently create a CloudFront distribution you can’t configure. Use regional + your own CloudFront if you need CDN.
The free tier (1TB/month transfer, 10M requests) is generous. Most pre-PMF startups never exceed it. Don’t optimize what costs you $0.
CloudFront data transfer is covered by AWS Activate credits. If you have $100K in credits, don’t optimize CloudFront costs — optimize for developer velocity instead. Revisit when credits are within 6 months of expiring.