Slide 1

Slide 1 text

%FWFMPQFST*0 -B ୮಺༏لϞόΠϧΞϓϦαʔϏε෦ Ϋϥεϝιουגࣜձࣾ ⡥$MBTTNFUIPE *OD ೥݄೔ ࣮຿Ͱ࢖͏"84-BNCEB #cmdevio2016 #La

Slide 2

Slide 2 text

ࣗݾ঺հ • ୮಺༏ل • Ϋϥεϝιουגࣜձࣾ • ϞόΠϧΞϓϦαʔϏε෦ • αʔόαΠυ୲౰ 2 #cmdevio2016 #La

Slide 3

Slide 3 text

ϞόΠϧόοΫΤϯυάϧʔϓ • AWSͱiOS/Androidͷهࣄ͕ଟ͍Classmethod • ࢢ৔ͷมԽʹରԠͯ͠αʔόαΠυͷ։ൃ΋ ڧԽ • AWS্Ͱಈ͘APIαʔό΍WebΞϓϦͷ։ൃ • ্ཱͪ͛ظʹ͖ͭืूதʂ 3 #cmdevio2016 #La

Slide 4

Slide 4 text

ຊ୊ 4

Slide 5

Slide 5 text

Agenda • AWS Lambdaͱ࣮຿ • ࣮຿ͰͷϢʔεέʔε • LambdaͷTips • ࣮຿ʹ૊ΈࠐΉצॴ 5

Slide 6

Slide 6 text

AWS Lambdaͱ͸ • https://aws.amazon.com/jp/lambda/faqs/ • ొ࿥ͨ͠ϓϩάϥϜΛ࣮ߦͯ͘͠ΕΔ
 ϑϧϚωʔδυαʔϏε • EC2ͷΑ͏ͳ؅ཧ͢Βෆཁ • ϑϧϚωʔδυ • AWSͱͷ࿈ܞ͕ڧྗ • Πϕϯτιʔε 6 #cmdevio2016 #La

Slide 7

Slide 7 text

࣮຿ͱ͸ • ࣮ࡍͷ۩ମతͳ࢓ࣄ • https://kotobank.jp/word/࣮຿-521746 • ʮ੹຿ΛՌ͓ͨͯۚ͠Λ΋Β͏ʯ • ظݶ/είʔϓ/༧ࢉͷ͍͔͕ܾͭ͘·͍ͬͯΔ 7 #cmdevio2016 #La

Slide 8

Slide 8 text

ͪΐͬͱͰ΋LambdaΛ ࢖ͬͨ͜ͱ͕͋Δਓ 8

Slide 9

Slide 9 text

࣮຿ͰLambdaΛ ࢖͍ͬͯΔਓ 9

Slide 10

Slide 10 text

࣮຿ͰLambdaΛ ͕ͬͭΓ࢖͍ͬͯΔਓ 10

Slide 11

Slide 11 text

࣮຿ͰLambdaΛ࢖͏ͷ͸೉͍͠ʁ • Lambda͕ྑͦ͞͏ͳ͜ͱ͸෼͔Δ • EC2Ͱ͸ΦϯϓϨͱಉ͡Α͏ʹϓϩάϥϜΛ ࣮ߦ͢Δ͜ͱ͕Ͱ͖ͨ • Lambdaͷ࢖͍ํ͸ɺͦΕͱ͸ҟͳΔ • ೲظ͕ܾ·͍ͬͯΔͷͰԼखʹϋϚΔͱਏ͍ • ӡ༻࣌ʹ໰୊͕ग़ΔͱࠔΔ 11 #cmdevio2016 #La

Slide 12

Slide 12 text

͜ͷηογϣϯͷΰʔϧ • LambdaΛ࣮຿Ͱ࢖͏͖͔͚ͬʹͳΔ • ࣮຿ʹແཧͳ͘औΓೖΕΒΕΔઃܭͷ
 ͖͔͚ͬΛಘΔ 12 #cmdevio2016 #La

Slide 13

Slide 13 text

Agenda • AWS Lambdaͱ࣮຿ • ࣮຿ͰͷϢʔεέʔε • LambdaͷTips • ࣮຿ʹ૊ΈࠐΉצॴ 13

Slide 14

Slide 14 text

S3ϑΝΠϧૢ࡞ 14

Slide 15

Slide 15 text

S3ϑΝΠϧૢ࡞ • ϝλσʔλ෇༩ • αϜωΠϧ࡞੒ 15 #cmdevio2016 #La

Slide 16

Slide 16 text

CSVͷDynamoDBςʔϒϧԽ 16

Slide 17

Slide 17 text

CSVͷDynamoDBςʔϒϧԽ • S3ʹΞοϓϩʔυ͞ΕͨCSVϑΝΠϧΛ DynamoDBςʔϒϧʹॻ͖ࠐΉFunction • FunctionΛ࣮ߦ͢ΔFunctionͰಉ࣮࣌ߦ਺Λ
 ੍ޚ 17 #cmdevio2016 #La

Slide 18

Slide 18 text

CSVͷDynamoDBςʔϒϧԽ 18 #cmdevio2016 #La

Slide 19

Slide 19 text

CSVͷDynamoDBςʔϒϧԽ • ΋ͱ͸ΞϓϦͷػೳͱͯ͠ߟ͍͑ͯͨ • ࣌ؒͷ͔͔ΔॲཧͩͬͨͷͰLambdaԽ • workerͰ΋ྑ͔͕ͬͨLambdaͷํ͕
 ӡ༻͠ͳͯ͘ྑ͍ͿΜָ 19 #cmdevio2016 #La

Slide 20

Slide 20 text

ϞόΠϧΞϓϦ͔ΒݺͿAPI 20

Slide 21

Slide 21 text

ϞόΠϧΞϓϦ͔ΒݺͿAPI • APIαʔό͕୲͍ͬͯͨॲཧΛLambdaͰߦ͏ • DynamoDBʹ௚઀ॻ͖ࠐΉΑΓ΋༻్͕޿͍ • ϩδοΫΛޙ͔ΒมߋͰ͖Δ • ηΩϡϦςΟ্ͪΐͬͱ҆৺ 21 #cmdevio2016 #La

Slide 22

Slide 22 text

ϞόΠϧΞϓϦ͔ΒݺͿAPI 22 #cmdevio2016 #La

Slide 23

Slide 23 text

ϞόΠϧΞϓϦ͔ΒݺͿAPI 23 #cmdevio2016 #La

Slide 24

Slide 24 text

ϞόΠϧΞϓϦ͔ΒݺͿAPI • ݁ہɺཁ͕݅ᐆດͳஈ֊Ͱ͸Lambda࠾༻Λ
 ܾஅͰ͖ͳ͔ͬͨ • APIαʔόΛNode.jsͰॻ͍ͯਐΊΔ • ཁ͕݅ݻ·ͬͨΓɺLambdaͷػೳ֦ு΍
 ΞΫηε਺͕ݟ௨ͤͨΒLambdaʹ͢Δ
 ͔΋͠Εͳ͍ 24 #cmdevio2016 #La

Slide 25

Slide 25 text

σʔλͷऩू 25

Slide 26

Slide 26 text

σʔλͷऩू • KinesisʹLambdaͰσʔλΛS3ʹஷΊΔ • ஷΊͨσʔλ͸όονͰRDS΍Redshift΁ • PullܕͰىಈ͢ΔͷͰϨίʔυ؅ཧ͕ෆཁ • Lambdaͷػೳ֦ுͱڞʹมԽ 26 #cmdevio2016 #La

Slide 27

Slide 27 text

σʔλͷऩू 27 Firehoseొ৔લ #cmdevio2016 #La

Slide 28

Slide 28 text

σʔλͷऩू 28 Firehoseొ৔ޙ #cmdevio2016 #La

Slide 29

Slide 29 text

CloudFormation 29

Slide 30

Slide 30 text

CloudFormation • https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/ template-custom-resources-lambda.html 30 #cmdevio2016 #La

Slide 31

Slide 31 text

Agenda • AWS Lambdaͱ࣮຿ • ࣮຿ͰͷϢʔεέʔε • LambdaͷTips • ࣮຿ʹ૊ΈࠐΉצॴ 31

Slide 32

Slide 32 text

όʔδϣχϯάͱΤΠϦΞε 32

Slide 33

Slide 33 text

όʔδϣχϯάͱΤΠϦΞε • όʔδϣϯ • ಉ͡FunctionͰ΋൛͝ͱʹมΘΔARN • ΤΠϦΞε • ඥͮ͘όʔδϣϯΛมߋͰ͖ΔARN • ͜ΕΒΛ࢖ͬͯLambda FunctionΛ؅ཧ͢Δ 33 #cmdevio2016 #La

Slide 34

Slide 34 text

όʔδϣχϯάͱΤΠϦΞε 34 #cmdevio2016 #La

Slide 35

Slide 35 text

σϓϩΠ 35

Slide 36

Slide 36 text

σϓϩΠ • ϑΝΠϧΛzipͨ͠ΞϓϦέʔγϣϯόϯυϧ Λ࡞ͬͯΞοϓϩʔυ • Functionຊମ • ґଘϥΠϒϥϦ • aws-sdk΍aws-cliΛϥοϓ͢Δͱྑ͍ 36 #cmdevio2016 #La

Slide 37

Slide 37 text

σϓϩΠ 37 σϓϩΠύοέʔδʹؚΊΔϥΠϒϥϦͷऔಘ #cmdevio2016 #La

Slide 38

Slide 38 text

σϓϩΠ 38 σϓϩΠύοέʔδͷΞοϓϩʔυ #cmdevio2016 #La

Slide 39

Slide 39 text

σϓϩΠ • ϚωδϝϯτίϯιʔϧͰΤΠϦΞεͷ੾Γ ସ͑ 39 #cmdevio2016 #La

Slide 40

Slide 40 text

؂ࢹͱϦΧόϦ 40

Slide 41

Slide 41 text

؂ࢹͱϦΧόϦ • CloudWatchͰLambdaϝτϦΫεΛݟ͓ͯ͘ • ࣮ߦ݁Ռ͔Βҟৗ͕Θ͔Δͱϕετ • ҟৗ͕͋ͬͨΒϦτϥΠͰ͖ΔΑ͏ʹͯ͠
 ͓͘ 41 #cmdevio2016 #La

Slide 42

Slide 42 text

؂ࢹͱϦΧόϦ • Lambdaࣗମ͕མͪͨ͜ͱ͸ແ͍ • ↑ݸਓͷײ૝Ͱ͢ • ΞϓϦಉ༷ɺFunction಺ͷόά͔Βͷෆ۩߹ • ྫ֎Λर͑ͯͳ͔ͬͨɺͳͲ • ࣮ߦ݁Ռ͔Βෆ۩߹Λݕ஌ • ࣄલʹܾΊͨ௨ΓͷϦτϥΠͰରԠ 42 #cmdevio2016 #La

Slide 43

Slide 43 text

Ϧϛοτ 43

Slide 44

Slide 44 text

Ϧϛοτ • http://docs.aws.amazon.com/ja_jp/lambda/ latest/dg/limits.html • ࣮༻্͸ϝϞϦͱಉ࣮࣌ߦ਺ͱαΠζʹ஫ҙ • ಉظݺͼग़͠͸ௐ੔͞ΕΔͱΤϥʔ͕ฦΔ 44 #cmdevio2016 #La

Slide 45

Slide 45 text

LambdaόοΫΤϯυͷฒྻ଱ੑ 45

Slide 46

Slide 46 text

LambdaόοΫΤϯυͷฒྻ଱ੑ • Function͸ɺฒྻͤ͞ΒΕΔΑ͏ʹॻ͘લఏ • Lambdaࣗମ͸ྑ͍͕ɺόοΫΤϯυ͕ͦΕʹ ଱͑ΒΕͳ͍Մೳੑ͕͋Δ 46 #cmdevio2016 #La

Slide 47

Slide 47 text

LambdaόοΫΤϯυͷฒྻ଱ੑ • ରࡦ1: εέʔϥϒϧͳόοΫΤϯυΛ࢖͏ • DynamoDB • ରࡦ2: ฒྻ౓Λ੍ޚ͢Δ࢓૊ΈΛೖΕΔ • FunctionΛىಈ͢ΔFunctionΛઃ͚Δ 47 #cmdevio2016 #La

Slide 48

Slide 48 text

Lambdaͷඅ༻ 48

Slide 49

Slide 49 text

Lambdaͷඅ༻ • Lambdaࣗମ͸֨҆ͩ͠ɺແྉ࿮͕େ͖͍ • AWSτʔλϧͰͷࢼࢉΛ͓ͯ͘͠΂͖ • ࣮ࡍͷෛՙΛ͔͚ͯྉۚͷ্͕ΓํΛݟΔ 49 #cmdevio2016 #La

Slide 50

Slide 50 text

Lambdaͷඅ༻ • CloudWatch Logsͷ৔߹ • Function಺Ͱඪ४ग़ྗͨ͠಺༰͕Logsʹ
 อଘ͞Εͯɺͦ͜Ͱͷ՝͕ۚൃੜ͢Δ • DynamoDBͷ৔߹ • ΩϟύγςΟ௒͑Λ๷͙৔߹͸ଟΊʹઃఆ ͢Δඞཁ͕͋Γɺͦ͜Ͱ՝͕ۚൃੜ͢Δ 50 #cmdevio2016 #La

Slide 51

Slide 51 text

Agenda • AWS Lambdaͱ࣮຿ • ࣮຿ͰͷϢʔεέʔε • LambdaͷTips • ࣮຿ʹ૊ΈࠐΉצॴ 51

Slide 52

Slide 52 text

ͲͷॲཧΛLambdaʹ͢Δ͔ 52

Slide 53

Slide 53 text

Lambdaʹ͢Δॲཧ • ϏδωεϩδοΫҎ֎Λ୅ସ͢Δ৔߹ • ϏδωεϩδοΫΛ୅ସ͢Δ৔߹ • ӡ༻ิॿͰ࢖͏৔߹ • ఘΊΔ৔߹ 53 #cmdevio2016 #La

Slide 54

Slide 54 text

ϏδωεϩδοΫҎ֎Λ୅ସ͢Δ৔߹ • αϜωΠϧ࡞੒ɺϑΥʔϚοτม׵ͳͲ • ΞϓϦέʔγϣϯͷҡ࣋ʹෆՄܽͳػೳ • LambdaԽ͠΍͍͢ॲཧ • LambdaԽͷԸܙΛड͚΍͍͢ 54 #cmdevio2016 #La

Slide 55

Slide 55 text

ϏδωεϩδοΫΛ୅ସ͢Δ৔߹ • ैདྷAPIαʔό͕ߦ͍ͬͯͨॲཧΛ୅ସ͢Δ • Ұ൪ߴίετͳ෦෼͕ղܾ͢Δ • ཁ݅ʹΑͬͯ͸೉͔ͬͨ͠Γ͢Δ • Cognito΍APIGWΛซ༻͢Δ 55 #cmdevio2016 #La

Slide 56

Slide 56 text

ӡ༻ิॿͰ࢖͏৔߹ • CloudFormationͷΧελϜϦιʔεɺcronͷ ୅ସͳͲ • ෆ۩߹࣌΋ൺֱతΧόʔ͠΍͍͢ͷͰಋೖ͠ ΍͍͔͢΋͠Εͳ͍ 56 #cmdevio2016 #La

Slide 57

Slide 57 text

ఘΊΔ৔߹ • ࣮຿Ͱ͸Ϗδωεͷ੒ޭ͕༏ઌ͞ΕΔ͜ͱ͕ଟ͍ • ແཧʹ࢖͓͏ͱ͠ͳ͍ • Lambdaʹͩ͜ΘͬͯϏδωε͕ࣦഊͨ͠Β • ຊ຤స౗ • ఫୀ͢Δͱ͖ʹLambdaԽͷ༨஍Λ࢒͢ • LambdaରԠݴޠͰബ͍APIαʔό • όοΫΤϯυʹDynamoDB 57 #cmdevio2016 #La

Slide 58

Slide 58 text

ͲͷॲཧΛLambdaԽ͢Δ͔ • ӡ༻ิॿ͔ΒॳΊͯɺϏδωεϩδοΫҎ֎ ͷ୅ସΛ໨ࢦ͢ͷ͕ྑͦ͞͏ • ΞϓϦͷ୅ସͱͯ͠࢖͏ͷ͸ෑډ͕ߴ͍ • Ϗδωε΋ߟྀ͢Δͱঘྑ͠ 58 #cmdevio2016 #La

Slide 59

Slide 59 text

ෆ҆ʹඋ͑Δ 59

Slide 60

Slide 60 text

ෆ҆ʹඋ͑Δ • ࣦഊΛϋϯυϦϯάͰ͖Δͱ͜ΖͰߦ͏ • ӡ༻ٕज़ͷηΧϯμϦ • ࠷ॳ͸Lambdaͷ୅ସखஈΛߟ͓͑ͯ͘ • ؂ࢹͱτϥϒϧ࣌ͷ෮چखஈΛ๨Εͳ͍ 60 #cmdevio2016 #La

Slide 61

Slide 61 text

61 44 44 ؅ཧςʔϒϧ σʔλςʔϒϧ ςʔϒϧ໊ ૯਺ ࣮੷ classmethod.jp

Slide 62

Slide 62 text

62 45 45 ؅ཧςʔϒϧ σʔλςʔϒϧ ςʔϒϧ໊ ૯਺ ࣮੷ ͋Β͔͡ΊσʔλςʔϒϧΛ࡞੒͠ VTFS@JE OBNF TDPSF EBUB XSJUFશৼΓ classmethod.jp

Slide 63

Slide 63 text

63 46 46 ؅ཧςʔϒϧ σʔλςʔϒϧ ςʔϒϧ໊ ૯਺ ࣮੷ ॲཧྔ $47ϑΝΠϧͷߦ਺ ΛಡΈࠐΈ VTFS@JE OBNF TDPSF EBUB XSJUFશৼΓ classmethod.jp

Slide 64

Slide 64 text

64 47 47 ؅ཧςʔϒϧ σʔλςʔϒϧ ςʔϒϧ໊ ૯਺ ࣮੷ EBUB VTFS@JE OBNF TDPSF ؅ཧςʔϒϧʹ ૯਺Λొ࿥͓ͯ͘͠ EBUB XSJUFશৼΓ classmethod.jp

Slide 65

Slide 65 text

65 48 48 ؅ཧςʔϒϧ σʔλςʔϒϧ ςʔϒϧ໊ ૯਺ ࣮੷ EBUB VTFS@JE OBNF TDPSF BCDE σʔλΛ֨ೲͨ͠Β EBUB XSJUFશৼΓ classmethod.jp

Slide 66

Slide 66 text

66 49 49 ؅ཧςʔϒϧ σʔλςʔϒϧ ςʔϒϧ໊ ૯਺ ࣮੷ EBUB VTFS@JE OBNF TDPSF BCDE Χ΢ϯλΛՃࢉ ΞτϛοΫΧ΢ϯλ EBUB XSJUFશৼΓ classmethod.jp

Slide 67

Slide 67 text

67 50 50 ؅ཧςʔϒϧ σʔλςʔϒϧ ςʔϒϧ໊ ૯਺ ࣮੷ EBUB VTFS@JE OBNF TDPSF BCDE FGHI σʔλΛ֨ೲͨ͠Β EBUB XSJUFશৼΓ classmethod.jp

Slide 68

Slide 68 text

68 51 51 ؅ཧςʔϒϧ σʔλςʔϒϧ ςʔϒϧ໊ ૯਺ ࣮੷ EBUB VTFS@JE OBNF TDPSF BCDE FGHI Χ΢ϯλΛՃࢉ ΞτϛοΫΧ΢ϯλ EBUB XSJUFશৼΓ classmethod.jp

Slide 69

Slide 69 text

69 52 52 ؅ཧςʔϒϧ σʔλςʔϒϧ ςʔϒϧ໊ ૯਺ ࣮੷ EBUB VTFS@JE OBNF TDPSF BCDE FGHI શͯͷ੒ޭΛ֬ೝͨ͠Β EBUB XSJUFશৼΓ classmethod.jp

Slide 70

Slide 70 text

70 53 53 ؅ཧςʔϒϧ σʔλςʔϒϧ ςʔϒϧ໊ ૯਺ ࣮੷ EBUB VTFS@JE OBNF TDPSF BCDE FGHI SFBEશৼΓʹ͢Δ EBUB SFBEશৼΓ classmethod.jp

Slide 71

Slide 71 text

71 55 55 ؅ཧςʔϒϧ σʔλςʔϒϧ ςʔϒϧ໊ ૯਺ ࣮੷ EBUB VTFS@JE OBNF TDPSF BCDE ΋ࣦ͠ഊͨ͠Β EBUB XSJUFશৼΓ '"*-&% 9 classmethod.jp

Slide 72

Slide 72 text

72 56 56 ؅ཧςʔϒϧ σʔλςʔϒϧ ςʔϒϧ໊ ૯਺ ࣮੷ EBUB VTFS@JE OBNF TDPSF BCDE ਺͸Ұக͠ͳ͍ͷͰ EBUB XSJUFશৼΓ 㱠 '"*-&% classmethod.jp

Slide 73

Slide 73 text

73 57 57 ؅ཧςʔϒϧ σʔλςʔϒϧ ςʔϒϧ໊ ૯਺ ࣮੷ EBUB EBUB શͯ࡞Γ௚͢ VTFS@JE OBNF TDPSF EBUB XSJUFશৼΓ classmethod.jp

Slide 74

Slide 74 text

มԽʹඋ͑Δ 74

Slide 75

Slide 75 text

Lambdaػೳ௥Ճͷྺ࢙ • 2015/04/09 Ұൠެ։ • 2015/05/28 σϓϩΠύοέʔδͷS3ରԠ • 2015/06/15 JavaରԠ • 2015/07/09 APIGWରԠ • 2015/07/14 DynamoDB StreamsҰൠެ։ • 2015/10/08 Pythonɺόʔδϣϯɺ5෼ɺcron • 2016/02/11 VPCରԠ 75 http://aws.amazon.com/releasenotes/AWS-Lambda?browse=1 #cmdevio2016 #La

Slide 76

Slide 76 text

มԽʹඋ͑Δ • Lambdaͷػೳ௥Ճεϐʔυ͸଎͍ • ৽ػೳͰطଘΞϓϦΛLambdaʹ
 ੾Γग़ͨ͠ΓɺLambdaΛݮΒ͠ଓ͚Δ • ΞϓϦຊମͷςετ΍ྑ͍ઃܭΛҡ࣋͢Δ 76 #cmdevio2016 #La

Slide 77

Slide 77 text

77 Before After #cmdevio2016 #La

Slide 78

Slide 78 text

·ͱΊ 78

Slide 79

Slide 79 text

·ͱΊ • ͱΓ࣮͋͑ͣ຿ʹऔΓೖΕͯΈΑ͏ • ϏδωεΛՃ଎ͤ͞Δ࢖͍ํΛ͠Α͏ • ͜ͷձ৔Ͱ૬ஊ͠Α͏ • 3FΞʔΩςΫςΟϯά • 3F͓೰Έ૬ஊࣨ • ࠙਌ձ 79 #cmdevio2016 #La

Slide 80

Slide 80 text

80

Slide 81

Slide 81 text

No content