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

higobashi-aws-7-ecs

36e98ccc9da533b92d7882c92c7943a2?s=47 sutetotanuki
October 25, 2018

 higobashi-aws-7-ecs

36e98ccc9da533b92d7882c92c7943a2?s=128

sutetotanuki

October 25, 2018
Tweet

Transcript

  1. &$4ຊ൪ӡ༻ ͯ͠ΈͯΘ͔ͬͨ͜ͱ  

  2.   w ੢ాক޾ w Ϋϥεϝιουגࣜձࣾ w ϞόΠϧΞϓϦαʔϏε෦ w "1*։ൃɺ"84؀ڥߏஙɺӡ༻

  3. ࠓ೔࿩͢͜ͱ w %PDLFSΛ࢖͏Ϟνϕʔγϣϯ w &$4 PO&$ ΛબͿཧ༝ w &$4جຊϓϥΫςΟε w

    $*$% w #MVF(SFFOσϓϩΠ  
  4. %PDLFSΛ࢖͏Ϟνϕʔγϣϯ  

  5. %PDLFSΛ࢖͏Ϟνϕʔγϣϯ w ຊ൪Ͱಈ͘؀ڥͰ։ൃ w ։ൃ؀ڥߏங w ىಈ͕ૣ͍ w ੹೚ൣғͷ෼཭ 

    
  6. ຊ൪Ͱಈ͘؀ڥͰ։ൃ  

  7. %PDLFSͰ࣮ݱͯ͠Δൣғ w ϛυϧ΢ΣΞ .Z42- 3FEJT  w ΞϓϦέʔγϣϯ (P 3BJMT

     w ͨͩ͠։ൃ࣌͸*%&ͷิ׬΍ίϚϯυ࣮ߦ ͕खؒͷͨΊ։ൃ؀ڥʹ௚઀Πϯετʔϧ ͍ͯ͠Δ  
  8. خ͍͠ͱ͜Ζ w ϛυϧ΢ΣΞͷόʔδϣϯ΍ઃఆΛ։ൃϝϯόʔ Ͱ߹ΘͤΒΕΔ NZTRM SFEJT FUD  w ຊ൪؀ڥʹ͍ۙ؀ڥͰ։ൃͰ͖ΔͷͰຊ൪Ͱ͠

    ͔͓͖ͳ͍ෆ۩߹͕։ൃ࣌ʹ͓͖Δ w $*࣌ʹϏϧυͨ͠ΠϝʔδͰσϓϩΠͰ͖Δͷ Ͱຊ൪σϓϩΠ࣌ʹࣄނ͕ى͖ʹ͍͘  
  9. $*࣌ͷΠϝʔδͰσϓϩΠ  

  10. ։ൃ؀ڥߏங  

  11. ؆୯ʹ౉ͤΔ w EPDLFSDPNQPTFͰϛυϧ΢ΣΞΛؚΊ ͯ؆୯ʹىಈͰ͖ΔͷͰϑϩϯτΤϯδχ Ξͷਓʹ؀ڥΛ౉͠΍͍͢ w ຊ൪Ͱ࢖͏%PDLFSpMFͰϏϧυͨ͠Πϝʔ δΛ͔ͭͬͯ΋Β͏͜ͱͰ"1*Λ࢖ͬͯ΋Β ͍ͳ͕Βσόοάͯ͠΋Β͑Δ 

    
  12. ؀ڥΛԚ͞ͳ͍   # データベースを作成 docker-compose run api rails db:create

    docker-compose run api rails db:migrate EPDLFSDPNQPTFΛ࢖͑͹ ຊདྷඞཁͳϥΠϒϥϦͷΠϯετʔϧΛ͠ͳ͍Ͱ΋ ॳظηοτΞοϓ͕Ͱ͖Δ
  13. ىಈ͕ૣ͍  

  14. ىಈͷ଎͞ w ϓϩηεͷىಈ૬౰Ͱ্ཱ͕ͪΔͷͰىಈ ͕ૣ͍ w 7BHSBOU $IFG౳ͱൺ΂Δͱ͔ͳΓߴ଎  

  15. ੹೚ൣғͷ෼཭  

  16. ੹೚ൣғͷ෼཭ w ։ൃऀ͸%PDLFSpMFͰΞϓϦέʔγϣϯ͕ ಈ͘͜ͱΛอূ͢Δ w ӡ༻ऀ͸%PDLFS͕ಈ͘ΠϯϑϥΛอূ͢Δ w ໌֬ʹ੹೚ൣғ͕෼͔ΕΔ͜ͱʹΑΓͦΕͧ Εͷ࡞ۀʹूதͰ͖Δ 

    
  17. &$4 PO&$ ΛબͿཧ༝  

  18. "84Ͱಈ͔͢બ୒ࢶ w &,4 w &$4 &$  w &$4 'BSHBUF

     
  19. &,4 w "84্Ͱ,VCFSOFUFTΛ࣮ߦͰ͖Δαʔ Ϗε  

  20. &,4 w,VCFSOFUFTͷ஌ࣝΛ࢖͑Δ wϕϯμʔϩοΫΠϯ͞Εͳ͍   w·ͩ8PSLFSϊʔυ &$ ؅ཧ͢Δඞཁ͕͋Δ w.BTUFSϊʔυ͕"84؅ཧ͕ͩΫϥελར༻ྉ͸͔͔Δ 1SPT

    $POT
  21. &$4 PO&$ w %PDLFSΛ࣮ߦ͢Δ"84ͷαʔϏε w "84ಠࣗ࢓༷ w &$ͰΫϥελΛࣗલͰ༻ҙ͢Δඞཁ͕͋ Δɹ 

    
  22. &$4 &$ w"-#౳ͷ"84αʔϏεͱ૬ੑ͕͍͍   wϕϯμʔϩοΫΠϯ͞ΕΔ w&$Λ؅ཧ͢Δඞཁ͕͋Δ 1SPT $POT

  23. &$4 'BSHBUF w "84্Ͱ%PDLFSΛ࣮ߦ͢ΔαʔϏε w "84ಠࣗ࢓༷ w &$ͰΫϥελΛ༻ҙ͢Δඞཁ͕ͳ͍ɹ  

  24. &$4 'BSHBUF w"-#౳ͷ"84αʔϏεͱ૬ੑ͕͍͍ w&$ͷ؅ཧ͕͍Βͳ͍   wϕϯμʔϩοΫΠϯ͞ΕΔ wಉ͡ੑೳͷ&$ͱൺ΂ͯՁ͕֨ߴ͍ wEPDLFSFYFDͰίϯςφʹೖΕͳ͍ 1SPT

    $POT
  25. &$4 PO&$ ΛબͿཧ༝ w ฐࣾʹ͸"84ͷΤΩεύʔτ͕ଟ͍ͷͰ"84 ͚ͩͰߏங͢ΔϝϦοτ͕ଟ͘ϚϧνΫϥ΢ υΛҙࣝ͢Δ͜ͱ͕গͳ͍ w ΠϝʔδΛ࢖͍·Θͯ͠͸͍Δ͕τϥϑΟοΫɺ σʔλྔɺίϯϑΟάͷࠩͰͲ͏ͯ͠΋ຊ൪

    ͷίϯςφʹೖͬͯσόοά͍͕ͨ࣌͋͠Δ  
  26. &$4جຊϓϥΫςΟε  

  27. &$4ϓϥΫςΟε w ϑΝΠϧΛϩʔΧϧʹஔ͔ͳ͍ w ඪ४ग़ྗʹϩά w Πϯελϯεަ׵  

  28. ϑΝΠϧΛϩʔΧϧʹஔ͔ͳ͍ w ίϯςφ͕ऴྃͨ͠ΒϩʔΧϧͷϑΝΠϧ͸ ࡟আ͞Εͯ͠·͏ w &#4ɺ&'4ΛϚ΢ϯτ͢Ε͹࢒Δ͕ɺۃྗ 4ʹஔ͘  

  29. ඪ४ग़ྗͰϩά w ϩʔΧϧͷϑΝΠϧʹϩάΛஔ͍ͯ͠·͏ͱ ফ͑Δ w ඪ४ग़ྗ͞Εͨ΋ͷΛMPHESJWFSͰϩά αʔϏε౳ʹૹΔ  

  30.   $MPVE8BUDI-PHT ߏ଄Խϩά +40/ Ͱϩάग़ྗ͢Δͱ ݕࡧͰߜΓࠐΈ͕Ͱ͖Δ

  31. $MPVE8BUDI-PHT w"84͚ͩͰ׬݁͢Δ w؆୯ʹઃఆͰ͖Δ   wޙड़͢Δߏ੒ͱൺ΂ػೳ͕·ͩগͳ͍ 1SPT $POT

  32.   'MVFOUE MPHFOUSJFT wϑΟϧλϦϯά wϩάΛ྆ํʹૹ৴ wӡ༻͕೉͍͠ w௕ظอଘ w"UIFOBͰݕࡧ wߴػೳ

    ूܭɺΞϥʔτ  w୹ظอଘ
  33. 'MVFOUE MPHFOUSJFT w ϩάͷ੍ޚ͕qVFOUEͰߦ͑Δ w ूܭɺΞϥʔτ͕MPHFOUSJFTͰ؆୯ʹͰ͖Δ w ৽͍͠ར༻ස౓ͷߴ͍ϩά͸ߴػೳͳMPHFOUSJFTɺݹ͍ϩά͸4Ͱ҆͘อଘͰ͖Δ  

    wMPHFOUSJFT͕ߴՁ wqVFOUEͷϝϯςφϯεͱઃఆ͕ඞཁ 1SPT $POT
  34. Πϯελϯεަ׵ w &$ͷγϟοτμ΢ϯͱίϯςφͷγϟο τμ΢ϯ͸࿈ಈ͠ͳ͍  

  35. &$ͷऴྃ   &$ͷγϟοτμ΢ϯ࣌ʹ ίϯςφ͸ಥવऴྃͤ͞ΒΕΔ

  36. υϨΠχϯά w &$4Ϋϥελʹ͸BDUJWFͱESBJOJOHεςʔ λε͕͋Δ w ESBJOJOHঢ়ଶͷ&$4Ϋϥελ্ͷαʔϏ ε͸ίϯςφΛऴ͍ྃͤͯ͘͞  

  37. Πϯελϯεަ׵  ৽͍͠ΠϯελϯεΛ௥Ճ  ݹ͍ΠϯελϯεΛESBJOJOHʹม͑Δ  ݹ͍Πϯελϯεͷίϯςφ͕ʹͳͬͨ ΒΫϥελ͔Β֎͢  

    ※ ίϯςφ͕̌ʹͳΒͳ͍Α͏ʹ஫ҙ
  38. $*$%  

  39. ࣮ݱ͍ͨ͜͠ͱ w ։ൃத͸ۃྗͳʹ΋ߟ͑ͣࣗવͱσϓϩΠ͠ ͍ͨ w ։ൃ؀ڥʹ࢖ΘΕ͍ͯΔΠϝʔδΛ؀ڥม਺ ͚ͩมߋͯ͠ຊ൪ʹσϓϩΠ͍ͨ͠  

  40. σϓϩΠϑϩʔ  

  41. σϓϩΠϑϩʔ   ςετ༻ͷ%PDLFSJNBHFΛ࡞੒͠HPUFTU࣮ߦ ੒ޭ࣌.VMUJ4UBHF#VJMEͰσϓϩΠ༻ͷJNBHFΛ࡞੒ Ͱ࡞੒ͨ͠ΠϝʔδʹλάΛ͚ͭͯ&$3Λ1VTI ͷλάΛHJUͷλάͱͯ͠HJUIVCʹ1VTI UBH UBH

  42. ϒϥϯνӡ༻   w NBTUFSʹϚʔδ࣌ɺςετ࣮ߦ ΠϝʔδΛϏϧυ w UBHʹ$JSDMF$*ͷCVJME൪߸ΛؚΊΔ͜ͱͰ
 ࣗಈͰҰҙʹͳΔΑ͏ʹ͍ͯ͠Δ

  43. ϒϥϯνӡ༻   w ຊ൪؀ڥͰΤϥʔ͕ൃੜ͠NBTUFSਐΜͰ͠·ͬͯΔ w pYϒϥϯνΛ࡞੒ͦ͠ΕΛҰ୴EFWFMPQͰ֬ೝޙQSPE؀ ڥʹσϓϩΠ

  44.   FROM golang:1.9 AS builder # ① WORKDIR /go/src/github.com/example/api

    COPY . . ENV GOOS=linux \ GOARCH=amd64 # ② RUN curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh \ && dep ensure -v \ && bash ./build.sh ENTRYPOINT go test ./... FROM alpine # ③ COPY --from=builder /go/src/github.com/example/api /api ENTRYPOINT ["/api"] ᶃ(01"5)഑ԼʹιʔεΛ഑ஔ ᶄϥΠϒϥϦΛΠϯετʔϧ࣮͠ߦϑΝΠϧΛϏϧυ͢Δ ᶅCVJMEFSͰϏϧυ࣮ͨ͠ߦϑΝΠϧΛίϐʔ
  45. &$3Πϝʔδλά   w $JSDMF$*Ͱػցతʹ͚ͭΔλά w σϓϩΠεΫϦϓτ࣮ߦ࣌ʹͲͷ؀ڥʹσϓϩΠ ͔ͨ͠Θ͔Δλά

  46. σϓϩΠ   w ։ൃ؀ڥʹ͸CVJME͕੒ޭ͢ΔͨͼʹσϓϩΠ w σϓϩΠ͢ΔUBHΛεςʔδϯάʹσϓϩΠ w εςʔδϯάͰςετ͞ΕͨUBHΛຊ൪ʹσϓϩΠ

  47. #MVF(SFFOσϓϩΠ  

  48. ඞཁੑ w σϓϩΠ͸&$4ͷϩʔϦϯάΞοϓσʔτ w ͨͩ͠ɺ&MBTUJ$BDIF౳ɺϝϯςφϯε΢Ο ϯυ΢΍ΞοϓάϨʔυʹதஅ͕ඞཁͳϛυ ϧ΢ΣΞ΋͋Δ w ຊ൪؀ڥͰެ։લςετ 

    
  49. ߏ੒   -JTUFOFS3VMFͷ 5BSHFU(SPVQΛ ೖΕସ͑Δ

  50. &MBTUJ$BDIFͷΞοϓάϨʔυ   ৽͍͠&MBTUJ$BDIFΛ࡞੒͠ ଴ػܥͷ઀ଓઌΛ͔͑ͯ #MVF(SFFOΛೖΕସ͑Δ New

  51. ଴ػܥͰެ։લςετ   ଴ػܥʹ)PTU/BNFͰͷ3VMFΛ௥Ճ͠ ಛఆͷυϝΠϯͰΞΫηεͰ͖ΔΑ͏ʹ͢Δ

  52. ·ͱΊ w %PDLFSΛ࢖͏ͱ։ൃ࣌ʹຊ൪؀ڥͷΤϥʔ ͕ͰΔʢ͜ͱ΋͋Δ  w ཁ͍݅ͩ͠Ͱ͕͢ɺݸਓతʹ͸ࠓ͸·ͩ &$4 PO&$ ͕͓͢͢Ί

     
  53. ͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠