Slide 1

Slide 1 text

ࠓޙͷϏδωεΛࢧ͑Δ ٕज़ͱߟ͑ํ 2020/05/03 άϩʔόϧϏδωειϦϡʔγϣϯגࣜձ༷ࣾ ࣾ಺ษڧձཚೖฤ

Slide 2

Slide 2 text

ࣗݾ঺հ 2 Tomoya Kitaura ʢ32ࡀࣇʣ @kitta0108 ■৬ྺ - σʔληϯλʔӡ༻ 7೥ - ωοτϫʔΫΤϯδχΞ 3೥ - Web։ൃ 2೥໨ ■ษڧձӡӦ - TechOn - AWS JAWS ίϯςφࢧ෦

Slide 3

Slide 3 text

ΞδΣϯμ 3 1.SREͱ͸ 2.ιϑτ΢ΣΞͷ։ൃαΠΫϧ 3.ӡ༻ͱ։ൃͷ՝୊ 4.৴པੑͱ͸ 5.DevOpsղܾͷ5ͭͷKey 6.IaCͱ͸ 7.IaCͷྺ࢙ 8.ݱࡏͷIaC 9.·ͱΊ 10.͓קΊͷΞΫγϣϯϓϥϯ

Slide 4

Slide 4 text

1-1.SREͱ͸ 4 Site Reliability Engineeringͷུ Google͕ࣾఏএɺ࣮ફ͍ͯ͠ΔγεςϜ؅ཧͱαʔϏεӡ༻ͷํ๏࿦ͷ͜ͱɻ 2015೥11݄ʹϝϧΧϦͰ΋SREνʔϜΛൃ଍͢ΔͳͲɺ ࠓɺ஫໨͞Ε͍ͯΔߟ͑ํͷҰͭɻ

Slide 5

Slide 5 text

1-2.SREͱ͸ 5 Site Reliability Engineerͱ΋͍͍·͢ɻ ΍΍͍͜͠ Site Reliability EngineeringΛ࣮ફ͢Δ໾ׂͷਓΛࢦ͢ɻ ιϑτ΢ΣΞ։ൃͷଞʹ΋Πϯϑϥ΍ωοτϫʔΫͳͲͷ ෯޿͍εΩϧʹΑͬͯ৴པੑʹؔ࿈͢Δ՝୊Λղܾ͢Δɻ

Slide 6

Slide 6 text

2-1.ιϑτ΢ΣΞͷ։ൃαΠΫϧ 6 Ϗδωε ։ൃ ӡ༻

Slide 7

Slide 7 text

2-2.ιϑτ΢ΣΞͷ։ൃαΠΫϧ 7 Ϗδωε ։ൃ ӡ༻ Ϗδωεͷ੒ޭʹ͸։ൃαΠΫϧͷՃ଎͕ٸ຿ɻ Amazon͸೥ؒ5000ສճ 1࣌ؒʹ1000ճ σϓϩΠ͍ͯ͠Δͱ͍͏ᷚ

Slide 8

Slide 8 text

2-3.։ൃαΠΫϧΛૣΊΔऔΓ૊Έ 8 Ϗδωε ։ൃ ӡ༻ ΞδϟΠϧ։ൃͳͲͷख๏΋औΓೖΕΒΕ͖ͯͨɻ

Slide 9

Slide 9 text

2-4.։ൃαΠΫϧΛૣΊΔऔΓ૊Έ 9 Ϗδωε ։ൃ ӡ༻ DevOpsΛಋೖɻ SRE͸DevOpsͷՃ଎ʹߩݙͯ͘͠ΕΔ໾ׂ

Slide 10

Slide 10 text

3-1.։ൃͱӡ༻ͷ՝୊ 10 ։ൃ ӡ༻ ։ൃͨ͠γεςϜΛ ͍ͪૣ͘Ϣʔβʔʹಧ͚͍ͨʂ γεςϜͷ৴པੑΛߴΊ͍ͨʂ

Slide 11

Slide 11 text

3-2.ӡ༻؅ཧͷϨϏϡʔ(ຖिਫ༵೔) 11 ։ൃ ӡ༻ ͦΕ͚ͩͰ΋೔਺͔͔Δͳ͊ Ҿ͖ܧ͗ظؒͱ ͯ͠ ӡ༻։࢝͸5Ӧۀ೔։͚͍ͯͩ͘͞ɻ OJTΛઃ͚͍ͯͩ͘͞ɻ

Slide 12

Slide 12 text

3-3.ྫ͑͹ӡ༻ͷҾܧ 12 ։ൃ ӡ༻ ͏ʔΜɺमਖ਼͢Δ͚Ͳ ࢑ఆͰࠓͷखॱͰӡ༻։࢝ͯ͘͠Ε ͳ͍͔ͳ͊ ͏ʔΜ Ҿ͖ܧ͍ͩखॱ͕ෳࡶͩ͠ ϛε͕ى͖ͦ͏ͩͳɻ ೔਺΋λΠτͩͳ͊

Slide 13

Slide 13 text

3-4.ྫ͑͹ো֐࣌ͷΤεΧϨʔγϣϯ 13 ։ൃ ӡ༻ ࣮ߦ࣌ʹग़Δϝοηʔδ͔ͩΒ ໰୊ͳ͍Μ͚ͩͲͳ͊ɾɾɾ Ҿ͖ܧ͍ͩखॱॻͰ࣮ߦͨ͠Β XXXͬͯग़ͨΜͰ͕͢ɾɾɾ ͙͢ʹखॱॻमਖ਼ͯ͠΋Β͑·͔͢

Slide 14

Slide 14 text

3-5.։ൃͱӡ༻ͷ՝୊ 14 ։ൃ ӡ༻ ։ൃͨ͠γεςϜΛ ͍ͪૣ͘Ϣʔβʔʹಧ͚͍ͨʂ γεςϜͷ৴པੑΛߴΊ͍ͨʂ ͲͪΒ͕༏ઌ͢Δࣄ߲΋Ϗδωε্Ͱඞਢɻ Ͱ΋ͪΐͬͱߟ͑ํʹۃ୺ײ͕͋ͬͨɻ ࣌ͱͯ͠ϝʔϧͰઓ૪͕࢝·ͬͨΓɾɾɾ

Slide 15

Slide 15 text

3-6.Google͕ग़ͨ͠Ұͭͷબ୒ 15 ։ൃ ӡ༻ ӡ༻ͷઃܭ΋΍Γ·͢ɻ

Slide 16

Slide 16 text

3-7.Google͕ग़ͨ͠Ұͭͷબ୒ 16 ։ൃ SRE ։ൃʹઐ೦ ӡ༻Λઃܭɻ ιϑτ΢ΣΞ։ൃͰ՝୊Λղܾ γεςϜͷ৴པੑ͕อͨΕ͍ͯΔ৔߹͸ɺ ։ൃ΋ߦ͏ɻ

Slide 17

Slide 17 text

3-8.Google͕ग़ͨ͠Ұͭͷબ୒ 17 ։ൃ SRE ։ൃεϐʔυ͋͛Δʹ͸ɺ ӡ༻΋͕Μ͹Βͳ͖Ό ৴པੑΛߴΊͯɺ ։ൃ΋ਐΊΑ͏ʂ

Slide 18

Slide 18 text

4-1.৴པੑͱ͸ 18 ৴པੑΛఆٛ͢Δ3ͭͷཁૉ αʔϏε ϨϕϧࢦඪʢSLIʣ ྫ͑͹ϦΫΤετͷ੒ޭ཰΍ϨΠςϯγ γεςϜͷαʔϏε Ϩϕϧ໨ඪʢSLOʣ ྫ͑͹ϦΫΤετͷ੒ޭ཰99.9% αʔϏε Ϩϕϧܖ໿ʢSLAʣ ྫ͑͹ϦΫΤετͷ੒ޭ཰99.5%ΛԼճͬͨ࣌ʹฦۚ

Slide 19

Slide 19 text

4-2.ΤϥʔόδΣοτͷಋೖ 19 ͨͱ͑͹ 99.9 % ͷSLOΛઃఆͨ͠৔߹ɺ Ұϲ݄Λ30 ೔ؒͱ͢Δͱͦͷ͏ͪͷ0.1%ͳͷͰɺ ڐ༰μ΢ϯλΠϜ͸ 43 ෼Ͱ͢ɻ ٯʹߟ͑Δͱ݄ʹ43෼͸ো֐͕͓͖ͯ΋ɺ ໰୊ͱΈͳ͞ͳ͍ͱ͍͏ߟ͑ํɻ

Slide 20

Slide 20 text

4-3.Ϣʔβʔ͸ͲͪΒ͕خ͍͔͠ 20 99.5ˋΛ0.4%্͛Δͷʹඞཁͳ࿑ྗͱɺ ৽͍͠ػೳͷ։ൃΛϦϦʔε͢Δ͜ͱΛൺֱͯ͠ͲͪΒ͕ Α͍ͷ͔ɻαʔϏεʹΑͬͯݟఆΊΔඞཁ͕͋Δɻ Google Ͱͷಉ྅Ͱ͋Δ Perry Lorier ͸ܾ·ͬͯ͜͏ݴ͍·͢ɻ ʮSLO ͕ͳ͚Ε͹ɺ܅ͨͪͷ࢓ࣄ͸ͱͯ΋େมͩʯͱɻ https://cloud.google.com/blog/ja/products/gcp/availability-part-deux-cre-life-lessons

Slide 21

Slide 21 text

5-1.SREΛࢧ͑Δٕज़ 21 - ϚΠΫϩαʔϏεΞʔΩςΫνϟ - ίϯςφͱΦʔέετϨʔγϣϯ - CI/CD - ߴ౓ͳ؂ࢹ

Slide 22

Slide 22 text

22 Α͏΍͘൒෼ ͋ͱԿ෼ʁ

Slide 23

Slide 23 text

6-1.IaCͱ͸ 23 Infrastructer as Codeͷུ ௚༁͢Δͱʮίʔυͱͯ͠ͷΠϯϑϥʯ ΠϯϑϥΛίʔυͰهड़͢Δͱ͍͏͜ͱɻ

Slide 24

Slide 24 text

7-1.IaCͷྺ࢙ 24 ᴈ໌ظ ࢝·Γ͸ߏ੒؅ཧͷࣗಈԽ Automated Infrasctureͱ΋ݺ͹Ε͍ͯͨɻ

Slide 25

Slide 25 text

7-2.IaCద༻લͷߏ੒؅ཧ 25 ߏஙखॱॻ.xlsx ύϥϝʔλʔγʔτ.xlsx

Slide 26

Slide 26 text

7-3.ߏஙखॱॻͷྫ 26 ### ύοέʔδ؅ཧγεςϜΛ࠷৽ʹߋ৽ ### $ sudo apt update ### nginxΛΠϯετʔϧ ### $ sudo apt install nginx ### OSىಈ࣌ͷࣗಈىಈʹnginxΛొ࿥ ### $ sudo systemctl enable nginx

Slide 27

Slide 27 text

7-4.ߏஙखॱॻӡ༻࣌ͷਏΈ 27 खॱͷ్தͰࣦഊͨ͠ΒͲ͏͢Δʁ ো֐ͳͲͰྫ֎తʹߏ੒Λมߋͯͨ͠Β؅ཧ͸Ͳ͏ͳΔʁ ਓ͕࣮ؒߦ͢Δͱͯ͠ɺίϚϯυؒҧͬͨΒͲ͏͢Δʁ ৽͍͠ύοέʔδͷΠϯετʔϧΛ௥Ճͨ͘͠ͳͬͨΒͲ͏͢Δʁ

Slide 28

Slide 28 text

7-5.IaCԽͯ͠ΈΔɻ 28 ߏஙखॱॻ.xlsx ύϥϝʔλʔγʔτ.xlsx ansible_playbook.yml

Slide 29

Slide 29 text

7-6.ྫ͑͹AnsibleΛ࢖ͬͯIaCԽͨ͠ྫ 29 Playbook.yml - name: install nginx Apt: name=nginx - name: start nginx apt: name=nginx enabled=yes state=started

Slide 30

Slide 30 text

7-7.;;ΜɺͦΕ͕Ͳ͏͍ͨͬͯ͠͏ͷʁ खॱͷ్தͰࣦഊͨ͠ΒͲ͏͢Δʁ ো֐ͳͲͰྫ֎తʹߏ੒Λมߋͯͨ͠Β؅ཧ͸Ͳ͏ͳΔʁ ਓ͕࣮ؒߦ͢Δͱͯ͠ɺίϚϯυؒҧͬͨΒͲ͏͢Δʁ ৽͍͠ύοέʔδͷΠϯετʔϧΛ௥Ճͨ͘͠ͳͬͨΒͲ͏͢Δʁ 30

Slide 31

Slide 31 text

7-8.ͳɺͳΜͩͬͯ खॱͷ్தͰࣦഊͨ͠ΒͲ͏͢Δʁ ->్தͰࣦഊͨ͠ΒymlΛॻ͖௚ͯ͠࠶౓࣮ߦɻ ো֐ͳͲͰྫ֎తʹߏ੒Λมߋͯͨ͠Β؅ཧ͸Ͳ͏ͳΔʁ ->ো֐ͳͲͰߏ੒Λมߋ͢Δ৔߹͸ymlΛॻ͖௚ͯ͠ ద༻Λపఈ͢Δ͜ͱͰဃ཭ͷ͓͖ͳ͍ߏ੒؅ཧ͕࣮ݱɻ ਓ͕࣮ؒߦ͢Δͱͯ͠ɺίϚϯυؒҧͬͨΒͲ͏͢Δʁ ->ίϚϯυ͸ର৅ͷαʔόʔͱద༻͢ΔymlΛબ୒͢Δ͚ͩ ɹ ػցʹ΍ΒͤΔͱ͍͏ํ๏΋ɻ ৽͍͠ύοέʔδͷΠϯετʔϧΛ௥Ճͨ͘͠ͳͬͨΒͲ͏͢Δʁ ->৽͍͠ύοέʔδͷΠϯετʔϧ͸ymlʹ௥ه 31

Slide 32

Slide 32 text

8-1.ݱࡏͷIaC ͜Ε·Ͱ͸ɺ͋͘·Ͱͻͱͭͷαʔόʔʹରͯ͠ͷઃఆΛఆٛͰ͖ͯ ͍ͨʹ͗͢ͳ͔ͬͨɻ IaaSͷൃలʹ൐ͬͯɺIaC΋ΠϯϑϥશମΛఆٛͰ͖ΔΑ͏ʹͳͬ ͨɻ 32

Slide 33

Slide 33 text

8-2.ྫ͑͹ίʔϙϨʔταΠτͷߏ੒ྫ 33 https://ent-rance.com/ ඇެ։ ඇެ։

Slide 34

Slide 34 text

8-3.΋ͬͱ͍͢͝IaC 34 kubernetes(k8s) ͕࣌ؒͳ͍ͷͰ঺հ͚ͩɻ ΋͸΍IaCͱ͍͏࿮ͷ΋ͷͰ͸ͳ͘ɺͱͯ΋͍ΖΜͳ͜ͱ͕Ͱ͖Δɻ IaCͷ؍఺ʹϑΥʔΧεͯ͠දݱ͢Δͱɺ αʔόʔ͕མͪͯ͠·ͬͨ࣌ͷڍಈͳͲ΋؅ཧͰ͖Δɻ Πϯϑϥͱͯ͋͠Δ΂͖࢟Λҡ࣋͢Δ͜ͱ͕Մೳʹɻ

Slide 35

Slide 35 text

9.·ͱΊ 35 ɾࠓɺΠϯϑϥدΓͷ࢓ࣄΛ͍ͯ͠Δਓ͸ɺ ɹιϑτ΢ΣΞ։ൃͷΩϟονΞοϓ΋ฒߦͯ͠ਐΊΔͱ޾ͤʹͳΕΔ͔΋ɻ ɾӡ༻دΓͷ࢓ࣄΛ͍ͯ͠Δਓ͸ɺݱ৔ͷ՝୊Λιϑτ΢ΣΞͰղܾ͢Δ͜ͱ͕Ͱ͖ͳ͍͔ɻ ɹͱ͍͏ࢹ఺Λ΋ͬͯͯ͠ՄೳͳΒ࣮ߦͰ͖ΔͱΑ͍͔΋ɻ ɾӦۀɾܦӦऀͷํ΋ɺιϑτ΢ΣΞ։ൃΛ׆༻ͨ͠՝୊ղܾͱ͍͏ͷ͕ ɹ౰ͨΓલʹߦΘΕΔ࣌୅ʹ͍͖͍ۙͮͯͯΔɻ ɹຊۀͷΩϟονΞοϓ΋ඞཁͩͱ͸ࢥ͏͚Ͳɺ ɹͪΐͬͱͨ͠ίʔυͳΒ͔͚ͪΌ͏Έ͍ͨͳӦۀɾܦӦऀͷํͳΜ͍ͯͨΒ ɹͱͬͯ΋ૉఢͩͱࢥ͍·͢ɻ

Slide 36

Slide 36 text

10-1.͓קΊͷΞΫγϣϯϓϥϯ 36 ֶͼͷ͋Δॆ࣮ͨ͠ΰʔϧσϯ΢ΟʔΫʹͳΔΑ͏ɺ ΞΫγϣϯϓϥϯߟ͖͑ͯ·ͨ͠ʂ

Slide 37

Slide 37 text

10-2.͓קΊͷΞΫγϣϯϓϥϯ 37 ɾProgate https://prog-8.com/ ։ൃ؀ڥͷߏஙඞཁແ͠ɺϒϥ΢β͑͞ىಈ͢Ε͹ίʔυ͕͔͚Δɻ ࠲ֶͷ͋ͱʹ࣮ફͷαΠΫϧ͕܁Γฦ͞ΕΔͷͰ਎ʹ͖ͭ΍͍͢ɻ ແྉͰͨΊͤΔʂεϚϗͰ΋Ͱ͖Δʂ ɾQiita https://qiita.com/ ։ൃؔ࿈ͷϒϩά͕ͨ͘͞Μܝࡌ͞Ε͍ͯΔɻ τϨϯυ৘ใͳͲ͸ɺ͜͜ΛWatch͍ͯ͠Δ͚ͩͰ͋Δఔ౓௫ΊΔɻ ຖே15෼೷͘श׳Λʂ

Slide 38

Slide 38 text

10-3.͓קΊͷΞΫγϣϯϓϥϯ 38 ɾConnpass https://connpass.com/ ษڧձʹࢀՃ͠·͠ΐ͏ʂ ͕࣌ؒ߹Θͳͯ͘΋ࢀՃొ࿥͓͚ͯ͠͹ɺ ͋ͱͰΞʔΧΠϒ͕ݟΕΔέʔε΋ɾɾɾ ͦͯ͠ɺಘͨ஌ݟ͸ݴޠԽͯࣾ͠಺ʹڞ༗͠·͠ΐ͏ʂ Ξ΢τϓοτΛݟਾ͑ͨΠϯϓοτͱͯ΋େࣄɻ ɾFukabori.fm https://fukabori.fm/ ITٕज़Λൃ৴͍ͯ͠ΔPodcast ࠷ߴʹΘ͔Γ΍͍͢ɻͦͯ͠ͱͯ΋ਂ͍಺༰Λѻͬͯ͘ΕΔɻ ࡏ୐ϫʔΫͰ͕ۭ͍ࣖͯΔͱ͖ͷ͓ڙʹͲ͏ͧ

Slide 39

Slide 39 text

39 ͝੩ௌ͋Γ͕ͱ͏ޚ࠲͍·ͨ͠