Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

What can you do with AWS Lambda@Edge, exactly? Alex will discuss the most interesting use cases and a few preview-related limitations. You will learn how to execute serverless functions at CloudFront's Edge Locations to implement unique functionalities and optimize network latency.

Alex Casalboni

April 17, 2017
Tweet

More Decks by Alex Casalboni

Other Decks in Programming

Transcript

  1. 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
  2. Agenda What  is  Lambda@Edge? Benefits  and  use  cases Preview  &

     GA My  personal  experiment clda.co/lambda-­‐edge-­‐sea.le
  3. What  is  Lambda@Edge? How  does  it  work  and  how’s  it

     different  from  AWS  Lambda? clda.co/lambda-­‐edge-­‐sea.le
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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