Slide 1

Slide 1 text

Ұٳ.com ʹ͓͚Δ ASP.NET։ൃ վળࣄྫͷ͝঺հ 2017.1.16 Kensuke Tanaka (@kentana20)

Slide 2

Slide 2 text

͓࿳ͼ ॾࣄ৘ʹΑΓλΠτϧͱ಺༰Λ มߋ͓ͯ͠࿩͍ͨ͠·͢

Slide 3

Slide 3 text

ΠϕϯτϖʔδΑΓ

Slide 4

Slide 4 text

ࠓ೔ͷ͓࿩ Ϋϥ΢υҠߦ΁޲͚ͨ αʔϏεվળͷࣄྫ ʢϑΝΠϧετϨʔδฤʣ

Slide 5

Slide 5 text

About me • ాத ݈հ • @kentana20 • 2006೥5݄͔ΒҰٳ

Slide 6

Slide 6 text

Agenda • αʔϏε๊͕͍͑ͯͨ՝୊ʢετϨʔδपΓʣ • վળ಺༰ͱޮՌ • ࠓޙʹ޲͚ͯ • ·ͱΊ

Slide 7

Slide 7 text

αʔϏεͷ՝୊ ʢετϨʔδฤʣ

Slide 8

Slide 8 text

എܠ • ҰٳͰ͸ɺ2017೥தʹݱࡏͷΦϯϓϨ؀ڥ͔Β
 Ϋϥ΢υ؀ڥ(AWS)΁ͷҠߦΛ༧ఆ֤ٕͯ͠ज़՝୊
 ʹର͢ΔվળΛਐΊ͍ͯΔ

Slide 9

Slide 9 text

લఏ • Ұٳ.com Ͱ࢖༻͍ͯ͠Δը૾͸جຊతʹϗςϧɾ ཱྀ͔ؗΒఏڙΛड͚͍ͯΔ

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

1. ϗςϧɾཱྀؗ޲͚ͷ؅ཧը໘
 ͔ΒΞοϓϩʔυ
 2. ϝʔϧͰ΋Βͬͯࣾ಺ͷσβΠφʔ
 ͕Ճ޻ͯ͠Ξοϓϩʔυ(ϦϦʔε) ը૾ͷఏڙύλʔϯ

Slide 13

Slide 13 text

γεςϜ๊͕͍͑ͯͨ ՝୊

Slide 14

Slide 14 text

՝୊ • ڞ༗ετϨʔδ໰୊ • ϨϙδτϦσΧ͗͢໰୊

Slide 15

Slide 15 text

ڞ༗ετϨʔδ໰୊ • ϗςϧɾཱྀ͕ؗΞοϓϩʔυ͢Δը૾ • ImageMagickͰϦαΠζॲཧ(ಉظॲཧͰ஗͍…) • Shared DiskํࣜͰڞ༗ετϨʔδʹ഑ஔ • ϗςϧɾཱྀؗ਺૿Ճʹ൐͍ɺڞ༗ετϨʔδͷ
 σΟεΫ༰ྔΛѹഭ & ը૾഑৴༻αʔό΁ͷϦΫΤε τ૿Ճ

Slide 16

Slide 16 text

ڞ༗ετϨʔδ໰୊

Slide 17

Slide 17 text

ϨϙδτϦσΧ͗͢໰୊ • σβΠϯࢿࡐ΋͢΂ͯGit؅ཧ • σβΠφʔͱσϓϩΠϑϩʔΛἧ͑ΔͨΊʹ࣮ࢪ ͕ͨ͠ɺѱखͩͬͨ • ϨϙδτϦαΠζ͕1.5೥Ͱ4ഒʹ • clone / fetch / pull ͳͲͷGitૢ࡞͕ඇৗʹॏ͍

Slide 18

Slide 18 text

ϨϙδτϦσΧ͗͢໰୊

Slide 19

Slide 19 text

վળ಺༰ͱޮՌ

Slide 20

Slide 20 text

վળ಺༰

Slide 21

Slide 21 text

ڞ༗ετϨʔδΛ΍ΊΔ • Ξοϓϩʔυ͢Δը૾ʢσʔλը૾ʣ͸͢΂ͯS3΁
 ഑ஔ͠Shared Nothingͳߏ੒ʹ • ϦαΠζॲཧ͸LambdaͰ࣮ࢪ • CDNͷOriginΛS3ʹ޲͚ɺը૾഑৴αʔόʹର͢Δ
 ϦΫΤετΛ௿ݮ

Slide 22

Slide 22 text

มߋલͷߏ੒ ը૾ ΞοϓϩʔυˍϦαΠζ ڞ༻ετϨʔδ ը૾ͷOrigin͸ ը૾഑৴αʔό ը૾഑৴༻αʔό www.ikyu.com cdn.ikyu.com

Slide 23

Slide 23 text

มߋޙͷߏ੒ ը૾ Ξοϓϩʔυ ϦαΠζॲཧ ڞ༻ετϨʔδ ͸࢖༻͠ͳ͍ σʔλը૾ͷ Origin͸S3 Ξηοτը૾ͷ Origin͸Ұٳαʔό cdn.ikyu.com www.ikyu.com

Slide 24

Slide 24 text

σβΠϯࢿࡐͷGit؅ཧΛ΍ΊΔ • σβΠφʔ͕Ճ޻ͨ͠ը૾͸S3ʹ௚઀Ξοϓϩʔυ͠ɺ Git؅ཧΛ΍ΊΔ • ϨϙδτϦʹೖΕΔͷ͸࠷௿ݶͷΞηοτͷΈ • Gitͷϩά͸γεςϜมߋͷΈʹ(ਐߦத)

Slide 25

Slide 25 text

มߋલͷӡ༻ ڞ༻ετϨʔδ ը૾഑৴༻αʔό Ճ޻ޙը૾Λ Commit&Push ϦϦʔε σβΠφʔ

Slide 26

Slide 26 text

มߋޙͷӡ༻ Ճ޻ޙը૾Λ Ξοϓϩʔυ σβΠφʔ Gitɺڞ༻ετϨʔδ͸࢖༻͠ͳ͍

Slide 27

Slide 27 text

+αͰ࣮ࢪͨ͠ରԠ • Always on SSLʢAOSSLʣ ରԠΛݟਾ͑ͯS3ʹҠߦͨ͠
 ը૾ͷύεΛ͢΂ͯSSLԽʢMixed Contentsରࡦʣ

Slide 28

Slide 28 text

ϋϚͬͨ͜ͱ • S3ҠߦʹΑͬͯCase SensitiveʹͳΓɺը૾͕ݟ͑ͳ͍ • AkamaiଆͰΩϟογϡ͢ΔͱCase Insentiveʹͳͬͯ ༨ܭʹ΍΍͔ͬͨ͜͠(AkamaiଆΦϓγϣϯ) • ΋ͱ΋ͱΞοϓϩʔυ͞Εͨը૾ͷେจࣈ/খจࣈ͕ όϥόϥͩͬͨͷͰɺΞοϓϩʔυ࣌ʹ͢΂ͯLower CaseΛ͔͚ͯରԠ

Slide 29

Slide 29 text

ޮՌ

Slide 30

Slide 30 text

ޮՌ • ڞ༻ετϨʔδ͸ෆཁʹ • ը૾Ξοϓϩʔυߴ଎Խˍ҆ఆԽ • ը૾഑৴αʔό΁ͷϦΫΤετ͸ܹݮ • σβΠφʔͷӡ༻΋γϯϓϧʹ

Slide 31

Slide 31 text

ޮՌ

Slide 32

Slide 32 text

ޮՌ • σβΠφʔΑΓ • ʮը૾ͷࠩ͠ସ͑ͳͲɺස౓ߴ͘ߦ͏࡞ۀ͕
 ɹεϐʔυΞοϓ͠·ͨ͠ʂʯ • ӦۀΞγελϯτΑΓ • ʮը૾ͷΞοϓϩʔυ͕ΊͬͪΌૣ͘ͳͬͨʂʯ

Slide 33

Slide 33 text

ࠓޙʹ޲͚ͯ

Slide 34

Slide 34 text

ࠓޙͷରԠʢਐߦதʣ • લड़ͷϨϙδτϦܰྔԽ • σβΠϯࢿࡐͱͦͷཤྺΛফ͢ • Ұ෦ͷσβΠϯ࡞ۀΛCMSԽ • ϦϦʔεͤͣʹίϯςϯπߋ৽ՄೳͳՕॴΛ૿΍͢

Slide 35

Slide 35 text

σβΠϯ࡞ۀCMSԽ • ߴස౓Ͱߋ৽͢Δ޿ࠂ/͓͢͢Ί࿮ͳͲͷ؅ཧ • TOPϖʔδͷϩʔςʔγϣϯͳͲΛ
 ผΞϓϦέʔγϣϯͰCMSԽ

Slide 36

Slide 36 text

ͦͷଞͷվળ΋ਐΜͰ͍·͢ • ϝʔϧ഑৴ج൫ͷSaaSҠߦ • όονॲཧج൫RundeckԽ • ΞʔΩςΫνϟ࡮৽ɾΞϓϦέʔγϣϯ෼ׂ • Ϋϥ΢υҠߦ etc..

Slide 37

Slide 37 text

ͦͷଞͷվળ΋ਐΜͰ͍·͢ • ϝʔϧ഑৴ج൫ͷSaaSҠߦ • όονॲཧج൫RundeckԽ • ΞʔΩςΫνϟ࡮৽ɾΞϓϦέʔγϣϯ෼ׂ • Ϋϥ΢υҠߦ etc.. ؾʹͳΔํ͸͜ͷޙͷ
 ύωϧσΟεΧογϣϯ͔࠙਌ձͰ ͓࿩͠·͠ΐ͏ʂ

Slide 38

Slide 38 text

·ͱΊ

Slide 39

Slide 39 text

·ͱΊɾॴײ • ࡢࠓͰ͸౰ͨΓલͷ࿩ • σʔλը૾͸ετϨʔδαʔϏε΁ • ϨϙδτϦ͸γεςϜʹؔΘΔมߋͷΈ • ݱߦͷઃܭɾΞʔΩςΫνϟʹҾͬுΒΕͳ͍ • ͋Δ΂͖͔࢟ΒվળࡦΛߟ͑Δ • αʔϏεΛଓ͚Δͱ՝୊͸ग़Δ • ܧଓͨ͠վળΛ͜Ε͔Β΋࣮ࢪ

Slide 40

Slide 40 text

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