Slide 1

Slide 1 text

classmethod.jp 1 ͸͡Ίʹ

Slide 2

Slide 2 text

2 ΞϓϦέʔγϣϯ ΤϯδχΞ ͷਓʁ

Slide 3

Slide 3 text

3 Πϯϑϥ ΤϯδχΞ ͷਓʁ

Slide 4

Slide 4 text

classmethod.jp 4 "84Λ ࢖͍ͬͯΔਓʁ

Slide 5

Slide 5 text

classmethod.jp 5 %PDLFSΛ ࢖͍ͬͯΔਓʁ

Slide 6

Slide 6 text

classmethod.jp 6 ۀ຿Ͱ%PDLFSΛ ࢖͍ͬͯΔਓʁ

Slide 7

Slide 7 text

DMBTTNFUIPEKQ "84ͱ%PDLFSͰ࣮ݱ͢Δ *OGSBTUSVDUVSFBT$PEF *OGSBTUSVDUVSFBT$PEF$BTVBMࡳຈ Ϋϥεϝιουגࣜձࣾ ࠤʑ໦ɹେี

Slide 8

Slide 8 text

classmethod.jp 8 w ࣗݾ঺հ w *OGSBTUSVDUVSFBT$PEFͷॴײ w "84ʹ͓͚Δ*OGSBBT$PEF w %PDLFSΛ࢖ͬͨ*OGSBBT$PEF w "84%PDLFSͰͷ*OGSBBT$PEF ΞδΣϯμ

Slide 9

Slide 9 text

classmethod.jp 9 ࣗݾ঺հ

Slide 10

Slide 10 text

classmethod.jp 10 ࣗݾ঺հ ࠤʑ໦ɹେี !TNPLFZNPOLFZBLB͢΋͚ 5XJUUFS'BDFCPPL

Slide 11

Slide 11 text

classmethod.jp 11 Ϋϥεϝιουגࣜձࣾ

Slide 12

Slide 12 text

classmethod.jp 12 "84 ίϯαϧςΟϯά෦ ෦௕

Slide 13

Slide 13 text

classmethod.jp 13 ࡳຈΦϑΟε ΤϦΞ Ϛωʔδϟ

Slide 14

Slide 14 text

classmethod.jp 14 Ғͦ͏ͳ ݞॻ͖ Ϋι໺࿠

Slide 15

Slide 15 text

classmethod.jp 15 γχΞ ιϦϡʔγϣϯ ΞʔΩςΫτ

Slide 16

Slide 16 text

classmethod.jp 16 ຊ௒ͷٕज़ϒϩά

Slide 17

Slide 17 text

classmethod.jp 17 ݞॻ͖ Ϋι໺࿠ Ͱ͸ͳ͍

Slide 18

Slide 18 text

classmethod.jp 18 ΑΖ͘͠ ͓ئ͍͠·͢

Slide 19

Slide 19 text

classmethod.jp 19 *OGSBTUSVDUVSF BT$PEFͷॴײ

Slide 20

Slide 20 text

classmethod.jp 20 w Πϯϑϥߏஙखॱ͕શ෦ίʔυʹͳΔ w ίʔυͳͷͰϦϙδτϦͰ؅ཧͰ͖Δ w ίʔυͳͷͰϓϧϦΫͰมߋ؅ཧͰ͖Δ w ίʔυͳͷͰίʔυϨϏϡʔ͕Ͱ͖Δ w ίʔυͳͷͰ$*Ͱ͖Δ *OGSBTUSVDUVSFBT$PEFͬͯԿʁ

Slide 21

Slide 21 text

classmethod.jp 21 *OGSBTUSVDUVSFBT$PEFͬͯԿʁ ߏ੒؅ཧͱมߋ؅ཧΛ ୆ாϕʔε͔Β ίʔυϕʔε΁

Slide 22

Slide 22 text

classmethod.jp 22 w αʔόͷ৽نಋೖ w ϋʔυ΢ΣΞ؅ཧ୆ாͷ௥ه w 04ɺϛυϧ΢ΣΞ؅ཧ୆ாͷ௥ه w αʔόͷߋ৽ w ϋʔυ΢ΣΞ؅ཧ୆ாͷߋ৽ w 04ɺϛυϧ΢ΣΞ؅ཧ୆ாͷ௥ه w ࡞ۀཤྺ؅ཧ୆ாͷߋ৽ ΦϯϓϨϛεͱखॱॻͷ࣌୅

Slide 23

Slide 23 text

classmethod.jp 23 w αʔόͷ৽نಋೖ w ίʔυΛฤू w ϓϦϦΫɺϨϏϡʔɺϚʔδ w αʔόͷߋ৽ w ίʔυΛฤू w ϓϦϦΫɺϨϏϡʔɺϚʔδ Ϋϥ΢υͱίʔυͷ࣌୅ ʊਓਓਓʊ ʼɹָɹʻ ʉ:?:ʉ

Slide 24

Slide 24 text

classmethod.jp 24 w ίʔυͰߏ੒؅ཧΛ͍ͨ͠ͱ͖ w ίʔυͰมߋ؅ཧΛ͍ͨ͠ͱ͖ w શ͘ಉ͡؀ڥΛ৽نʹߏங͢Δχʔζ͕ ͋Δͱ͖ ͲΜͳ࣌ʹ*OGSBΛ$PEFԽ͢Δ΂͖͔ʁ

Slide 25

Slide 25 text

classmethod.jp 25 શ͘ಉ͡Πϯϑϥ؀ڥΛ৽نʹߏங Instance Instance RDS DB Instance RDS DB Instance Standby (Multi-AZ) Elastic Load Balancing Instance Instance RDS DB Instance RDS DB Instance Standby (Multi-AZ) Elastic Load Balancing <ポチッ

Slide 26

Slide 26 text

classmethod.jp 26 $PEFԽͨ͠*OGSBΛ࢖͍ճͨ͢ΊͷϙΠϯτ ঢ়ଶΛ࣋ͨͤͳ͍

Slide 27

Slide 27 text

classmethod.jp 27 ঢ়ଶΛ͍࣋ͬͯΔ৔߹ EC2 RDS DBのイニシャルデータが   開発当時のまま... イメージに   アプリケーションソース   コードを内包、   1stリリースのまま...

Slide 28

Slide 28 text

classmethod.jp 28 ঢ়ଶΛ͍࣋ͬͯͳ͍৔߹ EC2 RDS S3 最新の   アプリケーションソース   コードをgit  clone gitに含まれている   最新のDBイニシャルデータを   import ログは全て   外部ストレージに   アウトプット

Slide 29

Slide 29 text

classmethod.jp 29 ঢ়ଶΛ͍࣋ͬͯͳ͚Ε͹ Կճ΍ͬͯ΋ ࠷৽ͷιʔείʔυͰ ಉ͡γεςϜ͕ ग़དྷ্͕Δ

Slide 30

Slide 30 text

classmethod.jp 30 ͭ·Γ ႈ౳ੑ͕ ֬อ͞ΕΔ

Slide 31

Slide 31 text

classmethod.jp 31 ͋͊͜Εͩ *NNVUBCMF

Slide 32

Slide 32 text

classmethod.jp 32 ͭ·Γ *OGSBΛ$PEFԽ͢Δͱ ࣗવͱ*NNVUBCMFͳ *OGSBʹͳΔ

Slide 33

Slide 33 text

classmethod.jp 33 ίʔυΫϥ΢υωΠςΟϒͳઃܭͱ͸ ೗Կʹঢ়ଶΛ ࣋ͨͤͳ͍͔

Slide 34

Slide 34 text

classmethod.jp 34 "84ʹ͓͚Δ *OGSBBT$PEF

Slide 35

Slide 35 text

classmethod.jp 35 "84$MPVE'PSNBUJPO +40/Ͱఆٛ͞ΕͨςϯϓϨʔτΛݩʹ "84ͷϦιʔεΛ ΦʔέετϨʔγϣϯ͢ΔαʔϏε

Slide 36

Slide 36 text

classmethod.jp 36 "84$MPVE'PSNBUJPO %FWFMPQFST*0Ͱ͸ $MPVE'PSNBUJPOʹ͍ͭͯ ຊͷهࣄ͕͋Γ·͢

Slide 37

Slide 37 text

classmethod.jp 37 +40/ςϯϓϨʔτΛॻ͘ {      "AWSTemplateFormatVersion":  "2010-‐‑‒09-‐‑‒09",      "Description":  "Create-‐‑‒Snapshot  -‐‑‒  scheduled  job  worker  instance",      "Parameters":  {          "KeyName":  {              "Description":  "Name  of  an  existing  EC2  KeyPair  to  enable  SSH   access  to  the  instances",              "Type":  "String",              "MinLength":  "1",              "MaxLength":  "64",              "AllowedPattern":  "[-‐‑‒_̲  a-‐‑‒zA-‐‑‒Z0-‐‑‒9]*",              "ConstraintDescription":  "can  contain  only  alphanumeric   characters,  spaces,  dashes  and  underscores."          },  

Slide 38

Slide 38 text

classmethod.jp 38 $MPVE'PSNBUJPOʹಥͬࠐΉ

Slide 39

Slide 39 text

classmethod.jp 39 ͠͹͠଴ͭ

Slide 40

Slide 40 text

classmethod.jp 40 "84Ϧιʔε͕ग़དྷ্͕Δ

Slide 41

Slide 41 text

classmethod.jp 41 w "VUP4DBMJOH w $MPVE'PSNBUJPO w $MPVE'SPOU w $MPVE5SBJM w $MPVE8BUDI w %BUB1JQFMJOF w %ZOBNP%# w &$ w &$4 w &MBTUJ$BDIF w &MBTUJD#FBOTUBML w &MBTUJD-PBE#BMBODJOH $MPVE'PSNBUJPO͕ରԠ͍ͯ͠ΔϦιʔε w *". w ,JOFTJT w -BNCEB w $MPVE8BUDI-PHT w 0QT8PSLT w 3FETIJGU w 3%4 w 3PVUF w 4 w 4JNQMF%# w 4/4 w 424

Slide 42

Slide 42 text

classmethod.jp 42 w ͍͍ͩͨରԠͯ͠Δ w Ұ෦ରԠ͍ͯ͠ͳ͍Ϧιʔε΍ύϥϝʔλ͕͋Δ w ରԠঢ়گ͸"843FTPVSDF5ZQFT3FGFSFODF Ͱ֬ೝͰ͖Δ w IUUQEPDTBXTBNB[PODPN "84$MPVE'PSNBUJPOMBUFTU6TFS(VJEF BXTUFNQMBUFSFTPVSDFUZQFSFGIUNM $MPVE'PSNBUJPO͕ରԠ͍ͯ͠ΔϦιʔε

Slide 43

Slide 43 text

classmethod.jp 43 w ແྉ w $MPVE'PSNBUJPOͷར༻ࣗମ͸ແྉ w ߏங͞Εͨ"84Ϧιʔεʹରͯ͠՝ۚ͞ΕΔ $MPVE'PSNBUJPOͷར༻ྉۚ

Slide 44

Slide 44 text

classmethod.jp 44 w +40/ςϯϓϨʔτίʔυ w *OGSBBT$PEFͷར఺Λ׆͔͍ͨ͠ w ϦϙδτϦͰ؅ཧ͍ͨ͠ w ϓϧϦΫͰมߋ؅ཧ͍ͨ͠ w ίʔυϨϏϡʔ͍ͨ͠ w ύϒϦοΫʹ͸ࡽͨ͘͠ͳ͍ ςϯϓϨʔτͷ؅ཧ

Slide 45

Slide 45 text

classmethod.jp 45 "84$PEF$PNNJU ϓϥΠϕʔτ(JUϦϙδτϦ ຊ೔ϦϦʔεʂ

Slide 46

Slide 46 text

classmethod.jp 46 "84$PEF$PNNJU http://dev.classmethod.jp/cloud/aws/aws-‐‑‒codecommit-‐‑‒released/

Slide 47

Slide 47 text

classmethod.jp 47 %PDLFSΛ࢖ͬͨ *OGSBBT$PEF

Slide 48

Slide 48 text

classmethod.jp 48 w %PDLFSίϯςφͷߏ੒Λ·ͱΊͯ هड़͢ΔઃఆϑΝΠϧ w .BLFGJMFͷΑ͏ͳॻࣜ w %PDLFSGJMFΛCVJME͢Δͱ%PDLFS ίϯςφΠϝʔδ͕ग़དྷ্͕Δ w ౰વϦϙδτϦͰ؅ཧͰ͖Δ %PDLFSGJMF

Slide 49

Slide 49 text

classmethod.jp 49 %PDLFSGJMF FROM  ruby:latest       RUN  gem  install  sinatra   RUN  gem  install  dalli       ADD  scripts/app.rb  /usr/ local/bin/app.rb       CMD  ["ruby","/usr/local/ bin/app.rb"]       EXPOSE  4567 FROM  scratch   COPY  ./sh  /bin/sh   COPY  ./libtinfo.so.5  /lib64/ libtinfo.so.5   COPY  ./libdl.so.2  /lib64/libdl.so. 2   COPY  ./libc.so.6  /lib64/libc.so.6   COPY  ./ld-‐‑‒linux-‐‑‒x86-‐‑‒64.so.2  / lib64/ld-‐‑‒linux-‐‑‒x86-‐‑‒64.so.2   CMD  ["/bin/sh"]

Slide 50

Slide 50 text

classmethod.jp 50 %PDLFSΛ࢖ͬͨ*OGSBBT$PEF EC2 Dockerfile Docker   Image  デプロイ Git  push hook

Slide 51

Slide 51 text

classmethod.jp 51 ͜ΕΛ アプリ   ケーション   コード

Slide 52

Slide 52 text

classmethod.jp 52 ͜͏͡Ό Docker   Image

Slide 53

Slide 53 text

classmethod.jp 53 w ؀ڥؙ͝ͱύοέʔδϯά w ίʔυҎ֎ͷʮΞϓϦέʔγϣϯ ͕ಈ͔ͳ͍ཁૉʯΛഉআ w ϛυϧ΢ΣΞͷόʔδϣϯ΍ઃఆ ʹґଘ͠ͳ͍͜ͱ͕อূ͞ΕΔ %PDLFSԽ͢ΔϝϦοτ

Slide 54

Slide 54 text

classmethod.jp 54 "84%PDLFS Ͱͷ *OGSBBT$PEF

Slide 55

Slide 55 text

classmethod.jp 55 ͜Μͳײ͡ Dockerfile CloudFormation   Template

Slide 56

Slide 56 text

classmethod.jp 56 w εέʔϧ͢Δ8FCΞϓϦ࣮ߦ؀ڥ Λ؆୯ʹߏஙɾ؅ཧ͢ΔαʔϏε w ΞϓϦΛΞοϓϩʔυ͢Δͱࣗಈ తʹσϓϩΠ w %PDLFSίϯςφʹରԠ w $MPVE'PSNBUJPO͔ΒߏஙՄೳ &MBTUJD#FBOTUBML%PDLFS

Slide 57

Slide 57 text

classmethod.jp 57 ͜Μͳײ͡ Dockerfile CloudFormation   Template

Slide 58

Slide 58 text

classmethod.jp 58 ·ͱΊ

Slide 59

Slide 59 text

classmethod.jp 59 w Ϋϥ΢υωΠςΟϒͳγεςϜ͸ *OGSBBT$PEFʹ͠Α͏ w *OGSBBT$PEFͳγεςϜ͸ঢ়ଶ Λ֎ग़͠ʹ͠Α͏ w "84ʹ͸ͦΕΛ࣮ݱ͢ΔͨΊͷ αʔϏε͕ͨ͘͞Μ͋Γ·͢ w %PDLFSΛ࢖͑͹ߋʹঢ়ଶඇґଘʹ ͳΓ·͢ ·ͱΊ

Slide 60

Slide 60 text

classmethod.jp 60 *OGSBBT$PEF͸ ։ൃͱӡ༻อकͷ ྆ํΛվળ͢Δ ·ͱΊ

Slide 61

Slide 61 text

classmethod.jp 61 "84ͱ%PDLFSͰ *OGSBTUSVDUVSFBT$PEFΛ ࣮ݱ͠ɺ ϏδωεΛര଎ʹ ·ͱΊ

Slide 62

Slide 62 text

No content