JAWS-UG-aizu-CloudFormationとチーム開発_発表用

519ce44f1f63dfc6017d6853deee9cb5?s=47 Yousan_O
August 24, 2019

 JAWS-UG-aizu-CloudFormationとチーム開発_発表用

サーバレスフレームワークを使ったシステム開発の場合、Lambdaが乱立すること、フロントとサーバサイドでの仕様の同期(API設計、スキーマ)が問題となっていました。
CloudFormationのスタックを活用することでPRのブランチを独立したデプロイとし、機能追加が円滑にしたお話です。

519ce44f1f63dfc6017d6853deee9cb5?s=128

Yousan_O

August 24, 2019
Tweet

Transcript

  1. $MPVE'PSNBUJPOΛ࢖ͬͨ
 13Λग़͠·͘ΕΔϫʔΫϑϩʔ 2019年年8⽉月24⽇日 JAWS-UG AIZU

  2. -BNCEB

  3. None
  4. (&5VTFS

  5. (&5VTFS 4FSWFSMFTTJT $00-

  6. (&5VTFS

  7. (&5VTFS 1045VTFS %&-&5&VTFS

  8. (&5VTFS 1045VTFS %&-&5&VTFS 4FSWFSMFTTJT "8&40.&

  9. (&5VTFS 1045VTFS %&-&5&VTFS 1045PSHBOJ[BUJPO %&-&5&PSHBOJ[BUJPO (&5PSHBOJ[BUJPO 1045QPJOU %&-&5&QPJOU (&5QPJOU 1045TDPSF

    %&-&5&TDPSF (&5TDPSF 1045TIPQ %&-&5&TI (&5TIPQ 45IJTUPSZ %&-&5&IJTUPSZ (&5IJTUPSZ
  10. (&5VTFS 1045VTFS %&-&5&VTFS 1045PSHBOJ[BUJPO %&-&5&PSHBOJ[BUJPO (&5PSHBOJ[BUJPO 1045QPJOU %&-&5&QPJOU (&5QPJOU 1045TDPSF

    %&-&5&TDPSF (&5TDPSF 1045TIPQ %&-&5&TI (&5TIPQ 45IJTUPSZ %&-&5&IJTUPSZ (&5IJTUPSZ 4FSWFSMFTTJT 6#&3"8&40.&
  11. (&5VTFS 1045VTFS %&-&5&VTFS 1045PSHBOJ[BUJPO %&-&5&PSHBOJ[BUJPO (&5PSHBOJ[BUJPO 1045QPJOU %&-&5&QPJOU (&5QPJOU 1045TDPSF

    %&-&5&TDPSF (&5TDPSF 1045TIPQ %&-&5&TI (&5TIPQ 45IJTUPSZ %&-&5&IJTUPSZ (&5IJTUPSZ /PHJUIFSF
  12. (&5VTFS 1045VTFS %&-&5&VTFS 1045PSHBOJ[BUJPO %&-&5&PSHBOJ[BUJPO (&5PSHBOJ[BUJPO 1045QPJOU %&-&5&QPJOU (&5QPJOU 1045TDPSF

    %&-&5&TDPSF (&5TDPSF 1045TIPQ %&-&5&TI (&5TIPQ 45IJTUPSZ %&-&5&IJTUPSZ (&5IJTUPSZ
  13. (&5VTFS 1045VTFS %&-&5&VTFS 1045PSHBOJ[BUJPO %&-&5&PSHBOJ[BUJPO (&5PSHBOJ[BUJPO 1045QPJOU %&-&5&QPJOU (&5QPJOU 1045TDPSF

    %&-&5&TDPSF (&5TDPSF 1045TIPQ %&-&5&TI (&5TIPQ 45IJTUPSZ %&-&5&IJTUPSZ (&5IJTUPSZ
  14. (&5VTFS 1045VTFS %&-&5&VTFS 1045PSHBOJ[BUJPO %&-&5&PSHBOJ[BUJPO (&5PSHBOJ[BUJPO 1045QPJOU %&-&5&QPJOU (&5QPJOU 1045TDPSF

    %&-&5&TDPSF (&5TDPSF 1045TIPQ %&-&5&TI (&5TIPQ 45IJTUPSZ %&-&5&IJTUPSZ (&5IJTUPSZ
  15. ཚཱ-BNCEB

  16. ؅ཧ͞Ε͍ͯͳ͍-BNCEB ։ൃऀ͕ͦΕͧΕ-BNCEBؔ਺Λ࡞੒ (JU؅ཧ͞Ε͍ͯͳ͍ ίʔυΛݟΔʹ͸-BNCEB͔Βμ΢ϯϩʔυ ʢѹॖࡁΈʣ ཚཱ-BNCEB

  17. ܧଓతͳ։ൃ͸ෆՄೳ ਓ͕มΘΔͱίʔυ͕ແ͘ͳΔ (JU؅ཧ͞Ε͍ͯΔ෦෼΋͋Δ͕
 ΤϯυϙΠϯτͱϒϥϯν͕ෳࡶ ཚཱ-BNCEB

  18. Ϗϧυ

  19. (JUಋೖͨ͠Αʂ ͜ΕͰ؅ཧͰ͖Δʂ ґଘύοέʔδೖΒͳ͍ʜ 3&"%.&ߋ৽͞Εͯͳ͍ʜ Ͳ͏΍ͬͯϏϧυ͢Ε͹ʜʁ

  20. ͋ͬɺͦͷϒϥϯν
 ΋͏࢖ͬͯͳ͍Α ʜʜ ࢁ઒͞ΜͳΒσϓϩΠ Ͱ͖Δ͔Βฉ͍ͯΈͯ

  21. None
  22. σϓϩΠग़དྷͳ͍໰୊

  23. Ϗϧυ؀ڥ ઀ଓ৘ใ "1*ΤϯυϙΠϯτ63- ϑϩϯτΤϯυΤϯδχΞʴαʔόαΠυΤϯδχΞ %#৘ใ ϝϯόʔ͕૿͑Δͱʜʁ σϓϩΠग़དྷͳ͍໰୊

  24. ϝϯόʔߏ੒ ディレクター デザイナー・コーダー フロント エンジニア
 サーバ エンジニア 仕様

  25. ϝϯόʔߏ੒ ディレクター デザイナー・コーダー フロント エンジニア x3
 サーバ エンジニア x3 仕様

  26. ϝϯόʔߏ੒ フロント エンジニア x3
 サーバ エンジニア x3 ಈ࡞֬ೝ ͓ئ͍͠·͢ʂ

  27. ϝϯόʔߏ੒ ディレクター σϓϩΠ Ͳ͏͢Δͷʜʁ

  28. σϓϩΠग़དྷͳ͍ʂ

  29. ཚཱ-BNCEB σϓϩΠͰ͖ͳ͍໰୊ ʢͦΕʹΑͬͯʣνʔϜ։ൃ͕ࠔ೉ ໰୊

  30. ࣗݾ঺հ

  31. ਆ֞ɹ૱ ΠϯϑϥɺϓϩάϥϜ 8PSE1SFTTͷߴ଎Խ ޷͖ͳݴޠ͸1)1 ࣗݾ঺հ ࣗݾ঺հ

  32. ࣗݾ঺հ

  33. גࣜձࣾɹσβΠχ΢Ϝ νʔϜ։ൃࢧԉʢΠϯλʔϯੜଞʣ גࣜձࣾɹ'MPBUJOH8FFE 1)1 8PSE1SFTTɺ-BSBWFMʣ ࣗݾ঺հ

  34. ݱ৔Ͱى͖͍ͯͨ໰୊఺ αʔόϨεΞʔΩςΫνϟͱ$MPVE'PSNBUJPO ղܾํ๏ Ͳ͏ͳ͔ͬͨ ໨࣍

  35. ݱ৔Ͱى͖͍ͯͨ໰୊఺ αʔόϨεΞʔΩςΫνϟͱ$MPVE'PSNBUJPO ղܾํ๏ Ͳ͏ͳ͔ͬͨ ໨࣍

  36. αʔόϨεΞʔΩςΫνϟ

  37. 4FSWFSMFTT'SBNFXPSL ʢͬͪ͜ʣ "844". αʔόϨεΞʔΩςΫνϟ

  38. "84 (PPHMF$MPVE1MBUGPSN "[VSF 0QFO8IJTL ,VCFMFTT $MPVEqBSF 4FSWFSMFTT'SBNFXPSL

  39. -BNCEB 'BB4ʢ'VODUJPOBTB4FSWJDFʣ ֎෦ͱͷ઀ଓ "1*(BUFXBZ "QQ4ZOD 4 %ZOBNP%# "84ͱ4FSWFSMFTTΞʔΩςΫνϟ

  40. ͜ΕΒͷ؅ཧ͕େม

  41. $MPVE'PSNBUJPO $'O  ʢαʔόϨεʹݶΒͣʣΠϯϑϥͷߏ੒Λ؅ཧ *BB4  -BNCEB "1*(BUFXBZ %ZOBNP%# 4

    *". $MPVE'PSNBUJPOςϯϓϨʔτͰهड़ ୯Ґ͸ʮελοΫʯ αʔόϨεΞʔΩςΫνϟͷߏ੒͕ศརʂ "844".ͷݩ ʢ"844".͸$MPVE'PSNBUJPOͷ֦ுʣ ؅ཧ͕େม
  42. 4FSWFSMFTTͷσϓϩΠ
 $MPVE'PSNBUJPOελοΫΛσϓϩΠ "84ʹݶΒͣ൚༻Խ͍ͯ͠Δ 4FSWFSMFTT'SBNFXPSL

  43. ݱ৔Ͱى͖͍ͯͨ໰୊఺

  44. σϓϩΠͰ͖Δਓ͕ݶΒΕΔ OQNTMTͳͲɺΤϯδχΞͷΈ ؀ڥʹΑͬͯϏϧυࣦഊ ඞཁύοέʔδͷόʔδϣϯ ϏϧυͱσϓϩΠͷ࣌ؒʢ෼ʣ ϑϩϯτͱαʔόαΠυ͕ඇಉظʹσϓϩΠ ϑϩϯτ͕ٻΊΔߏ੒ͱαʔόαΠυͷߏ੒ෆҰக ݱ৔Ͱى͖͍ͯͨ໰୊఺

  45. ΫϥΠΞϯτ σΟϨΫλʔ ΤϯδχΞŠŠ͜ͷਓ͚͕ͩσϓϩΠՄೳ ςελʔ σϓϩΠͰ͖Δਓ͕ݶΒΕΔ

  46. ϑϩϯτͱαʔόαΠυ νʔϜϝϯόʔؒͰͷಈ࡞ϨϏϡʔ σΟϨΫλʔͷಈ࡞ϨϏϡʔ ϩʔΧϧ؀ڥʁ νΣοΫΞ΢τϏϧυ֬ೝ ͦΕ͸େมʜ σϓϩΠͰ͖Δਓ͕ݶΒΕΔ

  47. ݱ৔Ͱى͖͍ͯͨ໰୊఺ αʔόϨεΞʔΩςΫνϟͱ$MPVE'PSNBUJPO ղܾํ๏ Ͳ͏ͳ͔ͬͨ ໨࣍

  48. ղܾํ๏

  49. (JU (JUqPX 13 13ʹର͢Δಈ࡞ϨϏϡʔ $*$% $JSDMF$*  ͦͷଞ ϒϥϯν໊ɺ؀ڥɺ%#γʔσΟϯάɺϚΠάϨʔγϣϯ ϫʔΫϑϩʔͷಋೖ

  50. (JUʹฏԺΛ ̍ϒϥϯνϧʔϧ ̍ϒϥϯν̍ਓ ̍ϒϥϯν̍λεΫʢϢʔβʔετʔϦʔʣ ϒϥϯν̍13 ̍ϒϥϯν̍σϓϩΠ (JU (JUqPX 13

  51. ೥݄ʴ໊લʴػೳ໊ ϒϥϯνͷॴ༗ऀʢ੹೚ऀʣΛ໌֬ʹ ղܾλεΫΛ໌֬ʹ λεΫ͕ਖ਼͘͠෼ղ͞Ε͍ͯΕ͹13͕ಠཱ͠΍͘͢ͳΔ λεΫͷ෼͚ํ͸೉͍͠ ໋໊نଇ

  52. $MPVE'PSNBUJPOͷϙΠϯτ

  53. ελοΫͰಠཱ ϒϥϯν͝ͱʹಠཱ ελοΫ͝ͱʹϦιʔε͕ಠཱ -BNCEBʢηοτʣ "QQ4ZOD "1*(BUFXBZ %ZOBNP%# ໋໊نଇ

  54. Ϧιʔε͕ಠཱ

  55. (&5VTFS 1045VTFS %&-&5&VTFS 1045PSHBOJ[BUJPO %&-&5&PSHBOJ[BUJPO (&5PSHBOJ[BUJPO 1045QPJOU %&-&5&QPJOU (&5QPJOU 1045TDPSF

    %&-&5&TDPSF (&5TDPSF 1045TIPQ %&-&5&TI (&5TIPQ 45IJTUPSZ %&-&5&IJTUPSZ (&5IJTUPSZ
  56. (&5VTFS 1045VTFS %&-&5&VTFS 1045PSHBOJ[BUJPO %&-&5&PSHBOJ[BUJPO (&5PSHBOJ[BUJPO 1045QPJOU %&-&5&QPJOU (&5QPJOU 1045TDPSF

    %&-&5&TDPSF (&5TDPSF 1045TIPQ %&-&5&TI (&5TIPQ 45IJTUPSZ %&-&5&IJTUPSZ (&5IJTUPSZ ֬ೝແཧͬ͢ʜ
  57. ཚཱ

  58. Ϧιʔε͕ಠཱ

  59. ελοΫͰಠཱ ϒϥϯν͝ͱʹಠཱ ελοΫ໊ΛϢχʔΫʹ ϒϥϯν໊ΛݩʹελοΫ໊Λ෇༩ ௕੍͞ݶ͋Γʢจࣈ  จࣈͷதͰϢχʔΫʹ͢Δ ໋໊نଇ

  60. ελοΫ໊Λϒϥϯν໊͔Β࡞੒ ϒϥϯνͷ໋໊نଇΛݩʹελοΫ໊Λܾఆ
 
 GFBUVSFZPVTBOUSZDZQSFTT
 
 GFBUVSFZPVTBOUSZDZQSFTT
 
 ZPVTUSZDZQSFTTDF ϒϥϯν໊ͱ$'OελοΫ໊

  61. Ϧιʔε͕ಠཱ  ZPVTUSZDZQSFTTDF  TBLBpYBENJOBCD  ZPVTUSZDZQSFTTDF

  62. Ϧιʔε͕ಠཱ  ZPVTUSZDZQSFTTDF  ZPVTUSZDZQSFTTDF  ZPVTUSZDZQSFTTDF ಈ࡞֬ೝ ͓ئ͍͠·͢ʂ

  63. ಠཱͨ͠63-͕ൃߦ ಠཱ $MPVE'PSNBUJPO 4 "QQ4ZOD %ZOBNP%# Ϧιʔε͕ಠཱ

  64. 13͝ͱʹ ಈ࡞֬ೝͰ͖Δʜʂ

  65. 13ͨ͘͞Μʜʂ

  66. ·ͱΊ  ZPVTUSZDZQSFTTDF  TBLBpYBENJOBCD  ZPVTUSZDZQSFTTDF

  67. ཚཱ-BNCEBɺσϓϩΠग़དྷͳ͍໰୊ $MPVE'PSNBUJPOɺ4FSWFSMFTT'SBNFXPSL σϓϩΠͱϒϥϯνʹϧʔϧʢ໋໊نଇʣ 13Ͱಠཱ ·ͱΊ

  68. ٕज़తͳഎܠ

  69. ໋໊نଇ͕ϙΠϯτ εΫϦϓτԽ 4FSWFSMFTTͷʮεςʔδ໊ʯΛར༻ NBTUFS EFWFMPQ͸ͦͷ··ͷεςʔδ໊ ໋໊نଇ

  70. ίʔυ https://git.io/fjN1X

  71. 4͸$MPVE'PSNBUJPOʹೖΕͳ͍΄͏͕ྑ͍ 4ΛελοΫʹೖΕΔ͜ͱ͸Մೳ ࡟আ͢Δͱ͖ʹ4Λ࡟আ$'OΛ࡟আ͠ͳ͚Ε͹ͳΒ ͳ͍ 4࡟আϑΝΠϧશ࡟আόέοτ࡟আ εςʔδ໊͔Βόέοτ໊ͷεΫϦϓτ $'OσϓϩΠΤϯυϙΠϯτऔಘϑϩϯτʹઃఆ ஫ҙ఺

  72. $MPVE'SPOUͱ૬ੑ͕ѱ͍ $MPVE'SPOUͷΤϯυϙΠϯτ63-͕औಘͮ͠Β͍ $'OελοΫ$MPVE'SPOU͕೉͍͠ 4ͱ$MPVE'SPOU͸$'OʹೖΕͳ͍΄͏͕ྑ͍ ஫ҙ఺

  73. ίʔυ

  74. 13Ͱಠཱ͸͍ͯ͠Δ Πϯϑϥ΍αʔόαΠυ͕༩͑ΔӨڹ 13͝ͱʹ࿈ܞ͕ඞཁͳϙΠϯτ͸ଘࡏ ʮ੹೚෼ք఺ʯ "1*ఆٛॻ (SBQI2-εΩʔϚϑΝΠϧ ஫ҙ఺

  75. 13Ͱಠཱ͸͍ͯ͠Δ Πϯϑϥ΍αʔόαΠυ͕༩͑ΔӨڹ 13͝ͱʹ࿈ܞ͕ඞཁͳϙΠϯτ͸ଘࡏ ʮ੹೚෼ք఺ʯ "1*ఆٛॻ (SBQI2-εΩʔϚϑΝΠϧ ஫ҙ఺

  76. ཚཱ-BNCEBɺσϓϩΠͰ͖ͳ͍໰୊ (JUͷϒϥϯνͰಠཱ ϒϥϯν੍౓ $MPVE'PSNBUJPOελοΫͰಠཱ ϒϥϯν͝ͱʹσϓϩΠ σϓϩΠ͝ͱʹ13Ͱಈ࡞֬ೝ ·ͱΊ

  77. ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ ࣭໰͋Γ·ͨ͠Β࠙਌ձͰ΋Ͳ͏ͧ