ここが辛いよサーバーレス だが私は乗り越えた #builderscon

ここが辛いよサーバーレス だが私は乗り越えた #builderscon

90dbd6fb1763a4b5f7236b72cba16a58?s=128

Mitsuki Ogasahara

August 05, 2017
Tweet

Transcript

  1. ͕͜͜ਏ͍ΑαʔόʔϨε ͕ͩࢲ͸৐Γӽ͑ͨ খּݪΈ͖ͭ / @yamitzky

  2. wಋೖ wlαʔόʔϨεzͷશମਤ w+9௨৴ࣾͷαʔόʔϨεϩάج൫ͷྫ w৐Γӽ͑ͨฤ w͕͜͜ਏ͍Αຊ൪ͱͷࠩ෼ w͕͜͜ਏ͍ΑϚωʔδυ wਅʹ৐Γӽ͑ΔαʔόʔϨε ໨࣍

  3. wখּݪΈ͖ͭ!ZBNJU[LZ wใಓϕϯνϟʔʮ+9௨৴ࣾʯͷ
 1ZUIPOc4DBMBc+BWB4DSJQUcػցֶश ΤϯδχΞ ࣗݾ঺հ

  4. wখּݪΈ͖ͭ!ZBNJU[LZ wใಓϕϯνϟʔʮ+9௨৴ࣾʯͷ
 1ZUIPOc4DBMBc+BWB4DSJQUcػցֶश ΤϯδχΞ w48 ࣗݾ঺հ

  5. ಋೖฤ

  6. ࠓ೔࿩͢lαʔόʔϨεzͷఆٛ

  7. ࠓ೔࿩͢lαʔόʔϨεzͷఆٛ

  8. ࠓ೔࿩͢lαʔόʔϨεzͷఆٛ wશମΛؚΊͨ࿩ʹ͍ͨ͠

  9. wϩάج൫΍"1*ͳͲͰ೥൒΄ͲαʔόʔϨε Λ׆༻ +9௨৴ࣾͷʮαʔόʔϨεϩάج൫ʯ

  10. wैདྷͷΞϓϦέʔγϣϯʹൺ΂ͯɺ
 ΠϯϑϥʗϦιʔεʹର͢Δؔ৺͕গͳ͘ࡁΉ wϦΫΤετ࣌ʹ͚ͩϦιʔεΛ֬อ͢Ε͹ྑ͍ ͷͰɺ҆͘ͳΔ܏޲͕͋Δ wϚωʔδυΛ૊Έ߹ΘͤͯΞϓϦέʔγϣϯΛ ૊ΈཱͯΔ αʔόʔϨεͷಛ௃

  11. αʔόʔϨεWTαʔόʔϨε͡Όͳ͍ ඇαʔόʔϨεࣄલʹܭࢉϦιʔεΛ֬อ͠ɺϓϩηεΛ্ཱ͓ͪ͛ͯ͘ αʔόʔϨεܭࢉϦιʔε͸֬อͤͣɺ
 ཁٻ͕དྷͨΒϓϩηεΛ্ཱͪ͛ɺϦιʔεΛ֬อ͠ɺ͙͢ʹϓϩηε͕ࢮ͵ $MVTUFS

  12. ϩʔΧϧ؀ڥͱຊ൪؀ڥ͕
 ҧͬͯਏ͍ ͕ͩࢲ͸৐Γӽ͑ͨ

  13. ྫ.BDͰ਺ֶతܭࢉ͢ΔϓϩάϥϜΛ࡞Δ ·ͣিಥ͢Δ໰୊ $ pip install numpy

  14. σϓϩΠ͢Δͱى͜Δ͜ͱ

  15. None
  16. ྫ.BDͰ਺ֶతܭࢉ͢ΔϓϩάϥϜΛ࡞Δ ·ͣিಥ͢Δ໰୊ $ pip install numpy ͢Ͱʹμϝ

  17. w'BB4͸ී௨-JOVYͰ࡞ΒΕ͍ͯΔ wOVNQZ͸lίϯύΠϧz͕ඞཁͳϥΠϒϥϦ wίϯύΠϧ͕ඞཁͳ΋ͷΛ.BD΍8JOEPXT Ͱ࡞ͬͯ΋-JOVYͰ͸ಈ͔ͳ͍ ͳͥμϝͳͷ͔

  18. w.BD্Ͱ-JOVYΛಈ͔ͤΔ΋ͷ͕͋Δ Ͳ͏͢Ε͹͍͍͔

  19. wΞϓϦέʔγϣϯ͸%PDLFS্Ͱ࡞Γɺ
 ੜ੒෺͸AEPDLFSDQAͯ͠σϓϩΠ w"QFY΍TFSWFSMFTTͳͲͷσϓϩΠπʔϧΛ ࢖͏ͱΑΓྑ͍ %PDLFSΛ࢖ͬͨlαʔόʔϨεޓ׵z։ൃ docker-compose.yml

  20. w$΍3VTU΍(PͳͲͷίϯύΠϧͨ͠
 όΠφϦͰ΋ɺ-BNCEB্Ͱಈ͔ͤΔ wཁ͢Δʹ-JOVY্Ͱ΍Δͷ͕େࣄ ͜Ε͕Ͱ͖Δͱɻɻɻ

  21. wlαʔόʔϨεz͸ϚωʔδυΛ૊Έ߹ΘͤΔ ຊ൪ͱϩʔΧϧͷࠩ෼1BSU̎

  22. wαʔόʔϨεͰॏ׆༻͢Δl4zl%ZOBNP%#z ͳͲ͸044Ͱ͸ͳ͍ wˠ$*΍ϩʔΧϧ։ൃͰࠔΔ Ϛωʔδυͷ໰୊఺

  23. ϚωʔδυΛϩʔΧϧ։ൃͰ࢖͏ͳΒ ݁࿦γϛϡϨʔγϣϯͨ͠044Λ࢖͏

  24. wϚωʔδυ͸l͍͍ͩͨzγϛϡϨʔγϣϯͰ ͖ΔϓϩμΫτ͕ଘࡏ͢Δ w%ZOBNP%#-PDBMɺGBLFTɺFUDʜ ϚωʔδυͷγϛϡϨʔγϣϯ044

  25. w%ZOBNP%#Λຊ൪Ͱ࢖͏ͷͱಉ͡Α͏ͳ69͕ ಘΒΕΔ %ZOBNP%#-PDBMY(6* https://hub.docker.com/r/yamitzky/dynamodb-gui/

  26. wςετ༻ͷ%ZOBNP%#ςʔϒϧͳͲΛ༻ҙ͠ ͯɺ௚઀࢖ͬͨ΄͏͕ྑ͍͜ͱ΋͋Δ w͓ۚ΍ݖݶ΍ωοτϫʔΫͷؔ܎Ͱ࢖͑ͳ͍͜ ͱ΋͋Δ͠ɺσόοάͷ͠΍͢͞ͷ໰୊΋͋Δ ී௨ʹ%ZOBNP%#΍4࢖͏ͷ͸μϝͳͷʁ

  27. w"1*Λ։ൃ͢Δͱ͖ʹૺ۰͢Δ໰୊ wαʔόʔϨε"1*ͷlమ൘z͸"1*(BUFXBZ w"1*(BUFXBZ͸ϩʔΧϧʹ͸ଘࡏ͠ͳ͍
 ˠαʔόʔϨεͰಈͨ͘Ίʹ࡞ͬͨ"1*Λ
 ϩʔΧϧͰͲ͏σόοά͢Δ͔ʁ ຊ൪ͱϩʔΧϧͷࠩ෼1BSU

  28. αʔόʔϨε"1*Λ࡞ΔͳΒ ݁࿦ࠓ·Ͱ௨Γ
 ϑϨʔϜϫʔΫͰ࡞Δ

  29. ͍··Ͱ௨Γ࡞Δͱ͸ 8"' ࣗ࡞"1* ϩʔΧϧ؀ڥ 8"' ࣗ࡞"1* αʔόʔϨε؀ڥ $ python main.py

    -BNCEBͰಈ͔͢ Ξμϓλʔ
  30. 1ZUIPOͷ৔߹ 'MBTL%KBOHP ࣗ࡞"1* ϩʔΧϧ؀ڥ 'MBTL%KBOHP ࣗ࡞"1* αʔόʔϨε؀ڥ 84(*Λ-BNCEB Ͱಈ͔͢Ξμϓλʔ 84(*

  31. w1ZUIPOʹ͓͚Δʮαʔόʔʯͷඪ४ن֨ Πϯ λʔϑΣʔε 
 ˠ3VCZʹ͓͚Δ3BDLతͳ w'MBTL΋%KBOHP΋CPUUMF΋84(*ͱ͍͏ඪ ४ͷ্ʹ࡞ΒΕ͍ͯΔ 84(*ͱ͸

  32. w͢ͰʹϥΠϒϥϦ͕͍͔ͭ͋͘Δ wIUUQTHJUIVCDPNBXTMBCTBXT TFSWFSMFTTFYQSFTT wIUUQTHJUIVCDPNTMBOLBXTHJ wIUUQTHJUIVCDPN.JTFSMPV;BQQB w8"'ͷن໿Λ-BNCEBͷن໿ʹม׵͢Δ͚ͩͳͷ Ͱɺ͢Ͱʹ044͕ͳͯ͘΋ͳΜͱ͔ͳΔ طଘͷϑϨʔϜϫʔΫPO-BNCEB

  33. w%PDLFSΛ׆༻ͯ͠ɺαʔόʔϨε؀ڥͱϩʔ Χϧ؀ڥͷࠩ෼ΛݮΒͦ͏ wطଘͷϑϨʔϜϫʔΫʹ৐͚ͬͯ"1*Λ࡞Ζ͏ ͜͜·Ͱͷ·ͱΊ

  34. Ϛωʔδυ͕ਏ͍ ͕ͩࢲ͸৐Γӽ͑ͨ

  35. ࣭໰-BNCEB͸σϓϩΠͨ͠Βɺ
 ͋ͱ͸l͓·͔ͤzͳͷ͔ʁ

  36. ʊਓਓਓਓਓਓਓਓਓਓਓʊ ʼɹ-BNCEBಥવͷࢮɹʻ ʉ:?:?:?:?:?:?:?:?:?:ʉ

  37. w8"'΍84(*ͷ্ʹ৐ͤΕ͹ɺ
 "ࣾ΍(ࣾ΍.͕ࣾϛαΠϧ߈ܸ͞Εͯ΋ͳΜ ͱ͔ͳΔ -BNCEBಥવͷࢮରࡦ ۓٸ࣌͸௨ৗͷαʔόʔͰ ΞϓϦέʔγϣϯΛಈ͔͢

  38. ࣭໰Ϛωʔδυͬͯো֐ͳ͍Μ͚ͩͬʁ

  39. wαʔόʔϨεͰҰ൪ͭΒ͔ͬͨࣄҊ wࣗ෼ͷແྗ͞Λࢥ͍஌Δ ,JOFTJTಥવͷΤϥʔ

  40. wαʔόʔϨεͰҰ൪ͭΒ͔ͬͨࣄҊ wࣗ෼ͷແྗ͞Λࢥ͍஌Δ w̍िؒفͬͨΒ௚ͬͨ ,JOFTJTಥવͷΤϥʔ

  41. w4ʹো֐͕ى͖ͨΒʁ,JOFTJT͸ʁ %ZOBNP%#͸ʁ wͦͷͱ͖ɺσʔλͷܽଛ͸ଘࡏ͠ͳ͍ʁ wো֐ʹඋ͑ɺ༗ঈαϙʔτ΋େࣄ Ϛωʔδυͷো֐͸૝ఆ͠Α͏

  42. ਅʹ৐Γӽ͑Δ
 αʔόʔϨε

  43. wݱ࣮໰୊ɺʮαʔόʔϨεʹΫϥ΢υࡇΓʯ w-BNCEBʹଘࡏ͢Δ֤छ੍໿ wϓϥΠϕʔτωοτϫʔΫͷ੍໿ wύϑΥʔϚϯεͷ੍໿ wˠΫϥ΢υґଘʹϚωʔδυΏ͑ʹɺ
 ɹ৐Γӽ͑Α͏͕ͳ͍ɾɾɾͷ͔ɾɾɾʁ ϚωʔδυΏ͑ͷݶք

  44. w'BB4ͬͯl-BNCEBzͱ͔l$MPVE'VODUJPOz ͚ͩͳͷ͔ʁ w'BB4͸lΫϥ΢υͷձࣾz͔͠ఏڙͰ͖ͳ͍
 ΋ͷͳͷ͔ʁ wˠ࣮͸ɺͦΜͳ͜ͱͳ͍ ͦ΋ͦ΋ɺαʔόʔϨεͬͯ

  45. w#VJMEJOH4FSWFSMFTT"QQTXJUI%PDLFS ࡞ΔαʔόʔϨε https://blog.docker.com/2016/06/building-serverless-apps-with-docker/ ͜͜Λࣗ෼ͨͪͰ༻ҙ͢Δ͔ɺΫϥ΢υ͕༻ҙ͢Δ͔ͷҧ͍

  46. lαʔόʔϨεz͸࡞ΕΔ

  47. wܭࢉϦιʔεͷϓʔϧΛΫϥ΢υ͕࣋ͭͷ͔ɺ
 ࣗࣾͰ࣋ͭͷ͔ͷҧ͍ w΋ͪΖΜɺࣗ෼͕ؔ৺Λ࣋ͭඞཁͷ͋Δ΋ͷ͸
 ૿͑Δ w+9௨৴ࣾͰ͸ɺ-BNCEBͱ&$4Λ࢖͍෼͚ͯΔ wˠlϚωʔδυzʹͩ͜ΘΔඞཁ͸ɺ࣮͸ͳ͍ ࡞ΔlαʔόʔϨεz

  48. wࠓ೔͸ɺlαʔόʔϨεzΛӡ༻ͯ͠ਏ͔ͬͨ໰୊ͱɺ
 ͦͷղܾࡦΛ঺հ͠·ͨ͠ wαʔόʔϨε΍Ϛωʔδυ͸ɺࠇຐज़Ͱ͸ͳ͘
 lͨͩͷ-JOVYzlͨͩͷίϯςφٕज़zͱଊ͑ɺ৐Γӽ͑Δ wϚωʔδυͷαʔόʔϨεͱɺࣗࣾαʔόʔϨεɺ
 ࢖͍෼͚͕େࣄ wใಓϕϯνϟʔʮ+9௨৴ࣾʯ͸ΤϯδχΞืूதͰ͢ʂ ·ͱΊ