Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

Available options to cache data in AWS Lambda and how to use them. CACHING IN AWS LAMBDA

Slide 3

Slide 3 text

We´re

Slide 4

Slide 4 text

Quick recap what AWS Lambda is and how it looks like. AWS LAMBDA

Slide 5

Slide 5 text

SIMPLE AWS LAMBDA FUNCTION: NODEJS

Slide 6

Slide 6 text

SIMPLE AWS LAMBDA FUNCTION: JAVA

Slide 7

Slide 7 text

DEPLOYMENT PROCESS Lambda Function Lambda Function Code Artifact AWS Lambda

Slide 8

Slide 8 text

REASONS FOR CACHING

Slide 9

Slide 9 text

BETTER PERFORMANCE Avoid slow API calls or computations. REDUCE COSTS Avoid calls which cost you money, e.g. to your database. REASONS

Slide 10

Slide 10 text

PAY FOR WHAT YOU USE

Slide 11

Slide 11 text

LAMBDA SCALING GET Name for X GET Name for X GET Name for X GET Name for X DynamoDB

Slide 12

Slide 12 text

TYPICAL CACHING SETUP CACHE Your app DynamoDB

Slide 13

Slide 13 text

"Tha)'s e-./. I've 3456 t8a9 - h:;

Slide 14

Slide 14 text

START CODING?!

Slide 15

Slide 15 text

INFRASTRUCTURE UNCERTAINTIES Functions are only instantiated when needed. Functions might be shut down at any time.

Slide 16

Slide 16 text

CUSTOM Setup a caching instance by your own. CACHING OPTIONS MANAGED Use a managed caching service. SIMPLE Cache data only inside Lambda functions.

Slide 17

Slide 17 text

Understanding the process how a Lambda function is called. LAMBDA EXECUTION PROCESS

Slide 18

Slide 18 text

LAMBDA EXECUTION PROCESS Response Time (ms) 0 250 500 750 1000 # Number Of Request 1 2 3 4 5 6 7 8 9 10 Cold start

Slide 19

Slide 19 text

Called by AWS Lambda LAMBDA EXECUTION PROCESS

Slide 20

Slide 20 text

LAMBDA EXECUTION PROCESS 1.) Only executed at cold start 2.) Executed each time

Slide 21

Slide 21 text

Cache data without using a caching service or library. SIMPLE CACHING

Slide 22

Slide 22 text

SIMPLE CACHING

Slide 23

Slide 23 text

SIMPLE CACHING

Slide 24

Slide 24 text

SIMPLE CACHING

Slide 25

Slide 25 text

SIMPLE CACHING

Slide 26

Slide 26 text

SIMILAR IN JAVA Field initialization, constructor, etc.

Slide 27

Slide 27 text

PRO TIP TIME FOR INITIALIZATION IS NOT CHARGED BY AWS.

Slide 28

Slide 28 text

PRO TIP

Slide 29

Slide 29 text

PRO TIP

Slide 30

Slide 30 text

PRO TIP

Slide 31

Slide 31 text

PRO TIP

Slide 32

Slide 32 text

PRO TIP

Slide 33

Slide 33 text

SIMPLE CACHING

Slide 34

Slide 34 text

AFTER No data synchronization between instances of your Lambda functions. BEFORE Low cost caching without performance overhead.

Slide 35

Slide 35 text

Use a bullet-proof caching library and host it by yourself. CUSTOM CACHING SERVICE

Slide 36

Slide 36 text

CUSTOM CACHING SETUP 1.) GET Name for X CACHE 2.) GET Name for X 3.) SET Name for X DynamoDB

Slide 37

Slide 37 text

"Whe; /4: la@;Ah B; EC2 in.9-nH6 Iit84:9 sJeA=fLM5g a .@On6), it's a@)QRat=HBSlL Sa@nHT6d i;94 B deV-:St .uOnX) M5 yo@[ <6fa@\9 V^_." https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html —

Slide 38

Slide 38 text

"By 3ea-:l), re.4:bce. I=t8M5 a V^_ -r6 ;o9 -cH6dsieSX f[QR wi)T=n B LahOd- V:5c)i45" https://docs.aws.amazon.com/lambda/latest/dg/vpc.html —

Slide 39

Slide 39 text

LAMBDA IN VPC ACCESS POSSIBLE, BUT LONGER STARTUP TIMES.

Slide 40

Slide 40 text

LAMBDA VPC STARTUP VPC Network Hardware Image: https://www.flaticon.com/free-icon/network-interface-card_969356 "A Serverless Journey: AWS Lambda Under the Hood" https://www.youtube.com/watch?v=QdzV04T_kec&t=2400

Slide 41

Slide 41 text

CUSTOM CACHING SETUP VPC Lambda Subnet Cache Subnet Public Subnet

Slide 42

Slide 42 text

Demo

Slide 43

Slide 43 text

Use a managed caching service instead of maintaining your own. MANAGED CACHING SERVICES

Slide 44

Slide 44 text

AWS ELASTICACHE REDIS + MEMCACHED

Slide 45

Slide 45 text

MAINTENANCE AWS is regularly taking care of updates. ADVANTAGES COMPATIBILITY Redis and Memcached well supported caching solutions. GET STARTED Easy setup and ready to go.

Slide 46

Slide 46 text

SIMILAR SETUP LIKE CUSTOM CACHING

Slide 47

Slide 47 text

Demo

Slide 48

Slide 48 text

SEBASTIAN HESSE Software Engineer | www.k15t.com | @seeebiii CHARLIE IS MY HOMEBOY CHARLIE IS MY HOMEBOY K15t Software Example code @ GitHub: https://github.com/seeebiii/caching-in-aws-lambda

Slide 49

Slide 49 text

NEW MEETUP SERIES: K15T TEAM TALKS TOPIC: GIT TOGETHER More information: https://www.meetup.com/de-DE/K15tTeamTalks/events/256232999/