Slide 1

Slide 1 text

8FCΞϓϦΤϯδχΞʹଃΔ ΞϓϦέʔγϣϯ։ൃʹ͓͚ΔαʔόʔϨεྲྀͷߟ͑ํ "844FSWFSMFTT5FDIηϛφʔ

Slide 2

Slide 2 text

ࣗݾ঺հ ࿨ా༞հ Ϋϥεϝιουגࣜձࣾ αʔόʔϨε։ൃ෦ΤϯδχΞ XBEEZ@V

Slide 3

Slide 3 text

खஈઌߦͷ෦ॺ͕Ͱ͖͔ͯΒ೥൒ʜ ͳͥαʔόʔϨεͰ΍Δͷ͔Λߟ͑ΔΑΓ͸ɺ
 αʔόʔϨεͰ΍ͬͯΈͯͲ͏͔ʹॏ఺Λஔ͍͍ͯΔ෦Ͱ͢
 ͳΜͱ͔ੜ͖࢒͍ͬͯ·͢ ։ൃऀࢹ఺ͰɺαʔόʔϨε։ൃͷ ັྗΛ఻͑ʹདྷ·ͨ͠

Slide 4

Slide 4 text

͝஫ҙ • εϥΠυ͸ެ։͠·͢ • ։ൃऀ޲͚Ͱ͢ • ίϯςφͷ࿩͸͠·ͤΜ • EC2 vs αʔόʔϨε ͱ͍͏ߏਤ͕ग़͖ͯ·͢ ͕ɺྑ͠ѱ͠ΛޠΔ΋ͷͰ͸ͳ͘ɺൺֱࡐྉͰ͢

Slide 5

Slide 5 text

લఏɿαʔόʔϨεͷఆٛ Ծ૝Խ Ϋϥ΢υ FaaS Ϛωʔδυ αʔϏε ΞϓϦέʔγϣϯ ϥϯλΠϜ ϛυϧ΢ΣΞ OS Ծ૝Խج൫ ϋʔυ΢ΣΞ Ϣʔβʔ Ϣʔβʔ Ϋϥ΢υϕϯμʔ Ϣʔβʔ Ϋϥ΢υϕϯμʔ Ϋϥ΢υϕϯμʔ αʔϏε੹೚Ϟσϧ

Slide 6

Slide 6 text

લఏɿαʔόʔϨεͷఆٛ Ծ૝Խ Ϋϥ΢υ FaaS Ϛωʔδυ αʔϏε ΞϓϦέʔγϣϯ ϥϯλΠϜ ϛυϧ΢ΣΞ OS Ծ૝Խج൫ ϋʔυ΢ΣΞ Ϣʔβʔ Ϣʔβʔ Ϋϥ΢υϕϯμʔ Ϣʔβʔ Ϋϥ΢υϕϯμʔ Ϋϥ΢υϕϯμʔ αʔϏε੹೚Ϟσϧ ͜ΕΒΛ૊Έ߹ΘͤΔ͜ͱ

Slide 7

Slide 7 text

ຊൃදͰલఏͱ͍ͨ͠ίϯςΩετ αʔόʔϨε։ൃεΩϧ͸։ൃऀʹͱͬͯັྗత Ձ஋ʹ௚݁͢Δ࡞ۀʹूத͠΍͍͢ 8FC"1*։ൃʹͱͲ·ΒͣɺϑϩϯτΤϯυ·Ͱ։ൃҙཉ ্ཱ͕ͪΔ ։ൃऀͱͯ͠ϨϕϧΞοϓͰ͖Δ

Slide 8

Slide 8 text

ࣗ෼ޠΓͰັྗΛ఻͑Δ 2016/03 ΫϥϝιೖࣾɺαʔόʔαΠυAPI։ൃ 2017/01 AWS Lambda ʹ;ΕΔ 2017/10 αʔόʔϨε։ൃ෦ઃཱ 2018/04 αʔόʔϨε։ൃ෦΁సଐ 2018/09 Serverlessconf Tokyo Ͱొஃ

Slide 9

Slide 9 text

ࣗ෼ޠΓͰັྗΛ఻͑Δ 2016/03 ΫϥϝιೖࣾɺαʔόʔαΠυAPI։ൃ 2017/01 AWS Lambda ʹ;ΕΔ 2017/10 αʔόʔϨε։ൃ෦ઃཱ 2018/04 αʔόʔϨε։ൃ෦΁సଐ 2018/09 Serverlessconf Tokyo Ͱొஃ 4DBMB 1MBZ'SBNFXPSL &$

Slide 10

Slide 10 text

ࣗ෼ޠΓͰັྗΛ఻͑Δ 2016/03 ΫϥϝιೖࣾɺαʔόʔαΠυAPI։ൃ 2017/01 AWS Lambda ʹ;ΕΔ 2017/10 αʔόʔϨε։ൃ෦ઃཱ 2018/04 αʔόʔϨε։ൃ෦΁సଐ 2018/09 Serverlessconf Tokyo Ͱొஃ "84 "OHVMBS J04

Slide 11

Slide 11 text

αʔόʔϨε։ൃ͸ɺ ʮ͜͜·Ͱཪଆ࡞ͬͨͳΒը໘΋࡞Γ͍ͨΘʯ ͱͳΔຐྗ͕͋Δ ։ൃऀͱͯ͠ϨϕϧΞοϓͰ͖Δ

Slide 12

Slide 12 text

ຊൃදͷഎܠ αʔόʔϨεʹ͍ͭͯͷٞ࿦ લఏɿ"84-BNCEBͱϚωʔδυαʔϏεͰΞϓϦΛ࡞Δ ٞ࿦ɿͲͷΑ͏ʹ։ൃ͢Δ͔ %ZOBNP%#ͷςʔϒϧઃܭΛ࢝Ίͱͨ͠ɺαʔϏε͝ͱͷ۩ମతͳ ࢖͍ํ͸͔ͳΓ৘ใ͕ॆ࣮͖ͯͨ͠ ҰํɺΞϓϦέʔγϣϯΛϑϧαʔόʔϨεͰ։ൃ͢Δͱ͖ͷࢦ਑ ΍ߟ͑ํɺૺ۰͕ͪ͠ͳ՝୊ʹର͢Δߟ࡯͕ੈʹग़͍ͯͳ͍ ݱ৔ Ͱղܾ͍ͯ͠Δ ͱ͍͏ҹ৅

Slide 13

Slide 13 text

໨తͱΞϓϩʔν ຊൃදͷ໨తɿ αʔόʔϨεͷಛੑΛ஌Δ 8FCΞϓϦΛϑϧαʔόʔϨεͰ։ൃ͢Δͱ͖ͷ՝୊Λग़͢ ՝୊ͷղܾࡦΛߟ࡯͢Δ αʔόʔϨεྲྀͷlߟ͑ํzΛಋ͘ ՝୊ղܾͷΞϓϩʔνɿ αʔόʔϨεͷಛੑΛߟྀͭͭ͠ɺ&$্ͰɺϑϨʔϜϫʔΫΛ࢖ͬͯ։ ൃ͢Δ৔߹ͱൺֱ͢Δ

Slide 14

Slide 14 text

࿩͢಺༰ w αʔόʔϨεͷಛੑΛ஌Δ w αʔόʔϨε։ൃ;Γ͔͑Γͱ՝୊ w ՝୊ղܾ w αʔόʔϨεྲྀߟ͑ํͷ੔ཧ NJO NJO NJO NJO

Slide 15

Slide 15 text

࿩͢಺༰ w αʔόʔϨεͷಛੑΛ஌Δ w αʔόʔϨε։ൃ;Γ͔͑Γͱ՝୊ w ՝୊ղܾ w αʔόʔϨεྲྀߟ͑ํͷ੔ཧ NJO NJO NJO NJO

Slide 16

Slide 16 text

αʔόʔϨεͷಛੑ ϏδωεՁ஋ͱ੒Ռ෺ΛҰகͤ͞΍͍͢ ϒϨΠΫεϧʔ͕ԕ͍ αʔϏε੍ݶͱ͏·͘෇͖߹͑͹ɺԸܙΛଘ෼ʹಘ ΒΕΔ

Slide 17

Slide 17 text

ϏδωεՁ஋ͱ੒Ռ෺ΛҰகͤ͞΍͍͢ -BNCEB'VODUJPOͱαʔϏεͷ૊Έ߹ΘͤͰ࣮૷͢ ΔͨΊɺಈ͔͢·Ͱͷख͕ؒஈҧ͍ʹগͳ͍ ͜Ε͸ɺಈ͔ͯ͠ΈΔ·ͰͲΜͳ੍໿ʹͿ͔ͭΔ͔Θ͔ Βͳ͍ɺαʔϏεΛͲ͏࢖͏ͷ͔΍ͬͯΈͳ͍ͱΠϝʔ δ͕༙͔ͳ͍ͱ͍͏ଆ໘ͱදཪҰମ ΢ΥʔλʔϑΥʔϧతͳਐΊํͰ͸ͳ͘ ࣗવͱػೳ͝ͱʹ։ൃ͢ΔྲྀΕʹͳΔ

Slide 18

Slide 18 text

ϒϨΠΫεϧʔ͕ԕ͍ ܦݧଇ͔ΒֶशۂઢͷԾઆΛͨͯͯΈͨ

Slide 19

Slide 19 text

ֶशۂઢͷԾઆ˞8FCΞϓϦͷ৔߹ ։ൃʹैࣄͨ࣌ؒ͠ ֶश཰ ϑϨʔϜϫʔΫར༻ EC2 αʔόʔϨε

Slide 20

Slide 20 text

ֶशۂઢͷԾઆ˞8FCΞϓϦͷ৔߹ ։ൃʹैࣄͨ࣌ؒ͠ ֶश཰ ୈϑΣʔζɿ αʔόʔϨεͷҖྗΛ஌Δ

Slide 21

Slide 21 text

ୈϑΣʔζɿ αʔόʔϨεͷ՝୊Λײ͡Δ ˞ࠓ೔࿩͢՝୊΋͜ͷ෦෼Ͱग़ͯ͘Δ΋ͷ͕΄ ͱΜͲͰ͢ ֶशۂઢͷԾઆ˞8FCΞϓϦͷ৔߹ ։ൃʹैࣄͨ࣌ؒ͠ ֶश཰

Slide 22

Slide 22 text

ֶशۂઢͷԾઆ˞8FCΞϓϦͷ৔߹ ։ൃʹैࣄͨ࣌ؒ͠ ֶश཰ ୈϑΣʔζɿ ϒϨΠΫεϧʔ͕དྷΔ͸ͣ

Slide 23

Slide 23 text

ϒϨΠΫεϧʔ͕ԕ͍ ൃදऀͷ৔߹ɿ αʔόʔϨε։ൃॳظɺͰ͖Δ͜ͱͷ๛෋͞ʹײಈ ൒೥ʙ೥ޙɺ੒ख़͍ͯ͠ͳ͍ΤίγεςϜͱ֨ಆɺ αʔϏε੍ݶͷߟྀͰເඳ͍ͨ΄ͲΞ΢τϓοτ͕ग़ ͤͳ͍ αʔόʔϨεͷͨΊʹҰਓͰຉ૸͢ΔͷͰ͸ͳ͘ɺप ΓΛר͖ࠐΉͱ΋͏Ұஈ֊ޮ཰͕͕͋Δ͜ͱʹؾͮ͘

Slide 24

Slide 24 text

αʔϏε੍ݶͱ͏·͘෇͖߹͏ ҰൠతͳαʔόʔϨεͷ࿩ͱͯ͠Α͘ฉ͘ɿ Ϧιʔεͷ্ݶ΍ػೳతͳ੍ݶΛड͚ೖΕΔ୅ΘΓʹɺεέʔ ϥϏϦςΟΛ͸͡Ίͱͨ͠αʔϏεͱͯ͠ͷϝϦοτΛڗडͰ ͖Δɻ ։ൃऀͱͯ͜͠ͷ࿩ΛͲ͏ࢥ͏͔ɿ ࣄ࣮ɻͨͩ͠ɺαʔϏεͱͯ͠ͷ੍ݶࣄ߲͕μΠϨΫτʹཁ݅ ΍࢓༷ʹӨڹ͢ΔɻυϝΠϯΤΩεύʔτΛר͖ࠐΜͰɺͲΜ ͳϏδωεՁ஋ΛੜΈग़͍͔ͨ͠Λఆٛ͢Δ࡞ۀ͕ඞਢɻ

Slide 25

Slide 25 text

αʔϏε੍ݶͱ͏·͘෇͖߹͏ ҰൠతͳαʔόʔϨεͷ࿩ͱͯ͠Α͘ฉ͘ɿ Ϧιʔεͷ্ݶ΍ػೳతͳ੍ݶΛड͚ೖΕΔ୅ΘΓʹɺεέʔ ϥϏϦςΟΛ͸͡Ίͱͨ͠αʔϏεͱͯ͠ͷϝϦοτΛڗडͰ ͖Δɻ ։ൃऀͱͯ͜͠ͷ࿩ΛͲ͏ࢥ͏͔ɿ ࣄ࣮ɻͨͩ͠ɺαʔϏεͱͯ͠ͷ੍ݶࣄ߲͕μΠϨΫτʹཁ݅ ΍࢓༷ʹӨڹ͢ΔɻυϝΠϯΤΩεύʔτΛר͖ࠐΜͰɺͲΜ ͳϏδωεՁ஋ΛੜΈग़͍͔ͨ͠Λఆٛ͢Δ࡞ۀ͕ඞਢɻ Կ͕͍͔ͨ͠ʁͱ͍͏࿩͕͋ͬͯ͸͡Ίͯɺ ͜ͷαʔϏε͕߹͏͔ʁ ੍ݶ͕ड͚ೖΕΒΕΔ͔ʁ ͷٞ࿦͕Ͱ͖Δ͔Β

Slide 26

Slide 26 text

࿩͢಺༰ w αʔόʔϨεͷಛੑΛ஌Δ w αʔόʔϨε։ൃ;Γ͔͑Γͱ՝୊ w ՝୊ղܾ w αʔόʔϨεྲྀߟ͑ํͷ੔ཧ NJO NJO NJO NJO

Slide 27

Slide 27 text

αʔόʔϨεͷৼΓฦΓ $BTF AWS Lambda ʹ৮ΕΔ $BTF σʔλऩूج൫ͷPoC։ൃ $BTF iOSΞϓϦͷҐஔ৘ใΛ׆༻ͨ͠CMS $BTF εϚʔτ୐഑ϙετ ͷIoT αʔόʔ

Slide 28

Slide 28 text

ɹɹɹɹ"84ͱαʔόʔϨεͱ๻ 2016/03 ΫϥϝιೖࣾɺαʔόʔαΠυAPI։ൃ 2017/01 AWS Lambda ʹ;ΕΔ 2017/10 αʔόʔϨε։ൃ෦ઃཱ 2018/04 αʔόʔϨε։ൃ΁సଐ 2018/09 Serverlessconf Tokyo Ͱొஃ ͜ͷ࿩ $BTF

Slide 29

Slide 29 text

΋ͱ΋ͱ&$Ͱ8FC"1*։ൃΛ΍͍ͬͯͨ Ծ૝௨՟؅ཧγεςϜͷ όοΫΤϯυ

Slide 30

Slide 30 text

ӡ༻։࢝ͯ͠ฏ࿨ͳ೔ʑʹಥવͷΞϥʔτ

Slide 31

Slide 31 text

ϩάΠϯϑΥʔϜ͕DoS߈ܸΛड͚͍ͯΔ

Slide 32

Slide 32 text

ϩάΠϯϑΥʔϜʹ%P4 ϩάͳͲΛݟͯΈΔͱ࣮ମ͸ύεϫʔυϦετ߈ܸΆ͍ ෛՙ͕Ұؾʹ্ঢɺ"VUP4DBMJOH(SPVQͷ࠷େ୆਺ Λͱ͍ͯͨͨ͠ΊϦιʔεރׇɺҰൠར༻ऀʹӨڹ $MPVE'SPOU8"'Λઃஔ͠*1ΞυϨεͰϒϩοΫ
 ౰࣌͸"-#ʹ8"'ΛઃஔͰ͖ͳ͔ͬͨ ͱ͜Ζ͕߈ܸऀ͸͙͢͞·*1ΞυϨεΛมߋɺΠλνͬ͝ ͜ʹ

Slide 33

Slide 33 text

"848"'ͷ*1ΞυϨεϒϩοΫΛࣗಈઃఆ͢Δ ᶃ WAF Λؔ࿈෇͚ ᶄ fluentd Ͱ nginx ͷ
 ɹϩάΛS3ʹू໿ ※౰࣌͸WAFͷϨʔτϦϛοτͳ͠ ᶅ ϧʔϧʹج͖ͮ
 ɹIPϒϩοΫ

Slide 34

Slide 34 text

"848"'ͷ*1ΞυϨεϒϩοΫΛࣗಈઃఆ͢Δ ᶃ WAF Λؔ࿈෇͚ ᶄ fluentd Ͱ nginx ͷ
 ɹϩάΛS3ʹू໿ ※౰࣌͸WAFͷϨʔτϦϛοτͳ͠ ᶅ ϧʔϧʹج͖ͮ
 ɹIPϒϩοΫ ਓ͕͔Γɺ೔Ͱߏங ࣍ͷ೔ʹຊ൪ద༻

Slide 35

Slide 35 text

͋Ε…αʔόʔϨε͘͢͝Ͷʁ

Slide 36

Slide 36 text

͜͜Ͱग़ͨ՝୊ ͳ͠ ଈޮੑͱεέʔϥϏϦςΟ Կ΋ͳ͍ͱ͖͸Կ΋͠ͳ ͍ ͕ٻΊΒΕΔϝϯςφϯεෆཁͳγεςϜʹαʔόʔ Ϩε͸͏͚ͬͯͭ ͍·΋ݩؾʹಈ͍͍ͯ·͢

Slide 37

Slide 37 text

ɹɹɹɹɹσʔλऩूج൫ͷ1P$։ൃ αʔόʔϨε։ൃ෦΁ సଐͯ͠࠷ॳͷ։ൃ Ͳ͏ಈ͘ͷ͔ݟ͍ͨ ͱ͍͏͜ͱͰ41"΋ ࡞ͬͨ αʔόʔଆ"1*
 ϑϩϯτଆ8FC
 ͱ͍͏ߏ੒ $BTF

Slide 38

Slide 38 text

͜͜Ͱग़ͨ՝୊ ͦ΋ͦ΋Ͳ͏΍ͬͯ-BNCEB'VODUJPOΛ։ൃ͢Ε͹ ྑ͍ͷ͔ʁ w "84ίϯιʔϧͰ1ZUIPOΛॻ͍ͨ w "84ίϯιʔϧ͸͙͢ʹ࣮ߦͰ͖ɺ͙͢ʹमਖ਼Ͱ͖ Δ఺Ͱ༏ल w ͨͩ͠ɺόʔδϣϯ؅ཧͳ͠ɺϑΝΠϧʹ͢΂ͯͷ ॲཧɺίʔυͷݟ௨͕͠ѱ͍ঢ়گʹͳͬͨ

Slide 39

Slide 39 text

J04ΞϓϦͷҐஔ৘ใΛ׆༻ͨ͠$.4 ෳ਺ͷೖྗιʔεɺ ෳ਺ͷग़ྗઌɺ 4UFQ'VODUJPOTͷ ׆༻ αʔόʔଆ"1*
 ϑϩϯτଆ8FC J04 
 AWS Cloud Mobile App Amazon Kinesis Data Firehose Amazon Kinesis Data Streams Amazon Cognito device table report table Amazon Pinpoint AWS Identity and Access Management (IAM) content location log Amazon Rekognition report api user files update location register report Center UI Create and push mission Center UI View result analysis & store create / push api AWS Step Functions 1. targeting location 2. create segment 3. order push list report get analysis result get reports of a mission login / signup stream gps report mission report image / movie push notification $BTF

Slide 40

Slide 40 text

͜͜Ͱग़ͨ՝୊ ΞϓϦέʔγϣϯઃܭɻೖྗιʔεͱग़ྗઌΛͲ͏දݱ ͢Δ͔ʁ w ͜͏ͳΔͱ"84ίϯιʔϧͰͷ։ൃ͸ෆՄೳ w -BNCEB'VODUJPOTͷ෼ׂͱσϓϩΠΛߟ͑Δඞ ཁ͕͋Γͦ͏

Slide 41

Slide 41 text

͜͜·Ͱ ։ൃʹैࣄͨ࣌ؒ͠ ֶश཰ ୈϑΣʔζɿ αʔόʔϨεͷҖྗΛ஌Δ

Slide 42

Slide 42 text

ୈϑΣʔζɿ αʔόʔϨεͷ՝୊Λײ͡Δ ˞ࠓ೔࿩͢՝୊΋͜ͷ෦෼Ͱग़ͯ͘Δ΋ͷ͕΄ ͱΜͲͰ͢ ͔͜͜Β ։ൃʹैࣄͨ࣌ؒ͠ ֶश཰

Slide 43

Slide 43 text

גࣜձࣾ-*9*-༷εϚʔτ୐഑ϙεταʔόʔ $BTF

Slide 44

Slide 44 text

"84*P5ͷར༻ ূ໌ॻͷδϟετΠ ϯλΠϜొ࿥ *P55PQJDTܦ༝Ͱͷ "84-BNCEBىಈ νʔϜ։ൃ ਓ ֎෦ϕϯμʔͱͷ݁ ߹ࢼݧ גࣜձࣾ-*9*-༷εϚʔτ୐഑ϙεταʔόʔ $BTF

Slide 45

Slide 45 text

αʔόʔϨεͭΒ͍

Slide 46

Slide 46 text

͜͜Ͱग़ͨ՝୊ w εςʔδ؀ڥͱຊ൪؀ڥͰσϓϩΠΛ෼͚͍ͨ৔߹Ͳ ͏͢Ε͹͍͍ΜͰ͔͢ʁ w Ͳ͜ΛͲ͏ςετ͢Ε͹ྑ͍ΜͰ͔͢ʁ w ಥવإΛग़͢"84αʔϏε੍ݶ w Α͠νʔϜ։ൃͩʂͰɺͲ͏΍ͬͯ෼୲͢Δͷʁ

Slide 47

Slide 47 text

σϓϩΠͲ͏͢Ε͹͍͍ͷ ؀ڥΛ۠ผ͢Δέʔε͕ҟͳΔ ಉ͡"84ΞΧ΢ϯτʹ։ൃ༻Ϧιʔεɺຊ൪༻ϦιʔεΛ໊ લͰ۠ผͯ͠σϓϩΠ͍ͨ͠έʔε ։ൃ༻"84ΞΧ΢ϯτɺຊ൪༻"84ΞΧ΢ϯτͱ෼͚ͯσ ϓϩΠ͍ͨ͠έʔε ؀ڥ͝ͱʹར༻͍ͨ͠ύϥϝʔλ͕͋Δ

Slide 48

Slide 48 text

Ͳ͜ΛͲ͏ςετ͢Ε͹ྑ͍ͷ ͱΓ͋͑ͣϢχοτςετ΍Ζ͏ "1*(BUFXBZͷೖྗΛϞοΫԽɺ%ZOBNP%#ͷ(FU*UFNΛ ϞοΫԽ +40/ͷม׵ॲཧΛςετ͍ͯ͠Δ͚ͩʜ ͍͟σϓϩΠ࣮ͯ͠ߦͯ͠ΈͨΒ*".ͷݖݶෆ଍Ͱ "DDFTT%FOJFEΤϥʔൃੜʗ ?P? ʘ

Slide 49

Slide 49 text

௚໘͢Δ"84αʔϏε੍ݶ ಈ࡞֬ೝதɺ%ZOBNP%#ͰṖͷΤϥʔൃੜ 1SPWJTJPOFE3FBE$BQBDJUZ6OJUΛΦʔόʔ͍ͯͨͨ͠Ί *P55PQJDTͷΞΫγϣϯͰΫϥΠΞϯτূ໌ॻͷ $MJFOU*Eऔಘࣦഊ )5514ϓϩτίϧͩͱূ໌ॻͷ$MJFOU*E͕औಘͰ͖ͳ͍࢓ ༷ ઃܭ΁ख໭Γ͢ΔཁҼͱͳͬͯ͠·ͬͨ

Slide 50

Slide 50 text

νʔϜ։ൃͷ෼୲Ͳ͏͢Δͷʁ αʔόʔ୲౰ɺ41"୲౰ɺސ٬૭ޱʁ ػೳ͝ͱʹ૭ޱʹ΋ͳͬͯαʔόʔ͔Β41"·Ͱ΍Δͷ ͕ྑ͍ʁ

Slide 51

Slide 51 text

ৼΓฦΓͰग़͖ͯͨ՝୊Λ੔ཧ

Slide 52

Slide 52 text

;Γ͔͑ΓͰग़͖ͯͨ՝୊Λ੔ཧ͢Δ Ͳ͏΍ͬͯίʔυΛॻ͔͘ ͲͷΑ͏ʹίʔυઃܭ͢Δ͔ Ͳ͏σϓϩΠ͢Δ͔ ςετͷॏ఺ΛͲ͜ʹஔ͔͘ ϓϩδΣΫτͷਐΊํͱνʔϜ։ൃํ๏

Slide 53

Slide 53 text

՝୊੔ཧฤɾ׬ʂ ղܾࡦΛߟ͍͑ͯ͘

Slide 54

Slide 54 text

࿩͢಺༰ w αʔόʔϨεͷಛੑΛ஌Δ w αʔόʔϨε։ൃ;Γ͔͑Γͱ՝୊ w ՝୊ղܾ w αʔόʔϨεྲྀߟ͑ํͷ੔ཧ NJO NJO NJO NJO

Slide 55

Slide 55 text

;Γ͔͑ΓͰग़͖ͯͨ՝୊Λ੔ཧ͢Δ Ͳ͏΍ͬͯίʔυΛॻ͔͘ ͲͷΑ͏ʹίʔυઃܭ͢Δ͔ Ͳ͏σϓϩΠ͢Δ͔ ςετͷॏ఺ΛͲ͜ʹஔ͔͘ ϓϩδΣΫτͷਐΊํͱνʔϜ։ൃํ๏ Ͳ͔͜Ͱݟͨ͜ͱ͕͋ΔΑ͏ͳ಺༰ ΘΕΘΕ͕&$ͰΞϓϦΛ։ൃ͢Δͱ͖ʹ௨ͬͨ &$Λ࢖͏৔߹͸Ͳ͏͢Δ͔͕ࢀߟʹͳΔͷͰ͸

Slide 56

Slide 56 text

Ͳ͏΍ͬͯίʔυΛॻ͔͘ ։ൃऀͷ࡞ۀޮ཰͕Ұ൪ྑ͍؀ڥΛ༻ҙ͢Δ ࢖͍׳Εͨ*OFMMJKΛ࢖͍ɺϩʔΧϧ؀ڥͰ։ൃ͢Δ ϩʔΧϧ࡞ۀ͕ऴΘͬͨΒ"84$PEF%FQMPZ΍DBQJTUSBOP ͰσϓϩΠ͢Δ (JU)VCͰόʔδϣϯ؅ཧ͢Δ &$

Slide 57

Slide 57 text

Ͳ͏΍ͬͯίʔυΛॻ͔͘ -BNCEB'VODUJPOΛ։ൃ͢Δ৔߹΋ಉ͡ lίʔυΛॻ͘zͱ͍͏࡞ۀʹ͓͍ͯ͸ɺϩʔΧϧͰ࢖͍ ׳Εͨ؀ڥͷ΋ͱߦ͏ͷ͕ޮ཰ྑ͍ *OUFMMJKΛར༻ͯ͠5ZQF4DSJQU OPEFKT ΍1ZUIPOΛ ॻ͘ "NB[PO$PEF$PNNJUΛ࢖ͬͯόʔδϣϯ؅ཧ "84$-*΍$MPVE'PSNBUJPOΛ࢖ͬͯσϓϩΠʢޙड़ʣ αόϨε

Slide 58

Slide 58 text

ͲͷΑ͏ͳίʔυઃܭΛߦ͏͔ ϑϨʔϜϫʔΫͷઃܭํ਑ʹै͏ ΫϦʔϯΞʔΩςΫνϟͳͲͷಋೖʹΑΔυϝΠϯϩδο Ϋͷ෼཭ &$

Slide 59

Slide 59 text

ͲͷΑ͏ͳίʔυઃܭΛߦ͏͔ -BNCEB'VODUJPOͷίʔυͰ΋ಉ͡ߟ͑ํ͕ద༻Ͱ͖Δ υϝΠϯϩδοΫΛ෼཭͢Δ͜ͱͰԿ͕͍ͨ͠ͷ͔Λදݱ Ͱ͖Δ ·ͨɺ୭͕-BNCEB'VODUJPOΛىಈͯ͠ɺ-BNCEB 'VODUJPO͕ͲͷαʔϏεΛݺͼग़͢ͷ͔ΛΘ͔Γ΍͘͢ ͓ͯ͘͠ ϨΠϠԽΞʔΩςΫνϟ͕Ϛονͦ͠͏ αόϨε

Slide 60

Slide 60 text

ઃܭྫ αόϨε IBOEMFST EPNBJOT JOGSBTUSVDUVSFT BQJHXVTFS report.ts FWFOUDPOUFOU report-put.ts EZOBNPEC report.ts T content.ts

Slide 61

Slide 61 text

ઃܭྫ αόϨε IBOEMFST EPNBJOT JOGSBTUSVDUVSFT BQJHXVTFS report.ts FWFOUDPOUFOU report-put.ts EZOBNPEC report.ts T content.ts VTFS޲͚ͷ"1*(BUFXBZ ͔Βىಈ͞ΕΔ SFQPSUϦιʔεʹؔ࿈͢Δॲ ཧ

Slide 62

Slide 62 text

ઃܭྫ αόϨε IBOEMFST EPNBJOT JOGSBTUSVDUVSFT BQJHXVTFS report.ts FWFOUDPOUFOU report-put.ts EZOBNPEC report.ts T content.ts %ZOBNP%#ʹର͢Δॲཧ SFQPSUςʔϒϧΛૢ࡞͢Δ

Slide 63

Slide 63 text

ͲͷΑ͏ͳίʔυઃܭΛߦ͏͔ ͦ͏͸ݴͬͯ΋θϩ͔ΒϓϩδΣΫτϑΥϧμ࡞Δͷ͸ͪΐͬͱେ มɺςϯϓϨʔτ͕΄͍͠ (JU)VCͰߏ੒ҊΛެ։͍ͯ͠·͢ 1ZUIPO QZUIPOMBNCEBUFNQMBUFIUUQTHJUIVCDPNDNXBEBZVTVLF QZUIPOMBNCEBUFNQMBUF 5ZQF4DSJQU UTBTIUUQTHJUIVCDPNDNXBEBZVTVLFUTBT αόϨε

Slide 64

Slide 64 text

Ͳ͏΍ͬͯσϓϩΠ͢Δ͔ ΞϓϦέʔγϣϯʢ+"3ʣ"OTJCMF1BDLFSͰ(PMEFO ".*Λͭ͘Δ3BLFpMFΛ༻ҙ ؀ڥͷҧ͍͸SBLF࣮ߦ࣌ͷίϚϯυϥΠϯม਺Ͱ۠ผ ؀ڥύϥϝʔλͷҧ͍͸؀ڥ͝ͱͷ஋Λ4ͳͲʹ͓͍͓ͯ ͖ɺ"OTJCMF࣮ߦ࣌ʹ&$ͷ؀ڥม਺΁ల։͢Δ ઃఆϑΝΠϧεΫϦϓτͰσϓϩΠͰ͖ΔΑ͏ʹ͢Δ ؀ڥͷࠩ෼͸ผ్ύϥϝʔλ༻ϑΝΠϧʹ੾Γग़͢ &$

Slide 65

Slide 65 text

Ͳ͏΍ͬͯσϓϩΠ͢Δ͔ &$ʹσϓϩΠ͢Δͱ͖ͱಉ͡ߟ͑ํ͕ద༻Ͱ͖Δ ઃఆϑΝΠϧ $MPVE'PSNBUJPOϕʔεͷ:".-ϑΝΠϧ εΫϦϓτ "84$-*ɺ4FSWFSMFTT'SBNFXPSLͳͲ ؀ڥࠩ෼ ؀ڥ͝ͱʹύϥϝʔλΛ༻ҙ αόϨε

Slide 66

Slide 66 text

ͦΕͰ΋ʜ $MPVE'PSNBUJPOςϯϓϨʔτΛ࢖ͬͯ؀ڥผʹσϓϩΠ͠Α ͏ͱࢥ͏ͱɺύϥϝʔλͷऔΓճ͠Ͱ޻෉͕ඞཁ σϓϩΠͨ͠ޙʹ&&ςετ͠Α͏ͱࢥ͏ͱɺ࣮ࡍʹར༻͍ͯ͠ Δύϥϝʔλ͕ඞཁ ؀ڥ͝ͱͷύϥϝʔλΛ4ZTUFNT.BOBHFS1BSBNFUFS 4UPSFʹ͋͛ͯ࢖͏ܰྔͳσϓϩΠπʔϧΛ࡞Γ·ͨ͠ʢએ఻ʣ αόϨε

Slide 67

Slide 67 text

͜͜·Ͱ੔ཧ Ͳ͏΍ͬͯίʔυΛॻ͔͘ ࢖͍׳ΕͨΤίγεςϜΛ׆༻͢Δ ͲͷΑ͏ʹίʔυઃܭ͢Δ͔ -BNCEB'VODUJPO͕Ͳ͔͜Βىಈ͞ΕɺͲͷαʔϏεΛݺͼग़͔͢Λ໌ ࣔ͢Δ Ͳ͏σϓϩΠ͢Δ͔ ઃఆϑΝΠϧεΫϦϓτ $MPVE'PSNBUJPOςϯϓϨʔτ"84$-*

Slide 68

Slide 68 text

ςετͷॏ఺ΛͲ͜ʹஔ͔͘ ॻ͍ͨίʔυ͕ΞϓϦέʔγϣϯͷ΄΅͢΂ͯ )551ϦΫΤετ΍σʔλϕʔεॲཧΛϞοΫԽɺॻ͍ ͨίʔυΛ໢ཏ͢Δ ϩʔΧϧʹ.Z42-΍μϛʔαʔϏεΛىಈ͠ɺ֤छ֎ ք΁ͷॲཧͷJNQMFNFOUBUJPO͕ҙਤͲ͓Γʹಈ࡞͠ ͍ͯΔ͜ͱΛ֬ೝͰ͖Δͱͳ͓Α͍ &$

Slide 69

Slide 69 text

ςετͷॏ఺ΛͲ͜ʹஔ͔͘ &$ΞϓϦέʔγϣϯͷςετͱ͸ߟ͑ํ͕ҟͳΔ αʔόʔϨεͷ৔߹ɺػೳ͝ͱͷ&&ςετʹॏ఺Λஔ͘ ࣮ࡍʹ"84ʹσϓϩΠͯ͠ಈ͔ͯ͠Έͳ͍ͱΘ͔Βͳ͍͜ͱ͕ ଟ͍ͨΊ *".ɺϦτϥΠॲཧͳͲʜ ҎԼͷྲྀΕ -BNCEB'VODUJPOͱ"84ϦιʔεΛ࣮ࡍʹσϓϩΠ͢Δ
 1BSBNFUFS4UPSF͔Βςετର৅ͱͳΔ؀ڥͷύϥϝʔλΛಡΈग़͢
 ϢʔεέʔεʹԊ࣮ͬͯࡍʹϦΫΤετΛߦ͍ςετ͢Δ αόϨε

Slide 70

Slide 70 text

ςετͷྫ QZUFTU αόϨε @pytest.fixture(scope='session', autouse=False) def ssm_parameters(request) -> SsmParameters: env = request.config.getoption('--env') yield make_parameters(env) def make_parameters(env) -> SsmParameters: # from SSM function_args = { 'Path': f'/{env}', 'Recursive': True, 'WithDecryption': True, 'MaxResults': 10, } response = SSM.get_parameters_by_path(**function_args) current_batch, next_token = extract_result(response) result = current_batch while next_token is not None: #࠶औಘ parameters_from_ssm = \ {extract_parameter_name(parameter): parameter['Value'] for parameter in result} ssm_parameters = SsmParameters(parameters_from_ssm) return ssm_parameters 1BSBNFUFS4UPSF͔Βσʔ λΛऔಘ͠ΦϒδΣΫτੜ੒ ϑΟΫενϟͱͯ͠ఆٛ͢Δ ͜ͱͰ֤ςετͰύϥϝʔλ ͕ར༻Ͱ͖Δ

Slide 71

Slide 71 text

νʔϜ։ൃ γεςϜͷڥքͱ։ൃϝϯόʔͷ୲౰ڥք͕Ұக͕ͪ͠ ސ٬૭ޱ
 αʔόʔʢ"1*ɺόονʣ୲౰
 8FCը໘୲౰
 ϞόΠϧΞϓϦ୲౰ ֤୲౰ɺಛʹαʔόʔαΠυ͸ߟ͑Δ͜ͱ͕ଟ͍ &$

Slide 72

Slide 72 text

αʔόʔαΠυ։ൃͰߟྀ͢Δ͜ͱ εέʔϧઃܭ σϓϩΠखॱͷ੔ཧ ΞʔΩςΫνϟઃܭɾϩδοΫ૊Έ্͛ 3VCZPO3BJMTͩͱ8FCը໘Λ࡞Δ͜ͱ΋ ϩάઃܭʢूੵɾΞϥʔτઃఆʣ &$ ଞʹख͕ճΒͳ͍

Slide 73

Slide 73 text

νʔϜ։ൃ &$ΞϓϦέʔγϣϯͷνʔϜ։ൃͱ͸ߟ͕͑ҟͳΔ ػೳϏδωεՁ஋͝ͱʹཁ݅ௐ੔ɾαʔόʔɾϑϩϯ τΛҰਓͷ։ൃऀ͕୲౰͢Δͱޮ཰͕ྑ͍ αʔόʔϨε։ൃͰࢧ഑తͳίϛϡχέʔγϣϯΦʔόʔ ϔουͷ࡟ݮʹͳΔʢޙड़ʣ αʔόʔαΠυʹશ౤ೖͤ͟ΔΛಘͳ͔ͬͨ։ൃऀͷϦ ιʔεΛɺϏδωε΍ผͷίϯϙʔωϯτʹׂ͚Δ αόϨε

Slide 74

Slide 74 text

ϓϩδΣΫτͷਐΊํ &$ͱൺֱ͢Δ΋ͷͰ͸ͳ͍͕ɺ͜Ε·Ͱͱ͸ߟ͑ํΛม ͑Δඞཁ͕͋Δ͔΋͠Εͳ͍ ఻౷తͳϓϩδΣΫτͷਐΊํ ཁ݅ௐ੔
 ࢓༷ௐ੔
 ։ൃ
 ςετ
 σϓϩΠ
 ϦϦʔεɺӡ༻ αόϨε

Slide 75

Slide 75 text

͜ΕΛαʔόʔϨε։ൃͰ΍Δ৔߹ ͢΂ͯͷ"84αʔϏεͷ੍ݶࣄ߲Λ೺Ѳ͓ͯ͘͠ ͢΂ͯͷ"84αʔϏεͷػೳΛ೺Ѳ͓ͯ͘͠ ཁ݅ͷ࣮ݱՄ൱Λ൑அ͢Δ ࢓༷ͷଥ౰ੑΛ൑அ͢Δ ͍͟։ൃ΁ αόϨε

Slide 76

Slide 76 text

ແཧ

Slide 77

Slide 77 text

ϓϩδΣΫτͷਐΊํ ݱ࣮తͳαʔόʔϨε։ൃͷεςοϓ ཁ݅ௐ੔"84ར༻αʔϏεબఆݕূཁ݅֬ఆ ࢓༷ௐ੔ΞʔΩςΫνϟઃܭ1P$։ൃ࢓༷֬ఆ ։ൃ ςετ σϓϩΠ ϦϦʔεɺӡ༻ αόϨε × ػೳ

Slide 78

Slide 78 text

ϓϩδΣΫτͷਐΊํ ݱ࣮తͳαʔόʔϨε։ൃͷεςοϓ ཁ݅ௐ੔"84ར༻αʔϏεબఆݕূཁ݅֬ఆ ࢓༷ௐ੔ΞʔΩςΫνϟઃܭ1P$։ൃ࢓༷֬ఆ ։ൃ ςετ σϓϩΠ ϦϦʔεɺӡ༻ αόϨε ͜͜ʹؔΘΔਓ਺͕ଟ͚Ε͹ ଟ͍΄Ͳίετ͕രൃ͢Δ υϝΠϯΤΩεύʔτͱ։ൃऀ ͷਓମ੍͕ཧ૝

Slide 79

Slide 79 text

αʔόʔϨε։ൃ੒ޭͷΧΪ ཁ݅ௐ੔"84ར༻αʔϏεબఆݕূཁ݅֬ఆ ࢓༷ௐ੔ΞʔΩςΫνϟઃܭ1P$։ൃ࢓༷֬ఆ ͜ͷεςοϓ͕ͦ΋ͦ΋ඞཁͰ͋Δ͜ͱΛεςʔΫϗϧ μʔʹཧղͯ͠΋Β͏ ͜ͷεςοϓͷͨΊͷظؒΛઃ͚Δ ։ൃऀ͕ϏδωεΛ೺Ѳ͠ɺ͜ͷεςοϓΛޮ཰Խɾল ྗԽ͢Δ αόϨε

Slide 80

Slide 80 text

՝୊ղܾฤͷ੔ཧ ߟ͑ํ ίʔσΟϯά؀ڥ ࢖͍׳ΕͨΤσΟλ όʔδϣϯ؅ཧ ࢖͍׳ΕͨΤσΟλ όʔδϣϯ؅ཧ ಉ͡ ίʔυઃܭ υϝΠϯϩδοΫ෼཭ ϨΠϠԽ ಉ͡ σϓϩΠ "OTJCMF 1BDLFS 3BLFλεΫ $MPVE'PSNBUJPO "84$-* 4FSWFSMFTT'SBNFXPSL ಉ͡ ςετͷॏ఺ ΞϓϦέʔγϣϯ ίʔυ ࣮ݱ͍ͨ͠ػೳ ҟͳΔ νʔϜ։ൃํ๏ γεςϜڥքͰ෼୲ ࣮ݱ͍ͨ͠ػೳͰ෼୲ ҟͳΔ ϓϩδΣΫτͷਐΊํ ػೳ͝ͱʹσϓϩΠαΠΫϧ Λճ͢ &$ αόϨε

Slide 81

Slide 81 text

࿩͢಺༰ w αʔόʔϨεͷಛੑΛ஌Δ w αʔόʔϨε։ൃ;Γ͔͑Γͱ՝୊ w ՝୊ղܾ w αʔόʔϨεྲྀߟ͑ํͷ੔ཧ NJO NJO NJO NJO

Slide 82

Slide 82 text

αʔόʔϨεྲྀͷߟ͑ํ ม͑ͳͯ͘ྑ͍΋ͷɺม͑Δͱޮ཰্͕͕Δ΋ͷΛ஌Δ खஈઌߦͱϕϯμʔϩοΫΠϯΛڐ༰͢Δ ·ΘΓΛר͖ࠐΜͰҰॹʹ։ൃͯ͠΋Β͏

Slide 83

Slide 83 text

ม͑ͳͯ͘ྑ͍΋ͷɺม͑Δͱޮ཰্͕͕Δ΋ͷΛ஌Δ αʔόʔϨε։ൃΛଓ͚͍ͯΔͱɺগͳ͔ΒͣนʹͿͪ͋ ͨΔ͜ͱʹͳΔ ͜Ε·Ͱഓ͖ͬͯͨϝλ஌͕ࣝ໾ʹཱͭ ͳʹ͔՝୊͕ग़ͨΒɺ͜Ε·Ͱ͸Ͳ͏͍͔ͯͨ͠ɺͳͥ͜ Ε·Ͱ͸՝୊Ͱ͸ͳ͔ͬͨͷ͔ͱ͍͏ࢥߟ࣮ݧ͕ޮՌత ୲౰ྖҬ͕ਫฏʹ޿͕ΔͷͰɺ ʢϏδωεՁ஋ͷߟ࡯ɺϑϩϯτΤϯυʣ ՝୊ʹ௚໘͢Δͷ͸౰ͨΓલ

Slide 84

Slide 84 text

खஈઌߦͱϕϯμʔϩοΫΠϯΛڐ༰͢Δ αʔόʔϨε։ൃ͸͔ͨ͠ʹಘҙͳྖҬɺۤखͳྖҬ͸͋Δ ͕ɺϦεΫΛආ͚ͯ෦෼తͳద༻ʹͷΈऴ͍࢝ͯͯ͠͸εΩ ϧΞοϓ͸๬Ίͳ͍ Α͘Θ͔ΒΜ͚ͲͱΓ͋͑ͣϑϧαʔόʔϨεͰɺ"84αʔ Ϗε͚ͩΛ࢖ͬͯ΍Δͧʂͱ͍͏૊৫୯ҐͰͷࢥ͍੾Γ΋࣌ ʹ͸ඞཁ ৽͍͠ύϥμΠϜ΁ͷ౤ࢿ͕ ։ൃऀͱͯ͠ͷεΩϧΞοϓʹͭͳ͕Δ

Slide 85

Slide 85 text

·ΘΓΛר͖ࠐΜͰҰॹʹ։ൃͯ͠΋Β͏ ϓϩμΫτΦʔφʔ΍Ϛωʔδϟʔ͕ϝοηϯδϟʔʹͳͬͯཁ݅ɾ ࢓༷ɾ࣮ݱՄ൱Λ΍ΓͱΓ͍ͯ͠Δঢ়گͰ͸αʔόʔϨε։ൃ͸ෆՄೳ ։ൃऀ͕Ϗδωεͷ͜ͱΛ஌ΓɺϓϩμΫτΦʔφʔ΍υϝΠϯΤΩε ύʔτ͕"84αʔϏεͷ͜ͱΛ஌Δ Կ͕͍͔ͨ͠ɺϢʔβʔʹͲ͏ͳͬͯ΄͍͔͠Λৗʹ໰͍ଓ͚Δ ϏδωεϢʔεέʔεΛ"84ʹϑΟʔυόοΫ͢Δ ϢʔβʔʹՁ஋Λಧ͚Δͱ͍͏఺Ͱ αʔόʔϨε͸࠷଎

Slide 86

Slide 86 text

ࢀߟॻ੶ɾར༻ͨ͠πʔϧ w DODGXHTFSWFSMFTT$/$'4FSWFSMFTT8(IUUQTHJUIVCDPNDODGXHTFSWFSMFTT w "844".IUUQTEPDTBXTBNB[PODPNKB@KQMBNCEBMBUFTUEHTFSWFSMFTT@BQQIUNM w .BLF(/61SPKFDUIUUQTXXXHOVPSHTPGUXBSFNBLF w QZUFTUEPDVNFOUBUJPOIUUQTEPDTQZUFTUPSHFOMBUFTU w DNXBEBZVTVLFUTBTUIUUQTHJUIVCDPNDNXBEBZVTVLFUTBT w "844FSWJDF-JNJUT"NB[PO8FC4FSWJDFTIUUQTEPDTBXTBNB[PODPNHFOFSBMMBUFTUHS