Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JSだけでバックエンド環境構築、IaC、自動デプロイまでやってみた話

 JSだけでバックエンド環境構築、IaC、自動デプロイまでやってみた話

kaidouji85

July 16, 2022
Tweet

More Decks by kaidouji85

Other Decks in Technology

Transcript

  1. +4͚ͩͰόοΫΤϯυ؀ڥߏஙɺ
    *B$ɺࣗಈσϓϩΠ·Ͱ΍ͬͯΈͨ࿩


    Նͷ+BWB4DSJQUࡇΓ0OMJOF
    ஛಺༎հ

    View Slide

  2. ࣗݾ঺հ
    ஛಺ɹ༎հ
    ϓϩάϥϚʔ
    +4େ޷͖
    झຯͰωοτରઓήʔϜ

    ࡞ͬͯ·͢
    (PPHMF1MBZʹ

    ೥݄ϦϦʔε༧ఆ
    ˢ58"Ͱ࡞ͬͯ·͢

    View Slide

  3. ΞδΣϯμ
    ࡞੒ͨ͠ήʔϜͷ঺հ
    +4Ͱ*B$
    4FSWFSMFTT'SBNFXPSL
    αʔόϨεͷ໰୊఺
    'BSHBUFXJUI"84$%,
    ·ͱΊ

    View Slide

  4. ΞδΣϯμ
    ࡞੒ͨ͠ήʔϜͷ঺հ
    +4Ͱ*B$
    4FSWFSMFTT'SBNFXPSL
    αʔόϨεͷ໰୊఺
    'BSHBUFXJUI"84$%,
    ·ͱΊ

    View Slide

  5. (ϒϨ# ݕࡧ

    View Slide

  6. IUUQTZPVUVCFQ&T5(C[U'7

    View Slide

  7. ήʔϜղઆ
    ੿࡞ʮػಈ۞ָ෦(ϒϨΠόʔόʔετʯͷωοτରઓ
    ಡΈ߹͍ੑ͕ߴ͍ɺಠࣗϧʔϧͷλʔϯ੍ότϧ
    (PPHMF1MBZʹͯઈࢍ഑৴த
    5(4ʹ΋ΠϯσΟʔήʔϜબߟ࿮Ͱग़ల

    View Slide

  8. αϯϓϧίʔυ
    ϑϩϯτ

    IUUQTHJUIVCDPNLBJEPVKJTUVEZUISFFKT
    αʔόαΠυ

    IUUQTHJUIVCDPNLBJEPVKJHCSBWFSCVSTUOFUXPSL
    ήʔϜίΞ ͍ΘΏΔυϝΠϯ૚


    IUUQTHJUIVCDPNLBJEPVKJHCSBWFSCVSTUDPSF

    View Slide

  9. ࠓ೔࿩͞ͳ͍͜ͱ
    ωοτରઓͷαʔόߏ੒ɺΞʔΩςΫνϟʹ͍ͭͯ͸࿩͠·ͤΜ
    ্هղઆ͸ผεϥΠυʹ·ͱΊͨͷͰɺͦͪΒΛ͝ࢀর͍ͩ͘͞
    IUUQTTQFBLFSEFDLDPNLBJEPVKJTBCBSFTVEFOFUVUPEVJ[IBO
    XP[VPUVUBIVB

    View Slide

  10. ΞδΣϯμ
    ࡞੒ͨ͠ήʔϜͷ঺հ
    +4Ͱ*B$
    4FSWFSMFTT'SBNFXPSL
    'BSHBUFXJUI"84$%,
    ·ͱΊ

    View Slide

  11. *B$ͱ͸
    *OGSBTUSVDUVSFBT$PEFͷུশ
    ιʔείʔυ͑͋͞Ε͹ɺθϩ͔ΒΠϯϑϥΛࣗಈతʹߏஙͰ͖Δ
    ιʔείʔυΛมߋ͢Ε͹ɺ࣮؀ڥ΋ࣗಈతʹมߋͯ͘͠ΕΔ
    ίʔυ্ͰαʔόͷϝϞϦΛ.C.Cʹมߋ͢Ε͹ɺ*B$ͷ

    ίϚϯυϥΠϯΛ࣮ߦ͢Δ͚ͩͰ࣮؀ڥαʔόϝϞϦ΋.Cʹͯ͘͠ΕΔ
    ಉ͡ߏ੒ͷ৽͍͠؀ڥΛɺ଎߈Ͱ࡞Δ͜ͱ͕Ͱ͖Δ

    View Slide

  12. +4Ͱͷ*B$
    +4ʹ΋*B$πʔϧ͸୔ࢁ͋Δ͕ɺ(ϒϨΠόʔόʔετͰ͸

    4FSWFSMFTT'SBNFXPSLɺ"84$%,Λ࠾༻ͨ͠
    4FSWFSMFTT'SBNFXPSLͱ͸ɺͦͷ໊ͷ௨ΓαʔόϨεઐ໳ͷ*B$
    "84$%,ͱ͸"84ઐ༻ͷ*B$

    View Slide

  13. ΞδΣϯμ
    ࡞੒ͨ͠ήʔϜͷ঺հ
    +4Ͱ*B$
    4FSWFSMFTT'SBNFXPSL
    αʔόϨεͷ໰୊఺
    'BSHBUFXJUI"84$%,
    ·ͱΊ

    View Slide

  14. αʔόϨεͱ͸
    αʔό؅ཧΛ΄ͱΜͲҙࣝͤͣʹɺϓϩάϥϜ։ൃ͚ͩʹूத͠΍͍͢

    ࢓૊Έ
    FYQSFTT͕ಈ͘KTϑΝΠϧΛ౉ͨ͠ΒɺαʔϏεىಈɺ৑௕ԽɺϑΣΠϧ
    ΦʔόʔΛؚΊͯΑ͠ͳʹ΍ͬͯ͘ΕΔ
    "84-BNCEBɺ"[VSF'VODUJPOTɺ$MPVE'VODUJPOTͳͲ͕૬౰͢Δ

    View Slide

  15. 4FSWFSMFTT'SBNFXPSLͱ͸
    αʔόϨε։ൃπʔϧͷσϑΝΫτελϯμʔυ
    :".-ܗࣜͷઃఆϑΝΠϧ+4Ͱ։ൃ͢ΔελΠϧ
    ϓϥάΠϯ΋๛෋Ͱϊ΢ϋ΢΋ଟ͍ɺαʔόϨεքͷ3VCZPO3BJMT
    (ϒϨ#Ͱ͸4FSWFSMFTT'SBNFXPSL"84Λ࠾༻͕ͨ͠ɺ

    "84Ҏ֎ʹ΋ରԠ͍ͯ͠Δ

    View Slide

  16. TFSWFSMFTTZNM
    4FSWFSMFTT'SBNFXPSLͷઃఆϑΝΠϧ
    ֤छ؀ڥઃఆɺFYQSFTTͰ͍͏ͱ͜ΖͷϧʔςΟϯάઃఆΛهࡌ͢Δ
    ˣ͕۩ମྫ
    IUUQTHJUIVCDPNLBJEPVKJHCSBWFSCVSTUOFUXPSLCMPCEFWFMPQ
    QBDLBHFTCBDLFOEBQQTFSWFSMFTTZNM

    View Slide

  17. View Slide

  18. ࡟আ"1*ͷઃఆ

    View Slide

  19. ࡟আ"1*͕ݺ͹Εͨ࣌ͷॲཧΛࢦఆ
    ͜ͷ৔߹ɺTSDEFMFUFVTFSKTͷ
    EFMFUF6TFSؔ਺͕࣮ߦ͞ΕΔ

    View Slide

  20. 3FTU"1*ͷύεͱϝιου
    ͜ͷ৔߹IUUQT"1*ͷ63-Λ%&-&5&Ͱݺͼग़͢ͱ͍͏ҙຯ

    View Slide

  21. TSDEFMFUFVTFSKT
    ࡟আ"1*͕ݺͼग़͞Εͨ࣌ͷॲཧΛఆٛͨ͠+4ɺ͍ΘΏΔϋϯυϥ
    ࡉ͔͍ͱ͜Ζ͸ҧ͏͕ɺFYQSFTTϧʔςΟϯάͷϋϯυϥͱߟ͑ํ͸ಉ͡
    ϦΫΤετΛड͚औͬͨɺԿΒ͔ͷॲཧΛͯ͠ɺϦΫΤετΛฦ͢

    View Slide

  22. View Slide

  23. ϦΫΤετύϥϝʔλЋ

    View Slide

  24. Ϣʔβ࡟আॲཧ

    View Slide

  25. Ϩεϙϯε

    View Slide

  26. 4FSWFSMFTT'SBNFXPSLΠϯετʔϧํ๏

    View Slide

  27. σϓϩΠ

    View Slide

  28. σϓϩΠิ଍
    ࣄલʹBXTDMJͳͲΛΠϯετʔϧͯ͠ɺBXTೝূઃఆΛ׬ྃͤ͞Δ͜ͱ
    TUBHFʹ͸޷͖ͳ؀ڥ໊ ࿦ཧ໊
    ͕ࢦఆͰ͖Δ
    ؀ڥ͕ଘࡏ͠ͳ͚Ε͹৽ن࡞੒ɺଘࡏ͢Ε͹طଘ؀ڥΛTFSWFSMFTTZNM

    ʹఆٛ͞Εͨ಺༰Ͱߋ৽͢Δ

    View Slide

  29. ΞδΣϯμ
    ࡞੒ͨ͠ήʔϜͷ঺հ
    +4Ͱ*B$
    4FSWFSMFTT'SBNFXPSL
    αʔόϨεͷ໰୊఺
    "84$%,
    ·ͱΊ

    View Slide

  30. αʔόϨεͷ໰୊఺
    "84-BNCEBͳͲͷ'BTT4Λ࢖ͬͨαʔόϨε͸ɺαʔόৗ࣌ىಈͷ

    Ϣʔεέʔεͱ૬ੑ͕ѱ͍
    'BB4͸ϛϦඵ୯ҐͰͷ՝ۚɺಉ࣌ؒ͡ͳΒ*BB4ΑΓ΋ׂߴ
    ͦ΋ͦ΋"84-BNCEB͸෼͔࣮͠ߦͰ͖ͳ͍

    IUUQTEPDTBXTBNB[PODPNKB@KQMBNCEBMBUFTUEH
    HFUUJOHTUBSUFEMJNJUTIUNMGVODUJPODPO
    fi
    HVSBUJPOEFQMPZNFOUBOE
    FYFDVUJPO

    View Slide

  31. ࢀߟɹ&$WT-BNCEB࣌ؒ՝ۚ

    &$NMBSHF W$16ɺϝϞϦ(

    64%࣌ؒ
    -BNCEB ϝϞϦ(

    64%ϛϦඵ

    64%࣌ؒ
    ಉ͡ϝϞϦͳΒɺ୯७ܭࢉͰ-BNCEBͷํ͕ഒ͘Β͍ߴ͍

    View Slide

  32. ղܾࡦ
    ҎԼͷΑ͏ͳίϯςφϕʔεͷαʔϏεͰɺৗ࣌ىಈαʔόΛ༻ҙ͢Δ͜ͱ
    ʹͨ͠
    "84"QQ3VOOFS
    "84$PQJMPU
    'BSHBUFXJUI"84$%,

    View Slide

  33. "84"QQ3VOOFS
    IFPSLVͷίϯςφ൛ɺ؀ڥߏங͸Ұ൪ָ
    ॊೈੑ͸࠷΋௿͘ɺ(ϒϨΠόʔόʔετͷཁ݅Λຬ͍ͨͯ͠ͳ͔ͬͨ

    View Slide

  34. "84$PQJMPU
    ίϯςφઐ༻ͷ*B$ɺ$*$%؀ڥ΋͍ͭͯ͘Δ
    ؆୯ʹಋೖͰ͖ͯػೳ΋๛෋͕ͩɺ೥ͷஈ֊Ͱ͸"84ΞΧ΢ϯτݸ
    ʹ͖ͭɺ؀ڥ͔͠ߏஙͰ͖ͳ͍
    DPQJMPU͕ࣗಈੜ੒͢Δίʔυ͕๲େɺ൥ࡶɺ࣮࣭όΠφϦ
    ຊ൪ɺςετͰผʑͷ"84ΞΧ΢ϯτʹ͢Ε͹໰୊ͳ͍͕ɺ

    (ϒϨΠόʔόʔετͰ͸ςετɺຊ൪ΛಉҰΞΧ΢ϯτʹߏங͍ͯͨ͠

    ͨΊɺ༻్ʹ߹Θͳ͔ͬͨ

    View Slide

  35. 'BSHBUFXJUI"84$%,
    "84؀ڥઐ༻*B$ͷ"84$%,Ͱɺ'BSHBUF؀ڥΛߏங͢Δ
    ೉қ౓͸ߴΊ͕ͩɺ$MPVE'PSNBUJPOɺ5FSSBGPSNΑΓ͸؆୯
    ϑ˓ʔβ$MPVE'PSNBUJPOɺ5FSSBGPSN
    ϥ˓Οοπ"84$%,
    ফڈ๏తʹ(ϒϨΠόʔόʔετͰ͸"84$%,Λબ୒

    View Slide

  36. ΞδΣϯμ
    ࡞੒ͨ͠ήʔϜͷ঺հ
    +4Ͱ*B$
    4FSWFSMFTT'SBNFXPSL
    αʔόϨεͷ໰୊఺
    'BSHBUFXJUI"84$%,
    ·ͱΊ

    View Slide

  37. 'BSHBUFͱ͸
    "84͕ఏڙ͢ΔίϯςφՔಇ؀ڥ $BB4

    %PDLFSΠϝʔδ͑͞1VTI͢Ε͹ɺޙ͸Α͠ͳʹ΍ͬͯ͘ΕΔ
    ͔͠͠ɺॳظߏ੒͸݁ߏࠎ͕ંΕΔ

    View Slide

  38. "84$%,ͱ͸
    "84$MPVE%FWFMPQNFOU,JUͷུশɺ+4ɺ54Ͱ"84؀ڥͷ*B$͕Ͱ͖Δ
    71$ɺ'BSHBUF͸΋ͪΖΜɺͦΕҎ֎ͷશ"84Ϧιʔεͷߏங͕Ͱ͖Δ
    "84͓͢͢Ίߏ੒͕ϥΠϒϥϦͱͯ͠·ͱ·͍ͬͯΔ

    View Slide

  39. View Slide

  40. 71$ߏ੒ϥΠϒϥϦ
    ";ɺωοτϫʔΫ$*%3ɺ/"5ήʔτ΢ΣΠͷݸ਺Λࢦఆ͢Δ

    ͚ͩͰ71$͕؆୯ʹ࡞ΕΔ

    View Slide

  41. View Slide

  42. 'BSHBUFઃఆϥΠϒϥϦΛݺͼग़ͯ͠ɺ৭ʑ૊Έ߹Θ͍ͤͯΔ

    View Slide

  43. "84$%,Πϯετʔϧํ๏

    View Slide

  44. σϓϩΠ

    View Slide

  45. σϓϩΠิ଍
    ࣄલʹBXTDMJͳͲΛΠϯετʔϧͯ͠ɺBXTೝূઃఆΛ׬ྃͤ͞Δ͜ͱ
    ؀ڥ໊͸+4ίʔυͷதͰࢦఆ͍ͯ͠ΔͷͰɺίϚϯυϥΠϯҾ਺ɺ؀ڥม਺
    ͳͲͰ֎෦ࢦఆͰ͖Δ࢓૊ΈΛࣗ࡞͢Δͱ͍͍
    ؀ڥ͕ଘࡏ͠ͳ͚Ε͹৽ن࡞੒ɺଘࡏ͢Ε͹طଘ؀ڥΛTFSWFSMFTTZNM

    ʹఆٛ͞Εͨ಺༰Ͱߋ৽͢Δ

    View Slide

  46. ༨ஊ"84$%,Λੵۃతʹ࢖͏΂͖͔
    "84$%,Λ࢖͍͜ͳ͢ʹ͸ɺ"84ઃఆΛݟͯࣗ෼ͷҙਤ௨Γʹಈ͘ͷ͔
    ൑அͰ͖Δ͚ͩͷ஌͕ࣝඞཁ
    ˢϑϨʔϜϫʔΫɺαʔϏε͕಺෦తʹ΍͍ͬͯΔ͜ͱΛཧղ͢Δͷͱಉ͡
    ༻్ʹ͋ͬͨϑϨʔϜϫʔΫɺαʔϏε͕͋ΔͳΒɺ

    "84$%,Λແཧͯ͠࢖͏ඞཁ͸ͳ͍ɺ"84$%,͸࠷ޙͷखஈ

    View Slide

  47. ΞδΣϯμ
    ࡞੒ͨ͠ήʔϜͷ঺հ
    +4Ͱ*B$
    4FSWFSMFTT'SBNFXPSL
    αʔόϨεͷ໰୊఺
    'BSHBUFXJUI"84$%,
    ·ͱΊ

    View Slide

  48. ·ͱΊ
    *B$͸ίʔυ͔ΒΠϯϑϥΛ৽ن࡞੒ɺߋ৽͢Δ࢓૊ΈͰ͋Δ
    αʔόʔϨεͷ*B$ͳΒɺ4FSWFSMFTT'SBNFXPSLΛ࢖͓͏
    "84$%,ͳΒͲΜͳߏ੒ͷ'BSHBUFͰ΋ݱ࣮తͳ࿑ྗͰ*B$Ͱ͖Δ

    View Slide

  49. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·͢

    View Slide