Upgrade to Pro — share decks privately, control downloads, hide ads and more …

はてなのインフラ環境を自宅で再現する

masayoshi
December 10, 2016

 はてなのインフラ環境を自宅で再現する

YAPC::Hokkaido 2016 SAPPOROでの発表資料です。
今後ネットワーク図とか色々ブログの方に公開していきたいと思っています。

masayoshi

December 10, 2016
Tweet

More Decks by masayoshi

Other Decks in Technology

Transcript

  1. ࣗݾ঺հ • id:masayoshi (yoyogidesaiz) • גࣜձࣾ͸ͯͳ (2016೥4݄ೖࣾ) • YAPC ॳࢀՃͰ͢

    • ֶੜ࣌୅͸αʔό؂ࢹͷΞϧόΠτ • ݱࡏ͸WebΦϖϨʔγϣϯΤϯδχΞͷج൫νʔϜ
  2. ج൫νʔϜ(3໊) • ࣗࣾͷΠϯϑϥಛੑΛ೺Ѳ͍͍ͯ͠ײ͡ʹ͢Δ • αʔϏε਺͕ଟ͍(10αʔϏεҎ্) • DC + AWS +

    ͘͞Βͷઐ༻αʔό • 5,10೥ར༻͞ΕΔαʔϏε • ෺ཧ,Ծ૝αʔό͸1000୆Ҏ্
  3. ࢓ࣄ͸… • ॏཁͳ͜ͱ • ϢʔβʹαʔϏε(Ձ஋)Λಧ͚Δ͜ͱ • ࣌ؒత੍໿ • ௅ઓͱ҆ఆͷόϥϯε •

    ͍࣋ͬͯΔٕज़ɺ஌ࣝͰΨϯΨϯԥΔ • ศརɺར༻͞Ε͍ͯΔ΋ͷΛੵۃతʹ࢖͏
  4. ಘΒΕΔ΋ͷ(ͦͷ1) • ఆੴͷϝϦοτɺσϝϦοτֶ͕΂Δ • બ୒ࢶΛ૿΍ͤΔɺ൑அج४͕ग़དྷΔ • ҰͭԼͷϨΠϠʔֶ͕΂Δ (syscall, OS, Network,..)

    • ҧ͏ϛυϧ΢ΣΞͷཧղʹ໾ཱͭ • ஌͕ࣝ޿͕Δ • ෼͔ͬͨ”ͭ΋Γ”෦෼ͷ೺Ѳ • ͳΜ͔ٕज़ϒϩάɺຊͱ͔Ͱ஌ͬͨؾʹͳͬͯͨ • צҧ͍ɺࢥͬͨΑΓ~ͩͬͨ
  5. ಘΒΕΔ΋ͷ(ͦͷ2) • ײ૝ͱٙ໰఺ (ෳࡶ,γϯϓϧ, ଎͍, ஗͍, ָ, ͭΒ ͍, …)

    • ΈΜͳͲ͏͍ͯ͠ΔΜͩΖ͏? • ͭΒ͍ͷ͸૝ఆ͞Εͨ࢖ΘΕํ͡Όͳ͍͔Β͔ ΋ • ͔ͩΒ͜͏͍͏࣮૷ͳͷ͔~ • ݁ہ͕͜͜໰୊ͳΜͩΑͳ͊ • ଞʹ΋ͬͱద࣮ͨ͠૷͕͋ΔͷͰ͸? • ͳ͍ͳΒ࡞Δ͔(ͱݴ͑Δͱ͔͍͍ͬ͜)
  6. ࡞Δͱ͖ͷֶͼྫ (checksum) • 1ͷิ਺? 2ͷิ਺ͳΒΑ͘࢖͏͚Ͳͳ͊ • L2Ͱ΋L3Ͱ΋L4Ͱ΋νΣοΫαϜܭࢉ͢Μͷ͔Α • ٙࣅϔομΛ͚ͭͯܭࢉ? IPΞυϨε͕͋Δ


    ͱ͍͏͜ͱ͸IPΞυϨεॻ͖׵͑ͨΒL4ܭࢉ͠௚͠? • ͳΜ͔஗͍….γϑτԋࢉͱ͔Ͱ΍ͬͯΔͷʹͳ͊ • kernelͲ͏΍ͬͯΜͩ? ΞηϯϒϦ͔Α… • νΣοΫαϜΦϑϩʔυ? ଎͍! ϋʔυ΢ΣΞ࠷ߴ! • Μ? Ծ૝Ϛγϯ͸ԿʹΦϑϩʔυͯ͠Μͷ? • xenͩͬͨΒxen-netbackͱ͔ʹͦΕͬΆ͍ͷ͋Δͳ͊ʔ
  7. ࣾ಺ͷΠϯϑϥΛਅࣅΔϝϦοτ • WebαʔϏεܥͷΠϯϑϥج൫ͷఆੴΛֶ΂Δ • ࠓͰ΋௨༻͢Δےͷྑ͍ઃܭ • ࠓͰ͸ݹ͍ɺطʹഁ୼ͨ͠Ξϯνύλʔϯ • ͪΐ͏ͲΑ͍ن໛ײ •

    খن໛Ϋϥ΢υ, ࣮૷͕௥͍͖ΕΔ • ౰࣌ͷઃܭऀͷҙਤɺؾ͕࣋ͪ෼͔Δ • ࣾ಺ݻ༗ͷࣄ৘(ن໛, ίετ)Λ഑ྀͨ͠ઃܭ • ؆୯ͦ͏Ͱ೉͍͠, ౰࣌͸࢖͑ͳ͔ͬͨ
  8. ωοτϫʔΫߏ੒ %PN &BTU )PNF 0QF 0QFSBUJPO CS CS %PN6 %PN6

    %PN %PN6 %PN6 %PN %PN6 %PN6 CS 8FTU &9 +VOPT CS CS CS CS CS 394 %FCJBO YFO 594 7Z04 $PSF
  9. ෺ཧαʔόͷηοτΞοϓ • Debian Stretch + Xen4.6 • ஌Βͳ͍͏ͪʹ࠶ىಈ • Φϑϩʔυ༗ޮʹ͢Δͱ1࣌ؒޙ͙Β͍ʹigb͕Τϥʔ

    • vif͕4ͭ·Ͱ͔͠࡞Εͳ͍ • ηοτΞοϓ͸PXEϒʔτ+Preseed • ϒʔτબ୒ͨ͠ΒࣗಈͰOSΠϯετʔϧ • ࡉ͔͍ͷ͸ىಈޙʹAnsibleͰ੔͑Δ
  10. Ծ૝αʔόͷηοτΞοϓ • ࣾ಺ • Ծ૝CPU਺ɺϝϞϦɺσΟεΫαΠζΛਓ͕ࢦఆ • IP, ϗετ໊؅ཧ͸ߏ੒؅ཧπʔϧ, Mackerelʹొ࿥ •

    ࣗ୐ • NUMAΛҙࣝͨ͠ΠϯελϯελΠϓͷఆٛͱಋೖ • xen 4.5͔Β͍͍ײ͡ͷεέδϡʔϥ • IP,ϗετ໊؅ཧ͸Mackerel • ໊લղܾ͸consul(0.7)ͱPowerDNS(4.0.1)
  11. ࣗ୐αʔόͷྑ͞ • ؾܰʹෛՙ͔͚ΒΕΔ • ωοτϫʔΫ·ͰݟΕΔ • ୆਺ؾʹ͠ͳ͍ͰݐͯΒΕΔ • 10୆Ҏ্ͳΒίετ҆͘ͳΔ? •

    ෺ཧɺԾ૝ɺίϯςφͳΜͰ΋બ΂Δ • ϋΠύʔόΠβʔͷϩάݟΕΔ • ਂ۷Γ͢Δʹ͸࠷దʂ
  12. ·ͱΊ • ͸͊ʙࣗ୐αʔόͨͷ͌͠ʙ • ؆қͳ΋ͷͰ΋ࣗ෼Ͱ࡞Δͷେࣄ • ΤϯδχΞ͸ϥΠτϢʔβ͡Όବ໨ • ΍Γ͜Έॏཁ •

    ษڧํ๏͸ΞϓϦέʔγϣϯΤϯδχΞͱ͞΄Ͳม ΘΒͳ͍ • ͱʹ͔ࣗ͘෼Ͱ࡞ͬͯΈΑ͏ʂ