Slide 1

Slide 1 text

&$खಈσϓϩΠ͔Β &$4ˍ $PEF1JQFMJOFʹม͑ͯΈͨ גࣜձࣾ".%MBC ࣲాҡ৽

Slide 2

Slide 2 text

ࣗݾ঺հ ࣲాҡ৽ͱਃ͠·͢ɻ ஍ݩͷதখاۀʹͯӦۀ৬ʢ̑೥ʣ ˣ גࣜձࣾώτΫηʢΤϯδχΞͱͯ͠స৬ʣ ˣ גࣜձࣾ".%MBC ݱࡏ ͓স͍ΤϯδχΞͱͯ͠஍ҐΛཱ͍֬ͨ͠ɻɻ

Slide 3

Slide 3 text

ΞδΣϯμ ❏ ܦҢ ❏ &$4ͷ֓ཁ ❏ &$4࡞੒·Ͱͷ͋Ε͜Ε ❏ ٧·ͬͨͱ͜Ζᶃ ❏ ٧·ͬͨͱ͜Ζᶄ ❏ $PEFQJQFMJOFಋೖ ❏ ·ͱΊ d&$खಈσϓϩΠ͔Β &$4ˍ $PEF1JQFMJOFʹม͑ͯΈͨ d

Slide 4

Slide 4 text

ܦҢ

Slide 5

Slide 5 text

౎౓TTIͰೖͬͯखಈͰૢ࡞͸ةݥͩ͠ɺԿΑΓखؒɻɻɻ &$4৮ͬͯΈ͍ͨʂ ͦΖͦΖखಈσϓϩΠ͔Β͞ΑͳΒ͍ͨ͠ɻɻ

Slide 6

Slide 6 text

何よりイケてない気がする!!

Slide 7

Slide 7 text

ݱঢ়ͷ௒ΞφϩάσϓϩΠखॱ TTIͰFDʹೖΔ HJUQVMMPSJHJONBTUFS ECʹมߋ͕͋Ε͹ɺNJHSBUF EPDLFSJNBHFΛCVJME EPDLFSDPNQPTFVQ

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

&$4ͷ֓ཁ

Slide 10

Slide 10 text

"84্ͰEPDLFSίϯςφΛ؆୯ʹ࣮ߦͰ͖ΔαʔϏε λΠϓ͸&$ͱ'"3("5& &$ จࣈ௨ΓFDͷதʹίϯςφΛݐͯΔ TTIͰೖͬͯԿ͔ૢ࡞͍ͨ࣌͠ʹศརɻ GBSHBUF FDͷ؅ཧΛ͠ͳͯ͘΋͍͍ εέʔϧ͕༰қ ECS

Slide 11

Slide 11 text

͜ΕΛ"84্Ͱ΍Δͷ͕ɺ&$4 ϩʔΧϧͰEPDLFSΛىಈ͢ΔྲྀΕͱͯ͠ɻɻ %PDLFSGJMFͷ༻ҙ EPDLFSCVJMEUOHJOYGEPDLFSOHJOY EPDLFSSVOOHJOY

Slide 12

Slide 12 text

UBTLEFGJOJUJPO TFSWJDF 5BTL 5BTL DMVTUFS &$4 EPDLFSDPNQPTFZNMΈ͍ͨͳ΋ͷ ࢖༻͢ΔEPDLFSJNBHF͸ʁ QPSUͷࢦఆ ؀ڥม਺ͷઃఆ ϘϦϡʔϜͷઃఆ UBTLEFGJOJUJPOʁ

Slide 13

Slide 13 text

UBTLEFGJOJUJPO TFSWJDF 5BTL 5BTL DMVTUFS &$4 &$4Λ࡞੒͢Δ্ͰશମΛ·ͱΊΔ ശΈ͍ͨͳ΋ͷ DMVTUFSʁ

Slide 14

Slide 14 text

5BTLΛ·ͱΊΔ΋ͷ UBTLEFGJOJUJPOΛ΋ͱʹ5BTLΛ্ཱͪ͛Δ ࢖༻͢ΔλεΫͷ਺͸ʁ ϩʔυόϥϯαʔͷ࢖༻༗ແ "1*ɺ$MJFOUΈ͍ͨͳΠϝʔδ UBTLEFGJOJUJPO TFSWJDF 5BTL 5BTL DMVTUFS &$4 TFSWJDFʁ

Slide 15

Slide 15 text

UBTLEFGJOJUJPO TFSWJDF 5BTL 5BTL DMVTUFS &$4 EPDLFSίϯςφΛ·ͱΊͨ΋ͷ &$λΠϓͰ͋Ε͹ɺ5BTL&$ͱ͍͏ ೝࣝͰྑ͍͔΋͠Εͳ͍ 5BTLʁ

Slide 16

Slide 16 text

&$4࡞੒·Ͱͷ͋Ε͜Ε

Slide 17

Slide 17 text

˔ DMVTUFS࡞੒ &$4ϓϩδΣΫτͷശΈ͍ͨͳ΋ͷ ˔ UBTLEFGJOJUJPOͷ࡞੒ ίϯςφͷىಈํ๏ EPDLFSDPNQPTFZNMΈ͍ͨͳ΋ͷ ˔ TFSWJDFͷ࡞੒ λεΫΛ·ͱΊΔ΋ͷ ˔ EPDLFSJNBHFͷొ࿥

Slide 18

Slide 18 text

EPDLFSIVCͱಉ͡Α͏ͳαʔϏεͰJNBHFΛొ࿥Ͱ͖Δ ΋ͪΖΜEPDLFSQVMM΋Ͱ͖Δ l BXTFDSHFUMPHJOQBTTXPSESFHJPOࢦఆϦʔδϣϯ cEPDLFSMPHJOVTFSOBNF"84 QBTTXPSETUEJOBXTΞΧ΢ϯτELSFDSࢦఆϦʔδϣϯBNB[POBXTDPN l EPDLFSCVJMEUOHJOY l EPDLFSUBHOHJOYMBUFTUBXTΞΧ΢ϯτELSFDSࢦఆϦʔδϣ ϯBNB[POBXTDPNOHJOYMBUFTU l EPDLFSQVTIBXTΞΧ΢ϯτELSFDSBQOPSUIFBTUBNB[POBXTDPNOHJOYMBUFTU &$3ʹEPDLFSΠϝʔδΛొ࿥

Slide 19

Slide 19 text

٧·ͬͨͱ͜Ζᶃ

Slide 20

Slide 20 text

BXTDMJΛීஈ࢖Θͳ͍͔ΒɺJBNͷ੾Γସ͑ํͰ೰Ήɻɻɻ BXTFDSHFUMPHJOQBTTXPSESFHJPOࢦఆϦʔδϣϯ cEPDLFSMPHJOVTFSOBNF"84 QBTTXPSETUEJOBXTΞΧ΢ϯτELSFDSࢦఆϦʔδϣϯBNB[POBXTDPN &$3ʹQVTI͢ΔBXTΞΧ΢ϯτͱผͷΞΧ΢ϯτͰϩάΠϯͨ͠৔߹ɺQVTI͕Ͱ͖ͳ͍ɻ BXTΞΧ΢ϯτ͕ෳ਺͋Δ৔߹͸FYQPSU"84@%&'"6-5@130'*-&QSPGJMFOBNF Ͱ࢖༻͢ΔΞΧ΢ϯτΛ੾Γସ͔͑ͯΒɺ&$3ʹϩάΠϯ͢Δ QVTI͕Ͱ͖ͳ͍ɻɻɻɻɻ

Slide 21

Slide 21 text

٧·ͬͨͱ͜Ζᶄ

Slide 22

Slide 22 text

nginx Rails ιέοτ௨৴Λߦ͏ʹ͸ 3BJMTͷιέοτϑΝΠϧΛڞ༗͢Δඞཁ͕͋Δ

Slide 23

Slide 23 text

volume task GBSHBUF OHJOYίϯςφ͔Β ϘϦϡʔϜιʔεΛSBJMTίϯςφʹࢦఆ &$ ϘϦϡʔϜΛ࡞੒͠ɺίϯςφಉ࢜Ͱڞ༗͢Δ ソケット通信 ソケット通信 WPMVNFͷڞ༗ socketファイル &'4Λ࢖͑͹ଞʹ΍Γํ͕͋Δ͔΋ɻɻɻ volume task ソケット通信

Slide 24

Slide 24 text

OHJOYίϯςφ͔ΒϘϦϡʔϜΛಡΈࠐΉ railsのDockerfileにて VOLUMEを作成 OHJOYɺSBJMTίϯςφ͔Βڞ༗ͷϘϦϡʔϜΛϚ΢ϯτ͢Δ ボリュームの作成 &$̎λΠϓͷ৔߹ 'BSHBUFͷ৔߹

Slide 25

Slide 25 text

$PEFQJQFMJOFಋೖ

Slide 26

Slide 26 text

DPEFQJQFMJOFͰ$*$%ͷύΠϓΛ࡞ΓɺύΠϓ Λͦͷ΄͔ͷαʔϏεͰͭͳ͘Πϝʔδ

Slide 27

Slide 27 text

ࠓճ࢖༻ͨ͠αʔϏε

Slide 28

Slide 28 text

ソース ビルド テスト デプロイ

Slide 29

Slide 29 text

Pipeline Transition Stage Action Action Stage Action Action Action 1JQFMJOF $PEFQJQFMJOFͷ࠷্Ґ֓೦ɻ֤ϓϩηε Λ·ͱΊͨ΋ͷ 4UBHF 1JQFMJOFͷҰ࿈ͷϓϩηεɻϏϧυɺςε τɺσϓϩΠ͕͜Εʹ͋ͨΔ "DUJPO 4UBHF্ͷ۩ମతͳλεΫɻ৽͍͠ίϯ ςφͷλεΫʹஔ͖׵͑Δͱ͔ɺ%PDLFS CVJMEɺ%PDLFSQVTIͳͲ 5SBOTJUJPO ࣍ͷεςʔδʹҠΔॲཧ

Slide 30

Slide 30 text

Action Category(アクション内容) Action Providers(どのサービスが行うか) Souce Amazon S3, Amazon ECR, CodeCommit, Github, Bitbucket Build CodeBuild, Jenkins Test CodeBuild, Jenkins Deploy Amazon S3, Amazon ECS, CodeDeploy

Slide 31

Slide 31 text

Pipeline Souce Deploy Build docker build, ECRへの docker-push git pushをトリガーにpipeline の実行し、ソースを取得 古いコンテナを新しいコンテ に差し替える Transition Transition buildspec.yml imagedefinitions .json version: 0.2 phases: pre_build: commands: - $(aws ecr get-login --region $AWS_DEFAULT_REGION --no-include-email) 環境変数定義ができる build: commands: - docker build -t $AWS_ACCOUNT_ID.dkr.ecr.ap-northeast-1.amazonaws.com/rails:latest . post_build: commands: - docker push $AWS_ACCOUNT_ID.dkr.ecr.ap-northeast-1.amazonaws.com/rails:latest - echo Writing image definitions file... - printf '[{"name":"rails","imageUri":"%s"}]' - $AWS_ACCOUNT_ID.dkr.ecr.ap-northeast-1.amazonaws.com/rails:latest > imagedefinitions.json artifacts: files: imagedefinitions.json [ {"name":"rails","imageUri":"AWS_ACCOUNT_ID.dkr.ecr.ap-northeast- 1.amazonaws.com/rails:latest"} ]

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

·ͱΊ

Slide 34

Slide 34 text

˔ ӡ༻ίετ͕ܹݮͨ͠ɻ ˔ "84৮Δͷָ͕͘͠ͳΔɻ ˔ $PEFQJQFMJOF࢖͍΍͍͢ʂ ˔ جຊతͳ%PDLFSͷཧղେࣄʂ ͞ΑͳΒखಈσϓϩΠ $MPVE'PSNBUJPOͰߏஙͯ͠Έ͍ͨ ॳΊͯͷ$*$%͸$PEFQJQFMJOF͓͢͢Ί %PDLFSͷཧղ͕͋ͬͯͦ͜࢖༻Ͱ͖ΔαʔϏε

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

$PEFγϦʔζͰ࢝ΊΔ͸͡Ίͯͷ$*$% IUUQTEFWDMBTTNFUIPEKQBSUJDMFTDJDEXJUIDPEFTFSJFTBUIJHPCBTIJBXT ϙʔτϑΥϦΦΛ&$4Ͱʂʳ3BJMTº/HJOYΞϓϦΛ'BSHBUFʹσϓϩΠ͢Δ·ͰΛஸೡʹઆ໌ͯ͠Έͨ 71$࡞੒ʙ$JSDMF$*ʹΑΔࣗಈσϓϩΠ·Ͱ લฤ IUUQTRJJUBDPNNBSVJUFNTFEBCBEFEBEC ʲ"84ೖ໳ʳ&$4 'BSHBUF ͱ&$3Ͱָʑίϯςφ͔Β)FMMP8PSME͠Α͏ʂ IUUQTXXXZPVUVCFDPNXBUDI W@'Y-QYHNP ॳ৺ऀͰ΋Ͱ͖Δʂ &$4º &$3º $JSDMF$*Ͱ3BJMTΞϓϦέʔγϣϯΛίϯςφσϓϩΠ IUUQTRJJUBDPNTBPOHUYJUFNTGEEC ࢀߟࢿྉ "84$PEF1JQFMJOFͰ $*$%ͷ࢓૊ΈΛߏங͓ͨ͠࿩ IUUQTCMPHTQBDFNBSLFUDPNDPEFDJDEDPEFQJQFMJOF "NB[PO&$$POUBJOFS4FSWJDF &$4 ͷ֓೦੔ཧ IUUQTRJJUBDPN/FX(ZVJUFNTFEFEBCEE