Slide 1

Slide 1 text

Ϋϥ΢υͱΦϯϓϨ Shunsuke Michii / Harukasan 2015-03-11

Slide 2

Slide 2 text

Harukasan / Shunsuke Michii • 2012೥ʹ৽ଔͱͯ͠ΠϯϑϥνʔϜʹ഑ଐ • ίϯςϯπ഑৴Λ͸͡Ίͱͯ͠αʔϏεશମͷج൫Λ୲౰ • αʔϏεج൫͚ͩͰͳ͘σʔλղੳج൫ͷߏஙͳͲ΋ • ٕज़ܥࡶࢽͷࣥචͳͲ΋ ϐΫγϒגࣜձࣾɹΠϯϑϥνʔϜ

Slide 3

Slide 3 text

Agenda • WebαʔϏεʹ͓͚ΔΠϯϑϥετϥΫνϟ • Ϋϥ΢υͱΦϯϓϨϛεͷҧ͍ • ΫϥελϦϯάͱΦʔέετϨʔγϣϯ

Slide 4

Slide 4 text

WebαʔϏεʹ͓͚Δ ΠϯϑϥετϥΫνϟ • ͦ΋ͦ΋ΠϯϑϥετϥΫνϟͱ͸ • ΤϯδχΞϦϯά͸εέʔϧ͠ͳ͍ • ΠϯϑϥνʔϜͱ͸ • ΠϯϑϥετϥΫνϟ͸εέʔϧ͢Δ

Slide 5

Slide 5 text

Q1 ͋ͳ͕ͨWebαʔϏεΛઃܭ͢ΔͳΒ͹ ͲͷΑ͏ͳߏ੒Λߟ͑Δ͔ʁ

Slide 6

Slide 6 text

Application Application Database Cache Storage Application Application Load Balancer DNS

Slide 7

Slide 7 text

? ? ? ? ? ? ? ? Application Application Database Cache Storage Application Application Load Balancer DNS

Slide 8

Slide 8 text

Server Server Server Server Server Local Network Internet Server Server / Appliance Server Server Application Application Database Cache Storage Application Application Load Balancer DNS

Slide 9

Slide 9 text

Heroku Add-on Add-on Add-on Application Add-on DNS Database Cache Storage

Slide 10

Slide 10 text

EC2 EC2 RDS ElastiCache S3 EC2 EC2 ELB Route53 Database Cache Storage Application Application Application Application DNS Load Balancer

Slide 11

Slide 11 text

DNS

Slide 12

Slide 12 text

ͦ΋ͦ΋
 ΠϯϑϥετϥΫνϟͱ͸ • αʔϏεΛӡ༻͢Δ্Ͱɺ߃ৗతʹඞཁͱͳΔج൫ • αʔϏεΛߏங͢Δ্Ͱ౔୆ͱͳΔ΋ͷ • ࣗ෼Ͱ͸΍Βͳ͍ͱ͜Ζ

Slide 13

Slide 13 text

ΠϯϑϥετϥΫνϟ
 ͦΕࣗ਎͸Ձ஋Λੜ·ͳ͍ • ຊ౰ʹՁ஋͕͋Δͷ͸ӡ༻͍ͯ͠ΔαʔϏεɺ͍҃ ͸αʔϏε͕ఏڙ͍ͯ͠Δ΋ͷͰ͋Δ • Πϯϑϥͱͯ͠ԿΛબ୒͢Δ͔ɺͲ͏͍͏ߏ੒ʹ͢ Δ͔ͱ͍ͬͨߏஙϊ΢ϋ΢͕Ձ஋ʹͳΔ͜ͱ͸͋Δ ͕ɺΠϯϑϥࣗମ͸Ձ஋ʹͳΒͳ͍

Slide 14

Slide 14 text

Ͳ͜ͰՁ஋ΛੜΉ͔ • ΠϯϑϥΑΓ্ͷϨΠϠʔͰՁ஋ΛੜΈग़͢ • ʢΤϯδχΞͱͯ͠ʣͲ͜ͰՁ஋Λग़͔͕͢ॏཁ

Slide 15

Slide 15 text

Contents σβΠϯɾίʔσΟϯά ίϯςϯπࣥච DNS value value

Slide 16

Slide 16 text

DNS Contents Heroku Add-on Database Add-on Cache Add-on Storage Application σβΠϯɾίʔσΟϯά ઃܭɾ։ൃ γεςϜઃܭ ίϯςϯπࣥච value value value value

Slide 17

Slide 17 text

ΤϯδχΞϦϯά͸
 εέʔϧ͠ͳ͍ • ࣗ෼ͷೳྗ͕ٸʹ100ഒʹͳΔ͜ͱ͸ͳ͍ • ʢΤϯδχΞͱͯ͠ʣͲ͜ͰՁ஋Λग़͔͕͢ॏཁ

Slide 18

Slide 18 text

εέʔϧ͠ͳ͍΋ͷΛ࡞Βͳ͍ • 1ਓ͔͠ఏڙ͠ͳ͍αʔϏε͸ͦΕҎ্ͷՁ஋ΛੜΊ ͳ͍ • ਓ͸εέʔϧ͠ͳ͍͕ʢ͠ͳ͍ͷͰʣɺ࢖༻͢Δਓ ͕ଟ͍΄Ͳ1ਓʹఏڙ͢ΔαʔϏεͷίετ͸Լ͕Δ • εέʔϧ͢ΔϚʔέοτ͕͋Δ͔

Slide 19

Slide 19 text

ΠϯϑϥνʔϜͱ͸ • αʔϏεΠϯϑϥΛ։ൃऀʹఏڙ͢Δ • ΍ͬͯΔ͜ͱ͸֤ࣾ͹Β͹Β • ΠϯϑϥνʔϜࣗମ͕Πϯϑϥ

Slide 20

Slide 20 text

ΠϯϑϥνʔϜ Application

Slide 21

Slide 21 text

ʢۃ࿦Λݴ͏ͱʣࣗ෼ͷཱͪҐஔΑΓ
 ԼͷϨΠϠʔ͸͢΂ͯΠϯϑϥ • ΠϯϑϥΤϯδχΞ͔ΒݟͨΒDCۀऀ͸Πϯϑϥ • DCۀऀ͔ΒΈͯిؾࣄۀऀ͸Πϯϑϥ • ։ൃऀ͔ΒΈͯΠϯϑϥΤϯδχΞ͸Πϯϑϥ • ܦӦऀ͔ΒΈͯܧଓత։ൃ͸Πϯϑϥʢʹࣄۀج൫ʣ

Slide 22

Slide 22 text

ΠϯϑϥετϥΫνϟ͸
 εέʔϧ͢Δ • ΠϯϑϥετϥΫνϟ͸αʔϏεͱͯ͠εέʔϧ͢Δ • ύλʔϯԽͰ͖Δʹεέʔϧ͢Δ • εέʔϧ͢Ε͹͢Δ΄ͲίετϝϦοτ͕ग़Δ • ڊਓͷݞʹ৐Δ

Slide 23

Slide 23 text

IaaS (Infrastructure as a Service) • WebαʔϏεͷΠϯϑϥετϥΫνϟΛαʔϏεͱ ͯ͠ఏڙ͢Δ • ୅දతͳαʔϏεʹ͸AWSɺGCPɺSoftLayerͳͲ • ࣗࣾͷΠϯϑϥετϥΫνϟج൫ΛαʔϏεͱͯ͠ ఏڙ͍ͯ͠Δ

Slide 24

Slide 24 text

XaaS (X as a Service) • ͳΜͱ͔as a Serviceͱݺ͹ΕΔ΋ͷ͸શ෦Πϯϑϥ ͳͷͰ·ͱΊͯIaaSͰ΋Α͍ • ͲͷϨΠϠʔ·Ͱఏڙ͍ͯ͠Δ͔Θ͔Βͳ͘ͳΔʢൺ ֱͰ͖ͳ͘ͳΔʣͷͰPaaSΈ͍ͨͳݴ༿͕࢖ΘΕΔ

Slide 25

Slide 25 text

WebαʔϏεʹ͓͚Δ ΠϯϑϥετϥΫνϟ • ࣗ෼Ͱ͸΍Βͳ͍ͱ͜Ζ • ʢΤϯδχΞͱͯ͠ʣͲ͜ͰՁ஋Λग़͔͕͢ॏཁ • ΠϯϑϥΛαʔϏεʹ͢Δͱεέʔϧ͢Δ ·ͱΊ:

Slide 26

Slide 26 text

break

Slide 27

Slide 27 text

IaaSͱΦϯϓϨ • ΦϯϓϨͱ͸ʁ • IaaSͱΦϯϓϨͷҧ͍

Slide 28

Slide 28 text

ΦϯϓϨϛε: On-Premises • ௚༁͢Δͱ"ߏ಺ʹ"ͱͳΔ • ΋ͱ΋ͱࣾ಺ʹΠϯϑϥετϥΫνϟΛઃஔ͢Δ͜ ͱΛ͍ࣔͯͨ͠

Slide 29

Slide 29 text

ͳͥΦϯϓϨͱݴ͏ͷ͔ • Ϋϥ΢υͷରٛޠ͕ͳ͔ͬͨ • Macͷରٛޠͱͯ͠ͷPC

Slide 30

Slide 30 text

ݱ୅ͷΦϯϓϨϛε؀ڥ͸
 Ϋϥ΢υʹ͍ۙ • ࣗࣾߏ಺ʹαʔό͓͍ͯΔͱ͜ΖͳΜͯ·Ε • ଏʹ”ΦϯϓϨ”ͱݺ͹ΕΔͱ͖αʔό͸IDCʹઃஔ
 ͯ͋͠Δ • ੈͷதͷ΄ͱΜͲͷΦϯϓϨ͸”ͳΜͪΌͬͯΦϯϓ Ϩϛε”ʹͳͬͯΔ

Slide 31

Slide 31 text

ຊ౰ͷΦϯϓϨϛε ͳΜͪΌͬͯΦϯϓϨϛε ઃஔ৔ॴ ࣗࣾDC ϗεςΟϯά αʔόઃஔɾ؅ཧ ࣗࣾ IDCɾϕϯμʔ ௐୡ ࣗࣾ ࣗࣾɾϕϯμʔ ిݯ ࣗࣾܖ໿ IDC ஍਒ରࡦ ࣗࣾͰઃܭ IDC ճઢ ઐ༻ճઢ IDC ճઢ؂ࢹ ࣗࣾ IDC

Slide 32

Slide 32 text

Q2 IaaSͱΦϯϓϨϛεͷେ͖ͳҧ͍ͱ͸ʁ

Slide 33

Slide 33 text

IaaSͱΦϯϓϨͷҧ͍ • ࣗ෼͚ͩͰ࢖͏͔ɺΈΜͳͰ࢖͏͔ • ࢖͍ํ͕ҧ͏ͷͰ՝ۚମܥ͕େ͖͘ҟͳΔ

Slide 34

Slide 34 text

ΦϯϓϨͷௐୡ Load Infrastructure • ෛՙʹ߹ΘͤͯௐୡܭըΛཱͯΔ ௐୡλΠϛϯά ↓ ௐୡλΠϛϯά ↓ ௐୡλΠϛϯά ↓

Slide 35

Slide 35 text

Waste ΦϯϓϨͷௐୡ Load • ෛՙʹ߹ΘͤͯௐୡܭըΛཱͯΔ ௐୡλΠϛϯά ↓ ௐୡλΠϛϯά ↓ ௐୡλΠϛϯά ↓

Slide 36

Slide 36 text

ΦϯϓϨ͸େม • ࢖͏΋ͷ͸શͯࣗ෼Ͱ༻ҙࣗ͠෼Ͱӡ༻͢Δ • εέʔϧ͠ͳ͍ • ઌΛಡ·ͳ͍ͱ͍͚ͳ͍

Slide 37

Slide 37 text

IaaSͷௐୡ Load • ෛՙʹ߹Θͤͯ૿ݮͰ͖Δʢཧ૝ʣ

Slide 38

Slide 38 text

IaaSͷௐୡ Load • ෛՙʹ߹Θͤͯ૿ݮͰ͖Δʢݱ࣮ʣ

Slide 39

Slide 39 text

IaaS΋͚ͬ͜͏େม • ݁ہࣗ෼ͰεέʔϦϯά͢ΔΑ͏ʹ͠ͳ͚Ε͹ࣗಈ Ͱ͸εέʔϧ͠ͳ͍ʢͪΐͬͱੲͷ࿩ʣ • ୯Ձ͚ͩͰݟΕ͹ߴ͍

Slide 40

Slide 40 text

CPU୯Ձͷൺֱ • ʢඇެ։ʣ

Slide 41

Slide 41 text

ωοτϫʔΫ୯Ձͷൺֱ • ʢඇެ։ʣ

Slide 42

Slide 42 text

ίετͷҧ͍ • ୯Ձ͚ͩͰݟΕ͹IaaSͷํ͕ߴͦ͏ʹݟ͑Δ • ࣮ࡍʹ͸ӡ༻ʹ͔͔Δਓ݅අɺDCΠϯϑϥʹ͔͔Δ ྉۚͳͲ͍ΖΜͳݻఆඅ͕͔͔Δ • େ఍ͷ৔߹IaaSͷํ͕εέʔϧϝϦοτͰ҆͘ͳΔ • ݻఆඅ͕খ͘͞ݟ͑Δ΄Ͳεέʔϧ͢Ε͹ΦϯϓϨ Ͱ΍ͬͨํ͕͍҆

Slide 43

Slide 43 text

IaaSͱΦϯϓϨ • ΦϯϓϨ΋શ͕ͯࣗલͰ͸ͳ͍ʢ౰ͨΓલʣ • IaaS͸εέʔϧ͢Δ͜ͱͰϝϦοτΛग़͍ͯ͠Δ • CPU࣌ؒͰΈΔͱ͔ͳΓΑ͘ͳ͖ͬͯͨ • ωοτϫʔΫ͸͚ͬ͜͏ߴ͍ ·ͱΊ:

Slide 44

Slide 44 text

break

Slide 45

Slide 45 text

ΫϥελϦϯάͱ
 ΦʔέετϨʔγϣϯ • ΫϥελϦϯάͱΦʔέετϨʔγϣϯ • ͳͥΫϥελϦϯά͍ͨ͠ͷ͔ • ίϯςφΫϥελϦϯά

Slide 46

Slide 46 text

ΫϥελϦϯάͱ͸ • ଟ਺ͷϦιʔεΛ1ͭͷϦιʔεͱͯ͠࢖͏ • Ͱ͔͍Πϯελϯε͸ߴ͍͠ɺSPOFʢ୯Ұো֐఺ʣ ʹͳΔ • εέʔϦϯά͢Δʹ͸͍҆ϦιʔεΛͨ͘͞Μฒ΂ͯ 1ͭͷϦιʔεʹͯ͠࢖Θͳ͍ͱ͍͚ͳ͍

Slide 47

Slide 47 text

ΦʔέετϨʔγϣϯͱ͸ • Φʔέετϥͷԋ૗ํ๏ɺసͯ͡ฤ੒ɺ૊৫ԽΛ
 ࢦ͢୯ޠʹͳͬͨ • γεςϜ/ϛυϧ΢ΣΞͷࣗಈతͳߏ੒؅ཧɺσϓϩ Πϝϯτͷ͜ͱΛࢦ͢

Slide 48

Slide 48 text

ΫϥελϦϯά͍ͨ͠ • αʔϏεͷن໛Λ༧ଌ͢Δͷ͸೉͍͠ • ༻ҙ͍ͯ͠ΔΠϯϑϥΛ͙͢ʹ౤ೖ͍ͨ͠ • Ϋϥελશମͷ͏ܾͪ·ׂͬͨ߹ͷϦιʔεΛׂΓ౰ ͍ͯͨ

Slide 49

Slide 49 text

ΦϯϓϨͷௐୡ Load • ෛՙʹ߹ΘͤͯௐୡܭըΛཱͯΔ ௐୡλΠϛϯά ↓ ௐୡλΠϛϯά ↓ ௐୡλΠϛϯά ↓ ʢ෮शʣ

Slide 50

Slide 50 text

Server Server Server Server Application Application Application Load balancer Application Application

Slide 51

Slide 51 text

ΫϥελϦϯά͢ΔͨΊʹ
 ίϯςφΛ࢖͏ • εέʔϧ͢ΔͨΊʹ͸ɺΞϓϦέʔγϣϯɺϛυϧ΢Σ ΞɺઃఆͳͲ༷ʑͳ΋ͷΛσϓϩΠͯ͠ಈ࡞͢ΔΑ͏ ʹ͠ͳ͚Ε͹ͳΒͳ͍ • ίϯςφ͝ͱσϓϩΠ͢Ε͹ྑ͍
 =ΦʔέετϨʔγϣϯ͕؆୯

Slide 52

Slide 52 text

Docker • ίϯςφ؅ཧπʔϧ • DockerfileΛॻ͚ͩ͘ͰίϯςφΛϏϧυͰ͖Δ • ͍·ͷͱ͜ΖσϑΝΫτελϯμʔυ

Slide 53

Slide 53 text

dockerhub build push pull Dockerfile deployment Image

Slide 54

Slide 54 text

ͳͥίϯςφʹ͍ͨ͠ͷ͔ • ґଘؔ܎Λύοέʔδϯά͍ͨ͠ • ։ൃऀ͕ϛυϧ΢ΣΞͷґଘؔ܎Λ؅ཧ͢Δ͜ͱ͕ Ͱ͖ΔΑ͏ʹͳΔ • ίϯςφΛ࢖͏ͱ͜Ε·ͰΠϯϑϥͩͬͨ΋ͷ͕
 ΠϯϑϥͰ͸ͳ͘ͳΔ

Slide 55

Slide 55 text

Infrastructure Application

Slide 56

Slide 56 text

Infrastructure Application Container

Slide 57

Slide 57 text

ίϯςφԽ͞ΕΔͱԿ͕ى͜Δ͔ • ΠϯϑϥͷϨΠϠʔ͕1ͭԼ͕Δ • OSͷύοέʔδ؅ཧ͸ෆཁʹͳΔ • ίϯςφ͝ͱʹ؂ࢹ͕ඞཁʹͳΔ

Slide 58

Slide 58 text

CoreOS • ίϯςφϗετʹ࠷దԽ͞ΕͨLinuxσΟετϦ Ϗϡʔγϣϯ • systemdʹΑΔίϯςφͷ؅ཧͱEtcdɺFleetdͱ͍ͬ ͨΫϥελϦϯάɺΦʔέετϨʔγϣϯπʔϧ͔Β ߏ੒͞ΕΔ • ࣗಈతͳηΩϡϦςΟΞοϓσʔτ

Slide 59

Slide 59 text

ΦʔέετϨʔγϣϯ͕଍Γͳ͍ • ͍ͭ͘ίϯςφΛσϓϩΠ͢Δ͔ • ίϯςφؒͷ૬ޓ઀ଓ͸Ͳ͏͢Δ͔ • ͲͷλΠϛϯάͰεέʔϧ͢Ε͹͍͍͔

Slide 60

Slide 60 text

Kubernates • Google͕ͭͬͨ͘ίϯςφΫϥελ؅ཧπʔϧ • αʔϏε୯ҐͰͷσϓϩΠ͕Ͱ͖Δ • ͍͍ͩͨશ෦ͷػೳ͕͋Δ͚ͲɺͰ͔͗͢Δ

Slide 61

Slide 61 text

ͦ΋ͦ΋ࣗ෼Ͱ΍Δҙຯ͸ • ίϯςφΛσϓϩΠ͢ΔઌΛࣗલͰ΍Βͳͯ͘΋ྑ ͍ͷͰ͸ • ͋Δఔ౓ͷεέʔϧʹͳΔͱࣗ෼Ͱ΍Δ͜ͱΛߟ͑Δ

Slide 62

Slide 62 text

ΫϥελϦϯάͱ
 ΦʔέετϨʔγϣϯ • Ͳ͜·Ͱ͕Πϯϑϥ͔͸࣌୅ʹΑͬͯมԽ͢Δ • ίϯςφΛ࢖͏ͱ͍Ζ͍ΖͱมΘΓͦ͏ • ͍Ζ͍Ζͱߟ͑ͳ͍ͱ͍͚ͳ͍͜ͱ͕ଟ͍ ·ͱΊ:

Slide 63

Slide 63 text

·ͱΊ

Slide 64

Slide 64 text

Ϋϥ΢υͱΦϯϓϨ • Ϋϥ΢υͰ͋Δ͔Βͱ͔ɺΦϯϓϨͰ͋Δ͔Βɺ
 ͱ͍͏ͷ͸͋·Γେ͖ͳ໰୊Ͱ͸ͳ͍ • ࠷΋࠷దͳج൫Λબ୒͢Δͷ͕Α͍ • ͩΊʹͳͬͨΒ৐Γ׵͑Ε͹ྑ͍ • ʢΤϯδχΞͱͯ͠ʣͲ͜ͰՁ஋Λग़͔͕͢ॏཁ