Here’s twtech clear breakdown of CloudFront Functions vs. Lambda@Edge,
plus the best real-world use cases for each.
1.
Quick Differences
Feature |
CloudFront
Functions |
Lambda@Edge |
Execution Location. |
Runs at all edge locations in microsecond-scale |
Runs at edge locations (Viewer)
and regional edge caches (Origin) |
Runtime. |
JavaScript (lightweight, V8-based) |
Node.js, Python |
Max Execution Time. |
≤ 1 ms |
5 sec (Viewer), 30 sec (Origin) |
Memory. |
≤ 2 MB |
128 MB – 3,008 MB |
Package Size Limit. |
≤ 10 KB |
≤ 50 MB |
Cost. |
Cheaper |
More expensive |
Cold Starts. |
None (always warm) |
Possible |
Capabilities. |
Very fast header/cookie/URL
manipulation |
Heavy computation, API calls,
content modification |
2.
Best Use Cases
CloudFront
Functions (Ultra-light, sub-ms)
Run before/after cache at
Viewer level, with extreme speed.
- URL Rewrites & Redirects
- Change /old-path → /new-path
- Append query params (?lang=en)
- HTTP Header Manipulation
- Add/remove headers for security (e.g., CSP, HSTS)
- Set cache-control dynamically
- Simple A/B Testing
- Route 50% of users to /beta
- Geo-based Routing
- Redirect by country or region using CloudFront-Viewer-Country
- Lightweight Auth
- Validate JWT from cookies or headers (simple checks only)
Lambda@Edge
(Full-powered, ms–seconds)
Run before/after cache at
both Viewer & Origin levels.
- Complex Authentication
- OAuth flows, signed cookies, Cognito integration
- Dynamic Origin Selection
- Choose backend based on request path, country, or user
segment
- Content Personalization
- Inject user-specific HTML, JSON, or API results
- Heavy Response Transformations
- Modify HTML body, compress files, watermark images
- Integration with External APIs
- Call backend services before responding
- Custom Logging & Analytics
- Send request/response data to external logging services
3.
Decision Cheat Sheet
- Need <1 ms response time, simple changes, lowest
cost? → CloudFront Functions
- Need heavy logic, API calls, or origin manipulation? → Lambda@Edge
- Need both?
→ Yes, Chain them:
- CloudFront Function for fast routing.
- Lambda@Edge for deeper processing.
No comments:
Post a Comment