Slide 1

Slide 1 text

clda.co/sls-mul,-region 1/30/2018 How to build a regionally distributed Serverless architecture

Slide 2

Slide 2 text

About us Alex Casalboni @alex_casalboni Rupak Ganguly Enterprise Solu.ons Architect @ Serverless Inc. @rupakg Sr. So6ware Engineer @ Cloud Academy Inc. clda.co/sls-mul,-region

Slide 3

Slide 3 text

What is serverless compu,ng? Quite a necessary “disclaimer” clda.co/sls-mul,-region

Slide 4

Slide 4 text

Today’s topic What is this webinar about? What tools/technology? clda.co/sls-mul,-region

Slide 5

Slide 5 text

Agenda Serverless Web APIs Why going mul,-region? Live Demo Gotchas and Challenges Cost Analysis clda.co/sls-mul,-region

Slide 6

Slide 6 text

Serverless Web APIs Some context & reference architecture clda.co/sls-mul,-region

Slide 7

Slide 7 text

Serverless APIs on AWS Zero administra,on clda.co/sls-mul,-region Built-in elas,city Event-driven architecture Never pay for idle (or over-provision)

Slide 8

Slide 8 text

clda.co/sls-mul,-region [cloudcraft.co]

Slide 9

Slide 9 text

clda.co/sls-mul,-region [cloudcraft.co]

Slide 10

Slide 10 text

Edge-Op,mized API Endpoints It was the default un,l Nov 2017 clda.co/sls-mul,-region Managed CloudFront distribu-on Already “global”, but…

Slide 11

Slide 11 text

Serverless API (Yaml) clda.co/sls-mul,-region

Slide 12

Slide 12 text

Why going mul,-region? Pros & Cons of a “global” serverless app clda.co/sls-mul,-region

Slide 13

Slide 13 text

Mul,-region architectures on AWS 15+ AWS regions (and coun,ng!) clda.co/sls-mul,-region Independent and redundant components Increased availability and reliability

Slide 14

Slide 14 text

Serverless cross-region failover High Availability (Ac-ve-Ac-ve setup) clda.co/sls-mul,-region Regional fallback in case of large-scale disasters Improved overall Latency Latency-based rou-ng & Health Checks

Slide 15

Slide 15 text

Handling persistent data replica,on Amazon DynamoDB Global Tables (NoSQL) clda.co/sls-mul,-region Mul--region & Mul--master setup Automa,c data replica-on across regions (via streams) No code changes or app rewrite

Slide 16

Slide 16 text

clda.co/sls-mul,-region [cloudcraft.co]

Slide 17

Slide 17 text

Live Demo A sample app in acCon clda.co/sls-mul,-region

Slide 18

Slide 18 text

Sample app (API Design) clda.co/sls-mul,-region github.com/alexdebrie/serverless-mul.-region

Slide 19

Slide 19 text

Sample app (Stack) clda.co/sls-mul,-region Serverless Framework (v1.25.0) Two Lambda Func,ons, one DynamoDB Table Three AWS Regions (Frankfurt, Dublin, and Oregon) One API endpoint: hdps:/ /global.faas.website/hello

Slide 20

Slide 20 text

Sample app (Web UI) clda.co/sls-mul,-region hFps://map.global.faas.website

Slide 21

Slide 21 text

Gotchas and Challenges Let’s get technical! clda.co/sls-mul,-region

Slide 22

Slide 22 text

Serverless Framework Support serverless-domain-manager plugin clda.co/sls-mul,-region serverless-dynamodb-autoscaling plugin Mul,ple deployments (once per region, eventually in parallel) Not 100% CloudForma,on (bash scripts for cer,ficates, custom domains, global table, and latency records)

Slide 23

Slide 23 text

Amazon Cer,ficate Manager (ACM) One cer-ficate for each region (for APIG custom domain) clda.co/sls-mul,-region Semi-automa,c one-,me process (human interven,on) Automa,c renewal (no ac,on required)

Slide 24

Slide 24 text

Route53 Latency-based Rou,ng One CNAME record for each region clda.co/sls-mul,-region “Latency” rou,ng policy Route53 Health Checks

Slide 25

Slide 25 text

Regional endpoints Vs. Edge-op,mized endpoints (APIG) Regional endpoints don’t use CloudFront’s CDN (latency) clda.co/sls-mul,-region CloudFront’s cache might speed up your LBR endpoint * * It doesn’t work on the same custom domain (cer,ficates & DNS)

Slide 26

Slide 26 text

clda.co/sls-mul,-region CloudFront Cache Hit Edge-op,mized APIG Regional APIGs (LBR) CloudFront Cache Miss

Slide 27

Slide 27 text

DynamoDB Global Tables Only 5 regions supported for now clda.co/sls-mul,-region Tables must be empty to add a new region Don’t forget Auto Scaling (write capacity is shared!)

Slide 28

Slide 28 text

Cost Analysis Is mulC-region always more expensive? clda.co/sls-mul,-region

Slide 29

Slide 29 text

clda.co/sls-mul,-region Mono-region Mul,-region* * guess,mate for 2 regions

Slide 30

Slide 30 text

clda.co/sls-mul,-region Overall cost almost +30% Similar cost for Lambda and APIGateway DynamoDB cost ~2x Increased mul,-region costs * * guess,mate for 2 regions

Slide 31

Slide 31 text

clda.co/sls-mul,-region Is DDB always more expensive? * * excluding storage

Slide 32

Slide 32 text

clda.co/sls-mul,-region DDB Cost Increase (R=2)

Slide 33

Slide 33 text

clda.co/sls-mul,-region DDB Cost Increase (Formula) R = # of regions x = RCU / WCU y = cost increase in %

Slide 34

Slide 34 text

clda.co/sls-mul,-region DDB Cost Increase (R=2,3,5)

Slide 35

Slide 35 text

Thank you! clda.co/sls-mul,-region Q & A 1/30/2018