clda.co/lambda-­‐edge-­‐sea.le
AWS  Lambda@Edge  (Preview)
Serverless  &  Originless  on  AWS
4/17/2017
About  Me
@alex_casalboni
clda.co/lambda-­‐edge-­‐sea.le
Computer  Science  Background
Sr.  SoDware  Engineer  &  Web  Developer
Cloud  Evangelist  @  Cloud  Academy
Serverless  Italy  Meetup  Co-­‐Organizer
Agenda
What  is  Lambda@Edge?
Benefits  and  use  cases
Preview  &  GA
My  personal  experiment
clda.co/lambda-­‐edge-­‐sea.le
What  is  Lambda@Edge?
How  does  it  work  and  how’s  it  different  from  AWS  Lambda?
clda.co/lambda-­‐edge-­‐sea.le
AWS  Lambda  &  Regions
us-­‐east-­‐1
clda.co/lambda-­‐edge-­‐sea.le
AWS  Lambda  &  Regions
us-­‐east-­‐1 eu-­‐west-­‐1
clda.co/lambda-­‐edge-­‐sea.le
AWS’s  CDN  &  PoPs
70+  PoPs
clda.co/lambda-­‐edge-­‐sea.le
Amazon  CloudFront
StaQc  content  (web  assets,  videos,  etc.)
Dynamic  content  (cache)
70+  Edge  LocaQons
Custom  SSL  &  domain  name
Cache  InvalidaQon
AnalyQcs  dashboard
Custom  origins  (e.g.  EC2)
Supports  cookies  &  querystrings
clda.co/lambda-­‐edge-­‐sea.le
Hits/Misses/Errors
clda.co/lambda-­‐edge-­‐sea.le
Lambda@Edge  Architecture
clda.co/lambda-­‐edge-­‐sea.le
CloudFront  Triggers
Viewer  Request
Viewer  Response
Origin  Request
Origin  Response
Before  cache  hit/miss
A8er  cache  hit/miss
Only  if  cache  miss,  before  forwarding
Only  if  cache  miss,  a8er  forwarding
clda.co/lambda-­‐edge-­‐sea.le
Benefits  and  use  cases
Use  cases  categorisa@on  and  analysis
clda.co/lambda-­‐edge-­‐sea.le
AWS  Lambda@Edge  Use  cases
Request/Response  manipulaQon
Dynamic  content  generaQon
Pure  latency  opQmizaQon
clda.co/lambda-­‐edge-­‐sea.le
1.  Request/Response  manipulaPon
Custom  HTTP  headers
Adapt  to  client  capabiliQes
Add  Qmezone-­‐related  info
A/B  tesQng
URL  rewriQng  /  redirects
EncrypQon  at  the  Edge
clda.co/lambda-­‐edge-­‐sea.le
2.  Dynamic  content  generaPon  *
Custom  error  pages
Custom  signup  forms
Opzimized  JS  code  (Polyfill.io)
Dynamic  HTML
*  Never  hit  the  origin!
clda.co/lambda-­‐edge-­‐sea.le
3.  Pure  latency  opPmizaPon  *
401  errors  (if  missing  auth)
Edge-­‐based  logging
Custom  data  validaQon
Custom  data  transformaQon
*  Assuming  dynamic  origin
clda.co/lambda-­‐edge-­‐sea.le
Preview  &  GA
What  about  Preview  limita@ons,  GA,  and  pricing?
clda.co/lambda-­‐edge-­‐sea.le
LimitaPons  (preview  only)
Max  50ms
Only  128MB  (RAM)
Only  1MB  of  code
Only  Node.js  4.3
Programming  model Only  1  trigger
clda.co/lambda-­‐edge-­‐sea.le
LimitaPons  (permanent)
Cold  starts
Only  Node.js
No  VPC
No  API  Gateway  distribuQons
Slow  propagaQon  (~5min)
No  real-­‐Qme  logging
clda.co/lambda-­‐edge-­‐sea.le
No  DLQ Explicit  HTTP  convenQons
General  Availability  (soon!)
HTTP  calls  /  AWS  SDK
Dynamic  Content!
Be.er  (3rd-­‐party)  monitoring
More  RAM,  Qme,  and  storage
clda.co/lambda-­‐edge-­‐sea.le
MulQple  triggers Be.er  LocaQon  awareness
Lambda@Edge  Pricing
$0.60  /  1M  calls  (requests)
$1.00  /  3M  calls  (duraQon)
No  Free  Tier
50ms  granularity
clda.co/lambda-­‐edge-­‐sea.le
Example:  6M  calls  ~  $5.6
My  personal  experiment
Finally  some  code  :)
clda.co/lambda-­‐edge-­‐sea.le
Render  dynamic  HTML  with  Lambda@Edge
<  origin-­‐less  demo  >
clda.co/lambda-­‐edge-­‐gist
clda.co/lambda-­‐edge-­‐demo
clda.co/lambda-­‐edge-­‐sea.le
Thank  you  =)
Q  &  A
4/17/2017 clda.co/lambda-­‐edge-­‐sea.le

Seattle AWS - Lambda@Edge (Serverless & Originless on AWS)