clda.co/lambda-­‐edge-­‐milano
AWS  Lambda@Edge
Serverless  e  Originless  con  AWS  Lambda@Edge
5/18/2017
About  Me
@alex_casalboni
clda.co/lambda-­‐edge-­‐milano
Computer  Science  Background
Master  in  Sound  &  Music  Engineering
Sr.  So@ware  Engineer  &  Web  Developer
Cloud  Evangelist  @  Cloud  Academy
Agenda
What  is  Lambda@Edge?
Benefits  and  use  cases
Preview  &  GA
My  personal  experiment
clda.co/lambda-­‐edge-­‐milano
clda.co/lambda-­‐edge-­‐milano
What  is  Lambda@Edge?
Come  funziona  e  come  si  differenzia  da  AWS  Lambda?  
AWS  Lambda  &  Regions
clda.co/lambda-­‐edge-­‐milano
us-­‐east-­‐1
AWS  Lambda  &  Regions
clda.co/lambda-­‐edge-­‐milano
us-­‐east-­‐1 eu-­‐west-­‐1
AWS’s  CDN  &  PoPs
clda.co/lambda-­‐edge-­‐milano
70+  PoPs
Amazon  CloudFront
clda.co/lambda-­‐edge-­‐milano
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
Hits/Misses/Errors
clda.co/lambda-­‐edge-­‐milano
Lambda@Edge  Architecture
clda.co/lambda-­‐edge-­‐milano
CloudFront  Triggers
clda.co/lambda-­‐edge-­‐milano
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-­‐milano
Benefits  and  use  cases
Analisi  dei  casi  d’uso  più  interessanA
AWS  Lambda@Edge  Use  cases
clda.co/lambda-­‐edge-­‐milano
Request/Response  manipulaKon
Dynamic  content  generaKon
Pure  latency  opKmizaKon
1.  Request/Response  manipulaQon
clda.co/lambda-­‐edge-­‐milano
Custom  HTTP  headers
Adapt  to  client  capabiliKes
Add  Kmezone-­‐related  info
A/B  tesKng
URL  rewriKng  /  redirects
EncrypKon  at  the  Edge
2.  Dynamic  content  generaQon  *
clda.co/lambda-­‐edge-­‐milano
Custom  error  pages
Custom  signup  forms
Opzimized  JS  code  (Polyfill.io)
Dynamic  HTML
*  Never  hit  the  origin!
3.  Pure  latency  opQmizaQon  *
clda.co/lambda-­‐edge-­‐milano
401  errors  if  missing  auth
Edge-­‐based  logging
Custom  data  validaKon
Custom  data  transformaKon
*  Assuming  dynamic  origin
clda.co/lambda-­‐edge-­‐milano
Preview  &  GA
Quali  restrizioni  incontriamo  durante  l’anteprima  limitata,  e  cosa  cambierà?
LimitaQons  (preview  only)
clda.co/lambda-­‐edge-­‐milano
Max  50ms
Only  128MB  (RAM)
Only  1MB  of  code
Only  Node.js  4.3
Programming  model Only  1  trigger
LimitaQons  (permanent)
clda.co/lambda-­‐edge-­‐milano
Cold  starts
Only  Node.js
No  VPC
No  API  Gateway  distribuKons
Slow  propagaKon  (~5min)
No  real-­‐Kme  logging
No  DLQ Explicit  HTTP  convenKons
General  Availability  (soon!)
clda.co/lambda-­‐edge-­‐milano
HTTP  calls  /  AWS  SDK
Dynamic  Content!
Beier  (3rd-­‐party)  monitoring
More  RAM,  Kme,  and  storage
MulKple  triggers Beier  LocaKon  awareness
clda.co/lambda-­‐edge-­‐milano
Lambda@Edge  Pricing
$0.60  /  1M  calls  (requests)
$1.00  /  3M  calls  (duraKon)
No  Free  Tier
50ms  granularity
Example:  6M  calls  ~  $5.6
clda.co/lambda-­‐edge-­‐milano
My  personal  experiment
Finalmente  un  po’  di  codice  :)
Render  dynamic  HTML  with  Lambda@Edge
clda.co/lambda-­‐edge-­‐milano
<  origin-­‐less  demo  >
clda.co/lambda-­‐edge-­‐gist
clda.co/lambda-­‐edge-­‐demo
Grazie  =)
5/18/2017 clda.co/lambda-­‐edge-­‐milano
Domande?

Serverless Italy - Lambda@Edge (Preview)