24
clda.co/lambdaedgesf AWS Lambda@Edge (Preview) Serverless & Originless on AWS 4/20/2017

Serverless Meetup SF - Lambda@Edge (Serverless & Originless on AWS)

Embed Size (px)

Citation preview

clda.co/lambda-­‐edge-­‐sf

AWS  Lambda@Edge  (Preview)

Serverless  &  Originless  on  AWS

4/20/2017

About  Me

@alex_casalboni

clda.co/lambda-­‐edge-­‐sf

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-­‐sf

What  is  Lambda@Edge?

How  does  it  work  and  how’s  it  different  from  AWS  Lambda?

clda.co/lambda-­‐edge-­‐sf

AWS  Lambda  &  Regions

us-­‐east-­‐1

clda.co/lambda-­‐edge-­‐sf

AWS  Lambda  &  Regions

us-­‐east-­‐1 eu-­‐west-­‐1

clda.co/lambda-­‐edge-­‐sf

AWS’s  CDN  &  PoPs

70+  PoPs

clda.co/lambda-­‐edge-­‐sf

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-­‐sf

Hits/Misses/Errors

clda.co/lambda-­‐edge-­‐sf

Lambda@Edge  Architecture

clda.co/lambda-­‐edge-­‐sf

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-­‐sf

Benefits  and  use  cases

Use  cases  categorisa@on  and  analysis

clda.co/lambda-­‐edge-­‐sf

AWS  Lambda@Edge  Use  cases

Request/Response  manipulaQon

Dynamic  content  generaQon

Pure  latency  opQmizaQon

clda.co/lambda-­‐edge-­‐sf

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-­‐sf

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-­‐sf

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-­‐sf

Preview  &  GA

What  about  Preview  limita@ons,  GA,  and  pricing?

clda.co/lambda-­‐edge-­‐sf

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-­‐sf

LimitaPons  (permanent)

Cold  starts

Only  Node.js

No  VPC

No  API  Gateway  distribuQons

Slow  propagaQon  (~5min)

No  real-­‐Qme  logging

No  DLQ Explicit  HTTP  convenQons

clda.co/lambda-­‐edge-­‐sf

General  Availability  (soon!)

HTTP  calls  /  AWS  SDK

Dynamic  Content!

Beier  (3rd-­‐party)  monitoring

More  RAM,  Qme,  and  storage

MulQple  triggers Beier  LocaQon  awareness

clda.co/lambda-­‐edge-­‐sf

Lambda@Edge  Pricing

$0.60  /  1M  calls  (requests)

$1.00  /  3M  calls  (duraQon)

No  Free  Tier

50ms  granularity

Example:  6M  calls  ~  $5.6

clda.co/lambda-­‐edge-­‐sf

My  personal  experiment

Finally  some  code  :)

clda.co/lambda-­‐edge-­‐sf

Render  dynamic  HTML  with  Lambda@Edge

<  origin-­‐less  demo  >

clda.co/lambda-­‐edge-­‐gist

clda.co/lambda-­‐edge-­‐demo

clda.co/lambda-­‐edge-­‐sf

Thank  you  =)

Q  &  A

4/20/2017 clda.co/lambda-­‐edge-­‐sf