seattle aws - lambda@edge (serverless & originless on aws)

24
clda.co/lambdaedgesea.le AWS Lambda@Edge (Preview) Serverless & Originless on AWS 4/17/2017

Upload: alex-casalboni

Post on 21-Apr-2017

81 views

Category:

Technology


2 download

TRANSCRIPT

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

clda.co/lambda-­‐edge-­‐sea.le

AWS  Lambda@Edge  (Preview)

Serverless  &  Originless  on  AWS

4/17/2017

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

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

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

Agenda

What  is  Lambda@Edge?

Benefits  and  use  cases

Preview  &  GA

My  personal  experiment

clda.co/lambda-­‐edge-­‐sea.le

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

What  is  Lambda@Edge?

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

clda.co/lambda-­‐edge-­‐sea.le

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

AWS  Lambda  &  Regions

us-­‐east-­‐1

clda.co/lambda-­‐edge-­‐sea.le

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

AWS  Lambda  &  Regions

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

clda.co/lambda-­‐edge-­‐sea.le

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

AWS’s  CDN  &  PoPs

70+  PoPs

clda.co/lambda-­‐edge-­‐sea.le

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

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

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

Hits/Misses/Errors

clda.co/lambda-­‐edge-­‐sea.le

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

Lambda@Edge  Architecture

clda.co/lambda-­‐edge-­‐sea.le

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

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

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

Benefits  and  use  cases

Use  cases  categorisa@on  and  analysis

clda.co/lambda-­‐edge-­‐sea.le

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

AWS  Lambda@Edge  Use  cases

Request/Response  manipulaQon

Dynamic  content  generaQon

Pure  latency  opQmizaQon

clda.co/lambda-­‐edge-­‐sea.le

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

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

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

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

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

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

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

Preview  &  GA

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

clda.co/lambda-­‐edge-­‐sea.le

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

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

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

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

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

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

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

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

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

My  personal  experiment

Finally  some  code  :)

clda.co/lambda-­‐edge-­‐sea.le

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

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

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

Thank  you  =)

Q  &  A

4/17/2017 clda.co/lambda-­‐edge-­‐sea.le