一休.com における改善事例のご紹介 /ikyu-storage-improvement
by
kentana20
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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 • 20065݄͔ΒҰٳ
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
มߋޙͷߏ ը૾ Ξοϓϩʔυ ϦαΠζॲཧ ڞ༻ετϨʔδ ༻͠ͳ͍ σʔλը૾ͷ OriginS3 Ξηοτը૾ͷ 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
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠