大規模Webサービス入門 15回目 / Introduction to large scale web service 15

Fd09da0d9751bb7875ef4ff7e6201860?s=47 muttan
August 31, 2017

大規模Webサービス入門 15回目 / Introduction to large scale web service 15

Fd09da0d9751bb7875ef4ff7e6201860?s=128

muttan

August 31, 2017
Tweet

Transcript

  1. େن໛αʔϏεٕज़ೖ໳ ୈ15ճ ISUCONରࡦษڧձ 2017/8/31

  2. ୈ15ճ WebαʔϏεͱωοτϫʔΫ - ωοτϫʔΫͰݟ͑ͯ͘ΔαʔϏεͷ੒௕ -

  3. 1Gbps௒͑, 500ϗετ௒͑, ଠฏ༸௒͑ • 15ճ͸ωοτϫʔΫʹؔ͢Δ࿩ • ࣍ͷΑ͏ͳ৔߹, ߏ੒Λߟ͑௚͞ͳ͍ͱ͍͚ͳ͍ ‣ τϥϑΟοΫ͕1GbpsΛ௒͑Δ

    ‣ ಉ͡αϒωοτͰϗετ਺͕500Λ௒͍͑ͯΔ ‣ ଠฏ༸௒͑ͷτϥϑΟοΫ͕ൃੜ͢ΔͱϨΠςϯγ͕…
  4. Lesson 38 ωοτϫʔΫͷ෼ذ఺

  5. αʔϏεͷ੒௕ͱ ωοτϫʔΫͷ෼ذ఺

  6. ωοτϫʔΫͷ෼ذ఺ • τϥϑΟοΫྔ͕গͳ͚Ε͹, ωοτϫʔΫߏ ੒ʹ͍ͭͯਂ͘ߟ͑Δඞཁ͸ͳ͍. • αʔϏε͕੒௕͢ΔʹͭΕ, ωοτϫʔΫͷ෼ ذ఺Λ஌͓ͬͯ͘ඞཁ͕͋Δ.

  7. ωοτϫʔΫͷ෼ذ఺ • 1Gbpsʢ300kpps௒͑ʣpps : packet per second
 → PCϧʔλͷݶք •

    500ϗετ௒͑
 ˠ 1αϒωοτͷݶք • άϩʔόϧ௒͑
 ˠ 1σʔληϯλʔͷݶք
  8. 1Gbpsͷݶք - PCϧʔλͷݶք -

  9. 1Gbpsͷݶք • 1Gbps, ਖ਼͘͠͸30kbpsͷݶք ‣ pps͸packet per secͰ͋Γ, ύέοτॲཧೳྗΛද͢ ਺஋.

    • ฏۉతͳLinuxΧʔωϧͰ͸, ͓Αͦ300kpps(30ສpps)͕ ݶքͰ͋Δ. ‣ ͜ͷ࣌ͷฏۉύέοτ௕͕300byteͩͱ, ͓Αͦ1Gbps
  10. 1Gbpsͷݶք • ΪΨϏοτΠʔαωοτͰ΋1Gbps͕ݶքͰ ͋Δ͠, Χʔωϧతʹ΋30kppsఔ౓͕ݶքͰ ͋Δ͜ͱ͕෼͔Δ. ‣ Ͳ͏ͨ͠Β͍͍ͷͩΖ͏͔ʁ

  11. 1Gbpsͷݶք • ରࡦͱͯ͠͸2ͭߟ͑ΒΕΔ. 1. PCϧʔλΛෳ਺୆ฒ΂Δ.
 → ശ෺ϧʔλʹൺ΂Δͱ҆Ձ 2. ശ෺ϧʔλ(Ciscoͷͱ͔)Λಋೖ͢Δ.
 →

    ਺ඦສఔ౓͢Δ
  12. 500ϗετͷݶք - 1αϒωοτ, ARPςʔϒϧ·ΘΓͰͷݶք -

  13. 500ϗετͷݶք • 500ϗετΛ௒͑ͯ͘Δͱ, εΠονͷARPςʔϒϧ ·ΘΓͰݶք͕དྷΔ. ‣ ARP͸IPΞυϨε͔ΒMACΞυϨεΛٻΊΔϓϩ τίϧ. ‣ ARPςʔϒϧ͸,

    IPΞυϨεͱMACΞυϨεͷରԠ ؔ܎දͰ͋Δ.
  14. 500ϗετͷݶք • ֤εΠον͸, ARPςʔϒϧΛ͍࣋ͬͯΔ. • ARPςʔϒϧͷΤϯτϦͷݶք͸900લޙ ‣ ARPςʔϒϧͷΤϯτϦ͕800ڧ·Ͱ๲ΒΉͱ, ping͕ ඈ͹ͳ͘ͳΔ,

    ௨৴͕Ͱ͖ͳ͘ͳΔͳͲͷো֐͕ൃੜ͠ ͨ. → ARPςʔϒϧͷΤϯτϦ਺͕ଟ͔ͬͨ͜ͱ͕ݪҼ
  15. 500ϗετͷݶք • ͜ͷ͜ͱ͔Β, ༨ΓARPςʔϒϧͷΤϯτϦ਺͕ଟ͍ͱ ಈ࡞͕ෆ҆ఆʹͳΔ. • ͦͷଞʹ΋, ϗετ͕૿͑Δ͜ͱͰϒϩʔυΩϟετύ έοτ͕ແࢹͰ͖ͳ͍ྔʹ·Ͱ૿Ճ͢ΔͨΊ, ύέοτ

    ϩε͕૿Ճ͢Δ. → Ҏ্ͷ͜ͱ͔Β, ϗετ਺͸500ఔ౓ʹ͓ͯ͘͠΂͖.
  16. ωοτϫʔΫߏ଄ͷ֊૚Խ

  17. ωοτϫʔΫߏ଄ͷ֊૚Խ • ͜͜·Ͱͷରࡦͱͯ͠͸, ωοτϫʔΫߏ଄ͷ֊૚Խ͕ϕετϓϥ ΫςΟεͱཱͯ֬͠ • 3૚ߏ଄Ͱߏ੒͢Δ͜ͱ͕ηΦϦʔ • Ұ൪খ͍͞ͷ͕AccessΤϦΞ •

    ͕࣍DistributionΤϦΞ • Ұ൪্͕CoreΤϦΞ or OSPF(Open Shortest Path First)ΤϦΞ
  18. ωοτϫʔΫߏ଄ͷ֊૚Խ Ҿ༻ɿhttp://www.infraexpert.com/study/catalyst2.html

  19. ωοτϫʔΫߏ଄ͷ֊૚Խ • AccessΤϦΞͰ100୆, 200୆Ͱ཈͑Δ. • DistributionΤϦΞͰ1,000୆ఔ౓ • CoreΤϦΞͰ10,000୆୯Ґ͕ѻ͑Δ. → ֊૚ߏ଄Λઃ͚Δ͜ͱ͕Ұൠత

  20. άϩʔόϧԽ

  21. άϩʔόϧԽ • άϩʔόϧԽͱ͸ͳΜͳͷ͔ ‣ τϥϑΟοΫ΋άϩʔόϧԽͷ࣌୅ ‣ ଠฏ༸Λ௒͑ΔΞΫηεͳΜ͔Λݴ͏. → ͔ͳΓͷΦʔόʔϔουʹͳΔ.

  22. ஌͓ͬͯ͘΂͖ϨΠςϯγ

  23. άϩʔόϧԽ • ଠฏ༸Λ௒͑ΔΑ͏ͳ௨৴Ͱ͸, ϨΠςϯγ͕େ ෯ʹ૿Ճ͢Δ. ‣ 1ͭͷσʔληϯλʔͰ͸͠ΜͲ͍. ‣ CDNΛ࢖͏ͱμ΢ϯϩʔυ͕࠷దԽ. →

    άϩʔόϧͳαʔϏεͰ͸ඞਢͰ͋Δ.
  24. CDNͬͯͳΜͩʁ • CDN͸Content Deliver Networkͷ͜ͱ. ‣ ੈքதʹΩϟογϡαʔόΛஔ͍͓͖ͯ, ͦ͜ʹϝσΟΞΛ Ωϟογϡ͓ͤͯ͘͞. ‣

    Ϣʔβʔ͔Βཁٻ͕͋ͬͨ࣌, ͦͷϢʔβʔʹҰ൪͍ۙΩϟο γϡαʔόʹΞΫηεͯ͠ϝσΟΞΛμ΢ϯϩʔυ͢Δ͜ͱʹ ͳΔ. ‣ ੈքதʹΩϟογϡαʔό͕͋ΔͷͰ, ϨΠςϯγ͕ݮগ͢Δ.
  25. CDNͬͯͳΜͩʁ • Ϥʔϩούͷαʔό͔Βμ΢ϯϩʔυ͠Α͏ͱͨ͠ͱ͖ʹ, • CDNແ͠
 Ϥʔϩούͷαʔόʹ௚઀ΞΫηε • CDN͋Γ
 ۙ͘ͷΩϟογϡαʔό͔Βμ΢ϯϩʔυ •

    ઌ΄ͲͷϨΠςϯγΛݟΔͱ, ͳΔ΂͔ۙ͘͘ΒDL͍ͨ͠.
  26. Lesson 39 ͞ΒͳΔ্ݶ΁

  27. 10Gbps௒͑ͷੈք

  28. 10Gbps௒͑ͷੈք • 10GbpsΛ௒͑Δͱ࿩͕มΘͬͯ͘Δ. • ͦͷੈքઢͰ͸, BGP(Boarder Gateway Protocol) ͱ͍͏ϓϩτίϧΛ࢖༻͍ͯ͠Δ. •

    AS(Autonomous System)൪߸ΛׂΓৼΓ, ͦͷ ൪߸ׂ͕ΓৼΒΕ͍ͯΔऀಉ࢜Ͱ௨৴ͯ͠ܦ࿏ ৘ใΛަ׵͍ͯ͠Δ.
  29. 10Gbps௒͑ͷੈք • ͜͜ͰޡͬͨઃఆΛ͢Δͱ, Πϯλʔωοτ͕յΕΔ. • ઌ೔͋ͬͨ೔ຊͷ௨৴ো֐͸, Google͕ޡͬͨܦ࿏৘ใΛ ྲྀͯ͠͠·ͬͨ͜ͱʹΑΔ΋ͷͩͬͨ. • σʔλྔ͕ଟ͔ͬͨͨΊ,

    ϋϯάͯ͠͠·͏ϧʔλ΋͋ͬͨ ͱ͔ͳΜͱ͔. • http://itpro.nikkeibp.co.jp/atcl/column/ 14/346926/082701101/
  30. ͸ͯͳͷΠϯϑϥ - ୈ11ճʙୈ15ճ·ͱΊ -

  31. ୈ11ճʙୈ15ճͷ·ͱΊ • WebαʔϏεͷΠϯϑϥ͸, ҎԼͷ2఺͕ॏཁ 1. ௿ίετɾߴεέʔϥϏϦςΟ 2. ఔʑʹߴ͍৴པੑ • ΩʔͱͳΔٕज़

    • εέʔϥϏϦςΟɾ৑௕ɾޮ཰޲্ɾωοτϫʔΫ