͕͜͜ਏ͍ΑαʔόʔϨε͕ͩࢲΓӽ͑ͨখּݪΈ͖ͭ / @yamitzky
View Slide
wಋೖwlαʔόʔϨεzͷશମਤw+9௨৴ࣾͷαʔόʔϨεϩάج൫ͷྫwΓӽ͑ͨฤw͕͜͜ਏ͍Αຊ൪ͱͷࠩw͕͜͜ਏ͍ΑϚωʔδυwਅʹΓӽ͑ΔαʔόʔϨε࣍
wখּݪΈ͖ͭ!ZBNJU[LZwใಓϕϯνϟʔʮ+9௨৴ࣾʯͷ 1ZUIPOc4DBMBc+BWB4DSJQUcػցֶशΤϯδχΞࣗݾհ
wখּݪΈ͖ͭ!ZBNJU[LZwใಓϕϯνϟʔʮ+9௨৴ࣾʯͷ 1ZUIPOc4DBMBc+BWB4DSJQUcػցֶशΤϯδχΞw48ࣗݾհ
ಋೖฤ
ࠓ͢lαʔόʔϨεzͷఆٛ
ࠓ͢lαʔόʔϨεzͷఆٛwશମΛؚΊͨʹ͍ͨ͠
wϩάج൫"1*ͳͲͰ΄ͲαʔόʔϨεΛ׆༻+9௨৴ࣾͷʮαʔόʔϨεϩάج൫ʯ
wैདྷͷΞϓϦέʔγϣϯʹൺͯɺ ΠϯϑϥʗϦιʔεʹର͢Δؔ৺͕গͳ͘ࡁΉwϦΫΤετ࣌ʹ͚ͩϦιʔεΛ֬อ͢Εྑ͍ͷͰɺ҆͘ͳΔ͕͋ΔwϚωʔδυΛΈ߹ΘͤͯΞϓϦέʔγϣϯΛΈཱͯΔαʔόʔϨεͷಛ
αʔόʔϨεWTαʔόʔϨε͡Όͳ͍ඇαʔόʔϨεࣄલʹܭࢉϦιʔεΛ֬อ͠ɺϓϩηεΛ্ཱ͓ͪ͛ͯ͘αʔόʔϨεܭࢉϦιʔε֬อͤͣɺ ཁٻ͕དྷͨΒϓϩηεΛ্ཱͪ͛ɺϦιʔεΛ֬อ͠ɺ͙͢ʹϓϩηε͕ࢮ͵$MVTUFS
ϩʔΧϧڥͱຊ൪ڥ͕ ҧͬͯਏ͍͕ͩࢲΓӽ͑ͨ
ྫ.BDͰֶతܭࢉ͢ΔϓϩάϥϜΛ࡞Δ·ͣিಥ͢Δ$ pip install numpy
σϓϩΠ͢Δͱى͜Δ͜ͱ
ྫ.BDͰֶతܭࢉ͢ΔϓϩάϥϜΛ࡞Δ·ͣিಥ͢Δ$ pip install numpy͢Ͱʹμϝ
w'BB4ී௨-JOVYͰ࡞ΒΕ͍ͯΔwOVNQZlίϯύΠϧz͕ඞཁͳϥΠϒϥϦwίϯύΠϧ͕ඞཁͳͷΛ.BD8JOEPXTͰ࡞ͬͯ-JOVYͰಈ͔ͳ͍ͳͥμϝͳͷ͔
w.BD্Ͱ-JOVYΛಈ͔ͤΔͷ͕͋ΔͲ͏͢Ε͍͍͔
wΞϓϦέʔγϣϯ%PDLFS্Ͱ࡞Γɺ ੜAEPDLFSDQAͯ͠σϓϩΠw"QFYTFSWFSMFTTͳͲͷσϓϩΠπʔϧΛ͏ͱΑΓྑ͍%PDLFSΛͬͨlαʔόʔϨεޓz։ൃdocker-compose.yml
w$3VTU(PͳͲͷίϯύΠϧͨ͠ όΠφϦͰɺ-BNCEB্Ͱಈ͔ͤΔwཁ͢Δʹ-JOVY্ͰΔͷ͕େࣄ͜Ε͕Ͱ͖Δͱɻɻɻ
wlαʔόʔϨεzϚωʔδυΛΈ߹ΘͤΔຊ൪ͱϩʔΧϧͷࠩ1BSU̎
wαʔόʔϨεͰॏ׆༻͢Δl4zl%ZOBNP%#zͳͲ044Ͱͳ͍wˠ$*ϩʔΧϧ։ൃͰࠔΔϚωʔδυͷ
ϚωʔδυΛϩʔΧϧ։ൃͰ͏ͳΒ݁γϛϡϨʔγϣϯͨ͠044Λ͏
wϚωʔδυl͍͍ͩͨzγϛϡϨʔγϣϯͰ͖ΔϓϩμΫτ͕ଘࡏ͢Δw%ZOBNP%#-PDBMɺGBLFTɺFUDʜϚωʔδυͷγϛϡϨʔγϣϯ044
w%ZOBNP%#Λຊ൪Ͱ͏ͷͱಉ͡Α͏ͳ69͕ಘΒΕΔ%ZOBNP%#-PDBMY(6*https://hub.docker.com/r/yamitzky/dynamodb-gui/
wςετ༻ͷ%ZOBNP%#ςʔϒϧͳͲΛ༻ҙͯ͠ɺͬͨ΄͏͕ྑ͍͜ͱ͋Δw͓ۚݖݶωοτϫʔΫͷؔͰ͑ͳ͍͜ͱ͋Δ͠ɺσόοάͷ͢͠͞ͷ͋Δී௨ʹ%ZOBNP%#4͏ͷμϝͳͷʁ
w"1*Λ։ൃ͢Δͱ͖ʹૺ۰͢ΔwαʔόʔϨε"1*ͷlమ൘z"1*(BUFXBZw"1*(BUFXBZϩʔΧϧʹଘࡏ͠ͳ͍ ˠαʔόʔϨεͰಈͨ͘Ίʹ࡞ͬͨ"1*Λ ϩʔΧϧͰͲ͏σόοά͢Δ͔ʁຊ൪ͱϩʔΧϧͷࠩ1BSU
αʔόʔϨε"1*Λ࡞ΔͳΒ݁ࠓ·Ͱ௨Γ ϑϨʔϜϫʔΫͰ࡞Δ
͍··Ͱ௨Γ࡞Δͱ8"'ࣗ࡞"1*ϩʔΧϧڥ8"'ࣗ࡞"1*αʔόʔϨεڥ$ python main.py -BNCEBͰಈ͔͢Ξμϓλʔ
1ZUIPOͷ߹'MBTL%KBOHPࣗ࡞"1*ϩʔΧϧڥ'MBTL%KBOHPࣗ࡞"1*αʔόʔϨεڥ84(*Λ-BNCEBͰಈ͔͢Ξμϓλʔ84(*
w1ZUIPOʹ͓͚Δʮαʔόʔʯͷඪ४ن֨ ΠϯλʔϑΣʔε ˠ3VCZʹ͓͚Δ3BDLతͳw'MBTL%KBOHPCPUUMF84(*ͱ͍͏ඪ४ͷ্ʹ࡞ΒΕ͍ͯΔ84(*ͱ
w͢ͰʹϥΠϒϥϦ͕͍͔ͭ͋͘ΔwIUUQTHJUIVCDPNBXTMBCTBXTTFSWFSMFTTFYQSFTTwIUUQTHJUIVCDPNTMBOLBXTHJwIUUQTHJUIVCDPN.JTFSMPV;BQQBw8"'ͷنΛ-BNCEBͷنʹม͢Δ͚ͩͳͷͰɺ͢Ͱʹ044͕ͳͯ͘ͳΜͱ͔ͳΔطଘͷϑϨʔϜϫʔΫPO-BNCEB
w%PDLFSΛ׆༻ͯ͠ɺαʔόʔϨεڥͱϩʔΧϧڥͷࠩΛݮΒͦ͏wطଘͷϑϨʔϜϫʔΫʹ͚ͬͯ"1*Λ࡞Ζ͏͜͜·Ͱͷ·ͱΊ
Ϛωʔδυ͕ਏ͍͕ͩࢲΓӽ͑ͨ
࣭-BNCEBσϓϩΠͨ͠Βɺ ͋ͱl͓·͔ͤzͳͷ͔ʁ
ʊਓਓਓਓਓਓਓਓਓਓਓʊʼɹ-BNCEBಥવͷࢮɹʻʉ:?:?:?:?:?:?:?:?:?:ʉ
w8"'84(*ͷ্ʹͤΕɺ "ࣾ(ࣾ.͕ࣾϛαΠϧ߈ܸ͞ΕͯͳΜͱ͔ͳΔ-BNCEBಥવͷࢮରࡦۓٸ࣌௨ৗͷαʔόʔͰΞϓϦέʔγϣϯΛಈ͔͢
࣭Ϛωʔδυͬͯোͳ͍Μ͚ͩͬʁ
wαʔόʔϨεͰҰ൪ͭΒ͔ͬͨࣄҊwࣗͷແྗ͞Λࢥ͍Δ,JOFTJTಥવͷΤϥʔ
wαʔόʔϨεͰҰ൪ͭΒ͔ͬͨࣄҊwࣗͷແྗ͞Λࢥ͍Δw̍िؒفͬͨΒͬͨ,JOFTJTಥવͷΤϥʔ
w4ʹো͕ى͖ͨΒʁ,JOFTJTʁ%ZOBNP%#ʁwͦͷͱ͖ɺσʔλͷܽଛଘࡏ͠ͳ͍ʁwোʹඋ͑ɺ༗ঈαϙʔτେࣄϚωʔδυͷোఆ͠Α͏
ਅʹΓӽ͑Δ αʔόʔϨε
wݱ࣮ɺʮαʔόʔϨεʹΫϥυࡇΓʯw-BNCEBʹଘࡏ͢Δ֤छ੍wϓϥΠϕʔτωοτϫʔΫͷ੍wύϑΥʔϚϯεͷ੍wˠΫϥυґଘʹϚωʔδυΏ͑ʹɺ ɹΓӽ͑Α͏͕ͳ͍ɾɾɾͷ͔ɾɾɾʁϚωʔδυΏ͑ͷݶք
w'BB4ͬͯl-BNCEBzͱ͔l$MPVE'VODUJPOz͚ͩͳͷ͔ʁw'BB4lΫϥυͷձࣾz͔͠ఏڙͰ͖ͳ͍ ͷͳͷ͔ʁwˠ࣮ɺͦΜͳ͜ͱͳ͍ͦͦɺαʔόʔϨεͬͯ
w#VJMEJOH4FSWFSMFTT"QQTXJUI%PDLFS࡞ΔαʔόʔϨεhttps://blog.docker.com/2016/06/building-serverless-apps-with-docker/͜͜ΛࣗͨͪͰ༻ҙ͢Δ͔ɺΫϥυ͕༻ҙ͢Δ͔ͷҧ͍
lαʔόʔϨεz࡞ΕΔ
wܭࢉϦιʔεͷϓʔϧΛΫϥυ͕࣋ͭͷ͔ɺ ࣗࣾͰ࣋ͭͷ͔ͷҧ͍wͪΖΜɺ͕ࣗؔ৺Λ࣋ͭඞཁͷ͋Δͷ ૿͑Δw+9௨৴ࣾͰɺ-BNCEBͱ&$4Λ͍͚ͯΔwˠlϚωʔδυzʹͩ͜ΘΔඞཁɺ࣮ͳ͍࡞ΔlαʔόʔϨεz
wࠓɺlαʔόʔϨεzΛӡ༻ͯ͠ਏ͔ͬͨͱɺ ͦͷղܾࡦΛհ͠·ͨ͠wαʔόʔϨεϚωʔδυɺࠇຐज़Ͱͳ͘ lͨͩͷ-JOVYzlͨͩͷίϯςφٕज़zͱଊ͑ɺΓӽ͑ΔwϚωʔδυͷαʔόʔϨεͱɺࣗࣾαʔόʔϨεɺ ͍͚͕େࣄwใಓϕϯνϟʔʮ+9௨৴ࣾʯΤϯδχΞืूதͰ͢ʂ·ͱΊ