Slide 1

Slide 1 text

$PEFγϦʔζͰ࢝ΊΔ͸͡Ίͯͷ$*$% "84ࣄۀຊ෦ίϯαϧςΟϯά෦ ਺ࢬਖ਼थ

Slide 2

Slide 2 text

ࣗݾ঺հ ͔ͣ͑ • AWSࣄۀຊ෦ ίϯαϧςΟϯά෦ • େࡕΦϑΟεۈ຿ • 2019೥1݄JOIN • ৬ྺ • WEBίϯαϧʢडୗ։ൃʣ8೥ • ࣗࣾαʔϏε։ൃӡ༻อक 2೥ • ޷͖ͳAWSαʔϏε • Terraform

Slide 3

Slide 3 text

IJHPCBTIJBXT

Slide 4

Slide 4 text

͜ͷηογϣϯͷΰʔϧ ର৅ऀ $*$%PS$PEFγϦʔζ
 Α͘஌Βͳ͍ ΰʔϧ $PEFγϦʔζศརʂ
 ࢖ͬͯΈΑ͏ʂ

Slide 5

Slide 5 text

͜ͷηογϣϯͰ΍Δ͜ͱ ͱ͋Δ։ൃ؀ڥʹCodeγϦʔζΛಋೖͯ͠ΑΓศརʹ

Slide 6

Slide 6 text

΋͘͡ • ༻ޠͷ੔ཧ • ࠓճѻ͏ʮͱ͋Δ؀ڥʯͷ঺հ • εςοϓ1ɿσϓϩΠ࡞ۀΛ؆୯ʹ͠Α͏ • εςοϓ2ɿ֤؀ڥ΁ͷσϓϩΠΛҰຊԽ͠Α͏ • εςοϓ3ɿGitϦϙδτϦ͔Β௚઀σϓϩΠ͠Α͏ • εςοϓ4ɿςετΛࣗಈ࣮ߦ͠Α͏ • ·ͱΊ

Slide 7

Slide 7 text

$*$%ͬͯԿʁ

Slide 8

Slide 8 text

$*$%ͬͯԿʁ ίʔυ Ϗϧυ ςετ σϓϩΠ ϦϦʔε·Ͱͷ࡞ۀΛ ࣗಈԽɺলྗԽ͢ΔࢼΈͷ͜ͱ

Slide 9

Slide 9 text

ͳΜͰ$*$%͕ඞཁͳͷʁ

Slide 10

Slide 10 text

ͳΜͰ$*$%͕ඞཁͳͷʁ ٻΊΒΕΔεϐʔυϨϕϧ্͕͕͍ͬͯΔ͔Β

Slide 11

Slide 11 text

ະϦϦʔε=ࡏݿ

Slide 12

Slide 12 text

$PEFγϦʔζͬͯԿʁ

Slide 13

Slide 13 text

$PEFγϦʔζͬͯԿʁ $*$%Λ࣮ݱ͢Δͷʹ໾ཱͭ"84ͷαʔϏε܈ͷ૯শ CodeCommit CodeBuild CodePipeline CodeDeploy CodeStar

Slide 14

Slide 14 text

ࠓճѻ͏؀ڥ

Slide 15

Slide 15 text

ͱ͋Δ؀ڥ • Laravel੡ΞϓϦ • ALB+EC2Ұ୆ • Ϩϯλϧαʔόʔ
 ʹGitϦϙδτϦ • SFTPͰϑΝΠϧ
 ΞοϓϩʔυͰ
 σϓϩΠ • ςετίʔυʁ

Slide 16

Slide 16 text

εςοϓɿσϓϩΠ࡞ۀΛ؆୯ʹ͠Α͏

Slide 17

Slide 17 text

ঢ়گΠϯελϯεΛ૿΍͢͜ͱʹͳΓ·ͨ͠ ΊΜͲ͍

Slide 18

Slide 18 text

$PEF%FQMPZ

Slide 19

Slide 19 text

$PEF%FQMPZ • σϓϩΠΛָʹ͢ΔαʔϏε • ZipԽͨ͠ιʔείʔυor
 GitHub্ͷιʔείʔυ
 ˣ
 ࢦఆͷEC2Πϯελϯε্ͳͲ
 ʹ؆୯ʹσϓϩΠ

Slide 20

Slide 20 text

$PEF%FQMPZͷ࢓૊Έ • σϓϩΠઌͷΠϯελϯεʹ
 AgentΛৗற • CodeDeployʹରͯ͠
 ϙʔϦϯά • ϓϩάϥϜߋ৽Λݕ஌ͨ͠Β
 औಘͯ͠഑ஔ
 ʴ ৭ʑͳλΠϛϯάͰ
 εΫϦϓτ΋࣮ߦՄೳ

Slide 21

Slide 21 text

$PEF%FQMPZͷઃఆ • σϓϩΠάϧʔϓ • σϓϩΠઌEC2Πϯελϯε • ιʔείʔυ

Slide 22

Slide 22 text

$PEF%FQMPZͷઃఆᶃσϓϩΠάϧʔϓ σϓϩΠର৅ͷΠϯελϯεΛࢦఆ͢Δ λάͰର৅Λࢦఆ

Slide 23

Slide 23 text

$PEF%FQMPZͷઃఆᶄσϓϩΠઌͷ&$ • AgentΠϯετʔϧ • HTTPSΞ΢τό΢ϯυΞΫηε • λάΛઃఆ • S3ΞΫηεݖݶ

Slide 24

Slide 24 text

$PEF%FQMPZͷઃఆᶅιʔείʔυ appspec.yml ϧʔτσΟϨΫτϦʹஔ͘ ιʔείʔυ಺ͷ৔ॴ Πϯελϯε಺ͷ৔ॴ ιʔείʔυ಺ʹ
 εΫϦϓτΛؚΊΔ εΫϦϓτ࣮ߦλΠϛϯά

Slide 25

Slide 25 text

$PEF%FQMPZͷσϓϩΠ࡞ۀ ZIPϑΝΠϧԽ S3όέοτ
 Ξοϓϩʔυ

Slide 26

Slide 26 text

ঢ়گվળσϓϩΠ࡞ۀ͕؆୯ʹͳΓ·ͨ͠ Πϯελϯε͕
 Կ୆૿͑ͯ΋ɺ
 ΤϯδχΞͷ
 ࡞ۀྔ͸ಉ͡

Slide 27

Slide 27 text

εςοϓ֤؀ڥ΁ͷσϓϩΠΛҰຊԽ͠Α͏

Slide 28

Slide 28 text

ঢ়گʮ4UHͱຊ൪؀ڥͦΕͧΕʹ$PEF%FQMPZ࢖͏ͷΊΜͲ͍Θʯ Stg؀ڥ ຊ൪؀ڥ

Slide 29

Slide 29 text

$PEF1JQFMJOF

Slide 30

Slide 30 text

$PEF1JQFMJOF • ֤αʔϏεΛ࿈ܞͤͯ͞CI/CDͷ
 ύΠϓϥΠϯΛ࡞ΔαʔϏε • AWSͷαʔϏεҎ֎΋࿈ܞՄೳ • ϑϩʔͷਐḿΛՄࢹԽ

Slide 31

Slide 31 text

$PEF1JQFMJOFͷ֓೦ͱ࢓૊Έ ※ਤ͸ʮCodePipelineϢʔβʔΨΠυ CodePipelineͷ֓೦ʯΑΓసࡌ
 (https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/concepts.html#concepts-how-it-works) • ύΠϓϥΠϯ • εςʔδ • τϥϯδγϣϯ • ΞΫγϣϯ • ΞʔςΟϑΝΫτ

Slide 32

Slide 32 text

ࠓճ࡞੒͢ΔύΠϓϥΠϯ

Slide 33

Slide 33 text

ঢ়گվળσϓϩΠ࡞ۀ͕͞Βʹ؆୯ʹͳΓ·ͨ͠ • Stgͱຊ൪؀ڥͷσϓϩΠΛҰͭͷྲྀΕʹ
 ·ͱΊΔ͜ͱ͕Ͱ͖ͨ • CodeDeployίϯιʔϧͰͷσϓϩΠ࡞ۀ΋ෆཁʹʢS3ʹΞοϓ ͨ͠Βࣗಈ։࢝)
 
 
 
 • Ͳͷεςοϓ·Ͱਐߦ͍ͯ͠Δͷ͔΋Θ͔Δ • ཤྺ΋ࢀরՄೳ

Slide 34

Slide 34 text

εςοϓɿ(JUϦϙδτϦ͔Β௚઀σϓϩΠ͠Α͏

Slide 35

Slide 35 text

ঢ়گʮຖճ[JQϑΝΠϧ࡞ͬͯ4ʹ্͛Δͷ΋ΊΜͲ͍͘͞Θʯ ZIPϑΝΠϧԽ S3όέοτ
 Ξοϓϩʔυ ύΠϓϥΠϯ
 ελʔτ

Slide 36

Slide 36 text

$PEF$PNNJU͔(JU)VCΛ࢖͓͏

Slide 37

Slide 37 text

Slide 38

Slide 38 text

$PEF$PNNJU

Slide 39

Slide 39 text

$PEF$PNNJU • GitϦϙδτϦͷϚωʔδυ αʔϏε
 =Πϯϑϥ؅ཧෆཁ • IAMϢʔβʔͰೝূೝՄͰ͖Δ

Slide 40

Slide 40 text

$PEF$PNNJU࢖͍ํ • ϦϙδτϦ࡞੒ • ίʔυϓογϡ • ύΠϓϥΠϯͷSource
 εςʔδΛमਖ਼ → • appspec.yml͔Β࣮ߦ͞ΕΔ
 εΫϦϓτ΋ཁमਖ਼

Slide 41

Slide 41 text

BQQTQFDZNM͔Β࣮ߦ͞ΕΔεΫϦϓτͷमਖ਼ w (JUϦϙδτϦ಺
 ͷίʔυ w ֎෦ϥΠϒϥϦ w (JUϦϙδτϦ಺
 ͷίʔυ w ֎෦ϥΠϒϥϦ εΫϦϓτ಺Ͱ
 ֎෦ϥΠϒϥϦΛ
 μ΢ϯϩʔυ σϓϩΠ σϓϩΠ

Slide 42

Slide 42 text

ঢ়گվળϦϞʔτϒϥϯνʹมߋՃ͑Δ͚ͩͰॲཧ։࢝ • GitϦϙδτϦͷαʔόʔ؅ཧ͕ෆཁʹ • ύΠϓϥΠϯͰιʔείʔυΛḷΔ͜ͱ͕༰қʹ ෭࣍
 ޮՌ

Slide 43

Slide 43 text

εςοϓɿςετΛࣗಈ࣮ߦ͠Α͏

Slide 44

Slide 44 text

ঢ়گʮ͜Ε͔Β͸ͪΌΜͱϢχοτςετॻ͍͍ͯ͜͏ͳʂʯ • ຊ൪؀ڥͰΤϥʔ͕ग़ͯ͠·ͬͨ • Ҏ߱ͷ༧๷ࡦͱͯͪ͠ΌΜͱ
 ςετΛॻ͍͍ͯ͘ํ਑ʹܾఆ • ςετύεͨ͠ίʔυ͚ͩσϓϩΠ
 ͢ΔΑ͏ʹ͍ͨ͠

Slide 45

Slide 45 text

$PEF#VJME

Slide 46

Slide 46 text

$PEF#VJME ϏϧυαʔϏε • ࢦఆͷεϖοΫͷίϯςφ্ʹ • ࢦఆͷϑΝΠϧΛஔ͍ͯ • ೚ҙͷίϚϯυΛ࣮ߦͯ͠ • ݁ՌΛS3ʹΞ΢τϓοτ͢Δ

Slide 47

Slide 47 text

$PEF#VJMEͰ΍Δ͜ͱ • AmazonLinux2্Ͱ • ඞཁͳύοέʔδΠϯετʔϧͯ͠ • ComposerͰ֎෦ϥΠϒϥϦΛΠϯετʔϧ • PHPUnit࣮ߦ

Slide 48

Slide 48 text

$PEF#VJMEͷઃఆιʔείʔυ buildspec.yml ϧʔτσΟϨΫτϦʹஔ͘ ଓ͘ Ϗϧυͷ֤ஈ֊͝ͱʹ
 ࣮ߦ͢ΔίϚϯυΛ
 هड़

Slide 49

Slide 49 text

$PEF#VJMEͷઃఆιʔείʔυ buildspec.yml ϧʔτσΟϨΫτϦʹஔ͘ ଓ͖ ԿΛΞ΢τϓοτʹ͢Δͷ͔
 ࠓճͷ৔߹͸શϑΝΠϧ

Slide 50

Slide 50 text

$PEF#VJMEͷઃఆ$PEF1JQFMJOF SourceͱStgσϓϩΠ
 ͷؒʹεςʔδ௥Ճ

Slide 51

Slide 51 text

$PEF#VJMEॲཧத composer install ࣮ߦ͍ͯ͠Δ͋ͨΓ

Slide 52

Slide 52 text

$PEF#VJMEॲཧத PHPUnit࣮ߦ

Slide 53

Slide 53 text

ςετࣦഊͨ͠Β ࣍ͷStg؀ڥ΁ͷσϓϩΠεςʔδ
 ʹભҠ͠ͳ͍ ͜Ε͸ҰͭલͷϦϏδϣϯ

Slide 54

Slide 54 text

ঢ়گվળίʔυͷ࣭Ξοϓ • ϦϞʔτϒϥϯνʹมߋՃ͑Δ౓ςετ࣮ߦ • ςετͰΤϥʔ͕ग़ͨ৔߹͸σϓϩΠ͞Εͳ͍ • (ςετ͸ॻ͍ͯͶ)

Slide 55

Slide 55 text

൪֎ฤɿ͔ΒΞϓϦέʔγϣϯΛ࡞Δͱ͖

Slide 56

Slide 56 text

$PEF4UBS

Slide 57

Slide 57 text

$PEF4UBS • ͜Ε·Ͱ঺հͯ͠དྷͨΑ͏ͳ
 CI/CDύΠϓϥΠϯ෇͖ͷ؀ڥΛ
 αΫοͱ࡞ͬͯ͘ΕΔ

Slide 58

Slide 58 text

-BSBWFMͷςϯϓϨʔτ΋͋Γ·͢

Slide 59

Slide 59 text

·ͱΊ

Slide 60

Slide 60 text

·ͱΊ • CodeγϦʔζΛ঺հ͠·ͨ͠ • ઃఆ͸໘౗ͳ΋ͷ΋͋Δ͔΋͠Εͳ͍
 Ͱ΋΍͓ͬͯ͘ͱ೔ʑͷ࡞ۀෛՙΛ௿ݮͰ͖Δ • CI/CD؀ڥ੔͑ͯշదͳ։ൃϥΠϑΛʂ

Slide 61

Slide 61 text

͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠