clda.co/lambda-­‐edge-­‐london
AWS  Lambda@Edge  (Preview)
Serverless  &  Originless  on  AWS
4/5/2017
About  Me
@alex_casalboni
clda.co/lambda-­‐edge-­‐london
Computer  Science  Background
Master  in  Sound  &  Music  Engineering
Sr.  SoEware  Engineer  &  Web  Developer
Cloud  Evangelist  @  Cloud  Academy
Agenda
What  is  Lambda@Edge?
Benefits  and  use  cases
Preview  limitaKons
My  personal  experiment
clda.co/lambda-­‐edge-­‐london
What  is  Lambda@Edge?
How  does  it  work  and  how’s  it  different  from  AWS  Lambda?
clda.co/lambda-­‐edge-­‐london
AWS  Lambda  &  Regions
us-­‐east-­‐1
clda.co/lambda-­‐edge-­‐london
AWS  Lambda  &  Regions
us-­‐east-­‐1 eu-­‐west-­‐1
clda.co/lambda-­‐edge-­‐london
AWS’s  CDN  &  PoPs
70+  PoPs
clda.co/lambda-­‐edge-­‐london
Amazon  CloudFront
StaKc  content  (web  assets,  videos,  etc.)
Dynamic  content  (cache)
70+  Edge  LocaKons
Custom  SSL  &  domain  name
Cache  InvalidaKon
AnalyKcs  dashboard
Custom  origins  (e.g.  EC2)
Supports  cookies  &  querystrings
clda.co/lambda-­‐edge-­‐london
Hits/Misses/Errors
clda.co/lambda-­‐edge-­‐london
Lambda@Edge  Architecture
clda.co/lambda-­‐edge-­‐london
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-­‐london
Benefits  and  use  cases
Use  cases  categorisa@on  and  analysis
clda.co/lambda-­‐edge-­‐london
AWS  Lambda@Edge  Use  cases
Request/Response  manipulaKon
Dynamic  content  generaKon
Pure  latency  opKmizaKon
clda.co/lambda-­‐edge-­‐london
1.  Request/Response  manipulaQon
Custom  HTTP  headers
Adapt  to  client  capabiliKes
Add  Kmezone-­‐related  info
A/B  tesKng
URL  rewriKng  /  redirects
Cookies  manipulaKon
clda.co/lambda-­‐edge-­‐london
2.  Dynamic  content  generaQon  *
Custom  error  pages
Custom  signup  forms
Opzimized  JS  code  (Polyfill.io)
Dynamic  HTML
*  Never  hit  the  origin!
clda.co/lambda-­‐edge-­‐london
3.  Pure  latency  opQmizaQon  *
401  errors  if  missing  auth
Custom  edge-­‐based  logging
Custom  data  validaKon
Custom  data  transformaKon
*  Assuming  dynamic  origin
clda.co/lambda-­‐edge-­‐london
Preview  limitaKons
What  restric@ons  do  you  encounter  during  the  preview  phase?
clda.co/lambda-­‐edge-­‐london
LimitaQons  (preview  only)
Max  50ms
Only  128MB  (RAM)
Only  1MB  of  code
Only  Node.js  4.3
clda.co/lambda-­‐edge-­‐london
Slightly  different  
programming  model
Manual  handling  of  HTTP  
convenKons  (OPTIONS,  204,  etc.)
LimitaQons  (permanent)
No  HTTP  calls
No  AWS  SDK
No  VPC/DLQ  config
No  real-­‐Kme  logging
No  3rd-­‐party  monitoring
Slow  deploy  (up  to  15min)
clda.co/lambda-­‐edge-­‐london
My  personal  experiment
Finally  some  code  :)
clda.co/lambda-­‐edge-­‐london
Render  dynamic  HTML  with  Lambda@Edge
<  origin-­‐less  demo  >
clda.co/lambda-­‐edge-­‐london
clda.co/lambda-­‐edge-­‐gist
clda.co/lambda-­‐edge-­‐demo
Thank  you  =)
clda.co/lambda-­‐edge-­‐london
Q  &  A
4/5/2017

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