Slide 1

Slide 1 text

RailsΞϓϦͷ ߏ੒؅ཧɾσϓϩΠ౳ͷ࿩ TechBlog Deep Dive Meetup #1 2016-07-05 @onigra_

Slide 2

Slide 2 text

onigra Yudai Suzuki / ླ໦༤େ onigra_ tenso, inc. / tensoגࣜձࣾ

Slide 3

Slide 3 text

Monolithic PHP Application Micro Ruby Application Micro Ruby Application Micro Ruby Application Micro Ruby Application

Slide 4

Slide 4 text

·ͱΊ • AWSͷΑ͋͘Γͦ͏ͳߏ੒ͰɺͦΜͳʹಛघͳ͜ͱ͸΍ͬͯͳ͍ • ߏ੒؅ཧ: Terraform, Ansible • AMI࡞੒: ಠࣗPackerΫϩʔϯ • σϓϩΠ: Capistrano + AutoScalingGroupΛ࢖༻ͨ͠BlueGreenDeploy • ύϑΥʔϚϯε؂ࢹ: NewRelic (ࠓ೔࿩͞ͳ͍) • ΫϥογϡϨϙʔτ: Bugsnag (ࠓ೔࿩͞ͳ͍) • ϩάऩू: Fluentd + S3 (ࠓ೔࿩͞ͳ͍) • ݸਓతʹؾʹͳΔ΋ͷ: DeployBot, PaperTrail, Loggly, ClowdWatch Logs

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Terraform

Slide 7

Slide 7 text

؅ཧʹ޲͘Ϧιʔεͱ޲͔ͳ͍ Ϧιʔε͕͋Δ • ܧଓతʹ؅ཧ • VPC, S3, IAM, Route53 • ߏங࣌ͷΈ • RDS, ElastiCache

Slide 8

Slide 8 text

՝୊ͱࠓޙͷల๬ • ϓϧϦΫ -> CircleCIͰద༻ͷྲྀΕΛ࡞Γ͍ͨ • օ͞ΜϦϙδτϦ͸Ͳ͏͍͏ײ͡Ͱ࡞ͬͯ·͔͢ʁ • طଘͷߏ੒؅ཧԽʹஔ͔Εͯͳ͍ϦιʔεΛͳΜ ͱ͔͍ͨ͠໰୊ • TerraformingͰͳΜͱ͔͍͖͍ͯͨ͠

Slide 9

Slide 9 text

Ansible

Slide 10

Slide 10 text

ݸਓతͳࡶײΛ Ҏલ·ͱΊ·ͨ͠ • Ansibleࡶײ (https://gist.github.com/onigra/ 1fd3b6e744bc23071bf3) • v2.0͕ग़Δલͷ಺༰ͳͷͰ஫ҙ

Slide 11

Slide 11 text

AMI࡞੒ ಠࣗPackerΫϩʔϯ

Slide 12

Slide 12 text

࡞ͬͨܦҢ • ౰࣌ɺPackerͷAnsibleϦϞʔτ࣮ߦ͕Ͱ͖ͳ ͔ͬͨ • LaunchConfigͷ࡞੒ͱAutoScalingGroupͷ੾ Γସ͑·Ͱ΍ͬͯ΄͍͠ • https://speakerdeck.com/onigra/about- tsudura

Slide 13

Slide 13 text

Ͳ͜·Ͱ࣮ߦ͢Δ͔ܾΊΕΔ • Provisioning͚ͩͯ͠Πϯελϯε͸མͱ͞ͳ ͍ • Packerͱಉ͡AMIͷ࡞੒·Ͱ • LaunchConfig࡞Δॴ·Ͱ • AutoScalingGroup΁ͷඥ෇͚·Ͱ

Slide 14

Slide 14 text

ࠓޙ΍Γ͍ͨ • PackerͰ΋AnsibleͷRemote࣮ߦ͕Ͱ͖ΔΑ ͏ʹͳͬͨͷͰɺ੾Γସ͍͖͍͑ͯͨ • ϓϧϦΫ -> CI͔ΒࣗಈϏϧυ͍͖͍ͯͨ͠

Slide 15

Slide 15 text

Capistrano & AutoScalingGroupΛ ࢖༻ͨ͠BlueGreenDeploy

Slide 16

Slide 16 text

ํ਑ • ιʔείʔυͷमਖ਼ͷΈ͸Capistrano • Πϯελϯεىಈ࣌ʹࣗ਎ͷΠϯελϯεʹ σϓϩΠ(Capistrano࣮ߦ) • ϛυϧ΢ΣΞͷΞοϓσʔτ౳͕͋Δ৔߹͸ BlueGreenDeploy

Slide 17

Slide 17 text

՝୊ • BlueGreenDeploy͕ࣗಈԽͰ͖ͯͳ͍ • ϒϥϯν੾Γସ͑ΊΜͲ͍͘͞໰୊

Slide 18

Slide 18 text

master

Slide 19

Slide 19 text

master rails5

Slide 20

Slide 20 text

master rails5

Slide 21

Slide 21 text

master rails5

Slide 22

Slide 22 text

master rails5 Don’t Delete!

Slide 23

Slide 23 text

master rails5 Merge

Slide 24

Slide 24 text

master(New) rails5 Don’t Delete!

Slide 25

Slide 25 text

master(New) rails5 Don’t Delete!

Slide 26

Slide 26 text

master(New) rails5 Don’t Delete!

Slide 27

Slide 27 text

໰୊఺ • 2ճAMIͷϏϧυ͕ൃੜ͢Δ • AMIͷ࡞੒࣌ؒ΋അࣛʹͳΒͳ͍ • ϒϥϯνͳ͔ͳ͔ফͤͳ͍

Slide 28

Slide 28 text

൓ল఺ • ʮGit͸σϓϩΠπʔϧͰ͸͋Γ·ͤΜʯ • https://speakerdeck.com/fujiwara3/ awsfalseotosukerutonakayokufu-kihe-u • PullܕσϓϩΠ or Docker

Slide 29

Slide 29 text

ͦͷଞࠓޙ΍Γ͍ͨ͜ͱ ڵຯͷ͋Δ͜ͱ • ServerspecʹΑΔΠϯϑϥςετ • ΧδϡΞϧʹϩάݟΔͷʹLogglyͱ͔PaperTrail ͱ͔ClowdWatch Logsͱ͔࢖ͬͯΈ͍ͨ • ੩తίϯςϯπͷΈ؅ཧͯ͠ΔϦϙδτϦ͕͋ͬ ͯɺͦ͜ͰσβΠφʔ΋σϓϩΠ͠΍͘͢͢ΔΑ ͏ʹɺDeployBot࢖͍͍ͨ

Slide 30

Slide 30 text

͜ͷޙ࿩ͤͨΒخ͍͜͠ͱ • ϩάऩू • σϓϩΠ • TerraformϦιʔεͷϦϙδτϦߏ੒ • Docker