Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
はてなのインフラ環境を自宅で再現する
Search
masayoshi
December 10, 2016
Technology
12k
7
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
はてなのインフラ環境を自宅で再現する
YAPC::Hokkaido 2016 SAPPOROでの発表資料です。
今後ネットワーク図とか色々ブログの方に公開していきたいと思っています。
masayoshi
December 10, 2016
More Decks by masayoshi
See All by masayoshi
サーバー常駐型の 簡易障害調査AI エージェントを作ってみた話
masayoshi
1
550
Perlアプリケーションで トレースを実装するまでの 工夫と苦労話
masayoshi
1
870
これからSREになる人と、これからもSREをやっていく人へ
masayoshi
7
6.2k
メトリクス、ログ、トレースをうまく使い分けて可観測性を高めよう!
masayoshi
8
13k
Developers Summit 2021 summer
masayoshi
15
32k
2021-06-cloud-native-reg-event
masayoshi
8
2.6k
SRE_Culture_Organization
masayoshi
16
11k
cloudnative-kansai-2019
masayoshi
1
810
ミドルウェア実行環境の多様化を考慮したインフラアーキテクチャの一検討/study on web system architecture #2
masayoshi
0
4.1k
Other Decks in Technology
See All in Technology
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
0
2.2k
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
190
品質と信頼性を地続きにする
grimoh
0
400
OpenTelemetryのメトリクスをCloudWatchに送ってPromQLで見てみた
ota1022
0
150
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
5
25k
AI de Idea
kawaguti
PRO
2
110
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
900
Omarchy Quattro の日本語設定周り
simosako
2
180
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
350
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
730
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
740
Issue 駆動でスペシャリストの意図を届ける、AI 実装のアクセシビリティ向上
thkt
0
110
Featured
See All Featured
Believing is Seeing
oripsolob
1
220
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
KATA
mclloyd
PRO
35
15k
The Limits of Empathy - UXLibs8
cassininazir
1
670
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Side Projects
sachag
456
43k
Design in an AI World
tapps
1
320
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
700
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Color Theory Basics | Prateek | Gurzu
gurzu
1
470
Transcript
ͯͳͷΠϯϑϥڥ ΛࣗͰ࠶ݱ͢Δ :"1$)PLLBJEP
ࣗͷ༷ࢠ
None
ཧαʔό: 3 (+1) Ծαʔό: 40 L3εΠον: 1 (+1) Քಇதͷ ()ઃఆதͷ
None
YAPC::Hokkaidoͷൃදه೦ʹ αʔόΛ૿ڧ͠·ͨ͠ (10ສ)
ࣗݾհ
ࣗݾհ • id:masayoshi (yoyogidesaiz) • גࣜձࣾͯͳ (20164݄ೖࣾ) • YAPC ॳࢀՃͰ͢
• ֶੜ࣌αʔόࢹͷΞϧόΠτ • ݱࡏWebΦϖϨʔγϣϯΤϯδχΞͷج൫νʔϜ
ΞδΣϯμ • ॳΊʹ • ࢲͳΓͷߟ͑ํͱษڧํ๏ • ࣗαʔόͷߏհ • ·ͱΊ
1 ॳΊʹ
৽ଔ࠷ॳͷ3ϲ݄
• 4݄ ݚम http://developer.hatenastaff.com/entry/2016-newbie-training-of-web-operation • 5݄ ࣾͷωοτϫʔΫ֮͑·͔ͨ͠? ֎෦τϥϑΟοΫͷଳҬ૿͍ͯͩ͘͠͞ • 6݄
ωοτϫʔΫઃܭ͍͍ײ͡ʹ͓ئ͍͠·͢ • ͦͷޙɺج൫νʔϜ͕ൃ͠ϝϯόʔʹ
ج൫νʔϜ(3໊) • ࣗࣾͷΠϯϑϥಛੑΛѲ͍͍ͯ͠ײ͡ʹ͢Δ • αʔϏε͕ଟ͍(10αʔϏεҎ্) • DC + AWS +
͘͞Βͷઐ༻αʔό • 5,10ར༻͞ΕΔαʔϏε • ཧ,Ծαʔό1000Ҏ্
ࠓҎ্ʹษڧ͠ͳ͍ͱϚζΠ
ͱ͍͏͜ͱͰ
͏͜Ε ࣗͰձࣾͷΠϯϑϥΛ ਅࣅͯΈΔ͔͠ͳ͍ʂ
ͱ͍͏͜ͱʹͳͬͨ
2 ࢲͳΓͷ ߟ͑ํͱษڧํ๏
ษڧటष͘ ࣄεϚʔτʹ (Γ͍ͨͱࢥ͍ͬͯΔ)
ࣄ… • ॏཁͳ͜ͱ • ϢʔβʹαʔϏε(Ձ)Λಧ͚Δ͜ͱ • ࣌ؒత੍ • ઓͱ҆ఆͷόϥϯε •
͍࣋ͬͯΔٕज़ɺࣝͰΨϯΨϯԥΔ • ศརɺར༻͞Ε͍ͯΔͷΛੵۃతʹ͏
ษڧ… • ࣌ؒΛֶ͔͚ͯΜͰྑ͍ • Ұͭͷ͜ͱΛஸೡʹਂ۷Γ • ۚͳ͍ɺ͔͚࣌ؒͯΑ͍ • ཕ౿Μ͚ͩͩڧ͘ͳΔ •
͋ɺʙͰݟͨ͜ͱ͋Δͭͩ • ཕௐࠪਂ۷Γ͢Δ͍͍νϟϯε
࣌ؒΛ͔͚ͯਂ۷Γ
࡞ΔਅࣅΔ৮Δฉ͘ ಡΉ ͍͠ ͔͔࣌ؒΔ Α͘Θ͔Δ ؆୯ ͙͢ग़དྷΔ Α͘Θ͔ΒΜ
ֶ෦3ͷࠒͷษڧํ๏ • ਓ͔Βฉ͘ɺٕज़ϒϩάͱ͔ಡΉ • LinuxͷίϚϯυͱ͔ • શવ֮͑ΒΕͳ͍͠ɺΘ͔ΒΜ • ͱΓ͋͑ͣܰ͘৮ͬͯΈΔ •
ՈͷϊʔτPCΛLinuxʹ͢Δ • wordpressͱ͔Λߏஙͯ͠ΈͨΓ
৮Δ͚ͩͷݶք • ߏஙखॱΛ֮͑Δ͜ͱ͕ٕज़ྗ? • εΫϦϓτͱ͔ChefͰࣗಈԽग़དྷΔΒ͍͠ • ઃఆ߲Λ֮͑Δ͜ͱ͕ॏཁ? • Ͳ͏ͯͦ͠ͷઃఆΛ͢Δͱ͘ͳΔͷ͔͕ॏཁ •
ϛυϧΣΞͲ͏ͬͯબྑ͍? • ಓ۩ͷ͍ํॏཁ͚ͩͲબͼํॏཁ
ܰ͘৮ͬͨΓɺ ฉ͘ɺಡΉఔͰ ৽͍͠ͷΛ࡞ɺઃܭ͍͠ ͨΓલ͕ͩ
ֶ෦4Ҏ߱ͷษڧํ๏ • αʔόࢹͷΞϧόΠτ • ϛυϧΣΞɺෛՙࢄɺԽͳͲͷߏྫ • ਅࣅΔͨΊͷ࣮ྫ • ݚڀ •
ιϑτΣΞϧʔλ࡞ɺϓϩτίϧͷௐࠪͳͲ • ඞཁͳجૅࣝͷษڧͱ࣮
ਅࣅͯ࡞ͬͨΓมߋͨ͠Γ • ߏྫͷߏஙࣗಈԽνϟϨϯδ • ݅ΛՃ͑ͯɺͦΕʹ͋͏Α͏ʹߏྫΛมߋ͢Δ • ݸਓతʹ”റΓϓϨΠ”ͱݺΜͰ͍Δ (ແఀࢭറΓͱ͔) • େม͚ͩͲҰ͔Β࡞ͬͯΈΔ
• ϥΠϒϥϦͷ࠶࣮ͱ͔ • ϛυϧΣΞͳͲͷҰ෦Λ؆қ࣮ • ιέοτϓϩάϥϛϯάͰpreforkܕͱeventܕͱ͔
ಘΒΕΔͷ(ͦͷ1) • ఆੴͷϝϦοτɺσϝϦοτֶ͕Δ • બࢶΛ૿ͤΔɺஅج४͕ग़དྷΔ • ҰͭԼͷϨΠϠʔֶ͕Δ (syscall, OS, Network,..)
• ҧ͏ϛυϧΣΞͷཧղʹཱͭ • ͕͕ࣝΔ • ͔ͬͨ”ͭΓ”෦ͷѲ • ͳΜ͔ٕज़ϒϩάɺຊͱ͔Ͱͬͨؾʹͳͬͯͨ • צҧ͍ɺࢥͬͨΑΓ~ͩͬͨ
ಘΒΕΔͷ(ͦͷ2) • ײͱٙ (ෳࡶ,γϯϓϧ, ͍, ͍, ָ, ͭΒ ͍, …)
• ΈΜͳͲ͏͍ͯ͠ΔΜͩΖ͏? • ͭΒ͍ͷఆ͞ΕͨΘΕํ͡Όͳ͍͔Β͔ • ͔ͩΒ͜͏͍͏࣮ͳͷ͔~ • ݁ہ͕͜͜ͳΜͩΑͳ͊ • ଞʹͬͱద࣮͕ͨ͋͠ΔͷͰ? • ͳ͍ͳΒ࡞Δ͔(ͱݴ͑Δͱ͔͍͍ͬ͜)
ྫ͑ ιϑτΣΞϧʔλ࡞
࡞Δͱ͖ͷֶͼྫ (checksum) • 1ͷิ? 2ͷิͳΒΑ͘͏͚Ͳͳ͊ • L2ͰL3ͰL4ͰνΣοΫαϜܭࢉ͢Μͷ͔Α • ٙࣅϔομΛ͚ͭͯܭࢉ? IPΞυϨε͕͋Δ
ͱ͍͏͜ͱIPΞυϨεॻ͖͑ͨΒL4ܭࢉ͠͠? • ͳΜ͔͍….γϑτԋࢉͱ͔ͰͬͯΔͷʹͳ͊ • kernelͲ͏ͬͯΜͩ? ΞηϯϒϦ͔Α… • νΣοΫαϜΦϑϩʔυ? ͍! ϋʔυΣΞ࠷ߴ! • Μ? ԾϚγϯԿʹΦϑϩʔυͯ͠Μͷ? • xenͩͬͨΒxen-netbackͱ͔ʹͦΕͬΆ͍ͷ͋Δͳ͊ʔ
࡞Δͱ͖ͷֶͼྫ (ͦͷଞ) • ͏͐…౸ணύέοτͷฒͼସ͑ΊͬͪΌ͍… • TCPͷΦϓγϣϯϑΟʔϧυ? LinuxσϑΥϧτͰtimestamp͍ͬͯΔͷ͔… • ωοτϫʔΫͷײͩͱϝϞϦίϐʔ͍… •
CPU͕1ίΞʹுΓ͘~ͱ͜ΖͰsoftirqͬͯͳʹ? • kernelͷωοτϫʔΫελοΫ͕ϘτϧωοΫ?͑? • DPDKࢯ~ པΉ~
Λͯ͠
ં֯ࣾͷΠϯϑϥͷத͕ݟΕΔͷͰ ՈͰਅࣅͯΈΑ͏
3 ࣗαʔόͷߏհ
ࣾͷΠϯϑϥΛਅࣅΔϝϦοτ • WebαʔϏεܥͷΠϯϑϥج൫ͷఆੴΛֶΔ • ࠓͰ௨༻͢Δےͷྑ͍ઃܭ • ࠓͰݹ͍ɺطʹഁͨ͠Ξϯνύλʔϯ • ͪΐ͏ͲΑ͍نײ •
খنΫϥυ, ࣮͕͍͖ΕΔ • ࣌ͷઃܭऀͷҙਤɺؾ͕͔࣋ͪΔ • ࣾݻ༗ͷࣄ(ن, ίετ)Λྀͨ͠ઃܭ • ؆୯ͦ͏Ͱ͍͠, ࣌͑ͳ͔ͬͨ
ਅࣅΔͱ͜Ζਅࣅ͍͍ͯײ͡ʹ • ศརͳͱ͜Ζਅࣅ͍ͯ͘ • ҧ͏ͷࢼ͍ͨ͠ͱ͜Ζม͑Δ • ґଘؔʹҙ͠ͳ͕Βߏங͍ͯ͘͠ • ՈͱձࣾͷنײΛҙࣝ͢Δ •
ՄೳͳݶΓ৽͍͠όʔδϣϯͰ࡞Δ • ͍͍ײ͡ʹͳͬͨΒࣾಋೖ • ָ͠Ήʂ
ͱ͍͏͜ͱͰ࣌ؒ͋Δ͔͗Γհ • ωοτϫʔΫߏ • ཧαʔόͷηοτΞοϓ • ԾαʔόͷηοτΞοϓ • ϓϩϏδϣχϯά •
ෛՙࢄɺԽ • WebΞϓϦέʔγϣϯ
ωοτϫʔΫߏ %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
ཧαʔόͷηοτΞοϓ • Debian Stretch + Xen4.6 • Βͳ͍͏ͪʹ࠶ىಈ • Φϑϩʔυ༗ޮʹ͢Δͱ1࣌ؒޙ͙Β͍ʹigb͕Τϥʔ
• vif͕4ͭ·Ͱ͔͠࡞Εͳ͍ • ηοτΞοϓPXEϒʔτ+Preseed • ϒʔτબͨ͠ΒࣗಈͰOSΠϯετʔϧ • ࡉ͔͍ͷىಈޙʹAnsibleͰ͑Δ
ԾαʔόͷηοτΞοϓ • ࣾ • ԾCPUɺϝϞϦɺσΟεΫαΠζΛਓ͕ࢦఆ • IP, ϗετ໊ཧߏཧπʔϧ, Mackerelʹొ •
ࣗ • NUMAΛҙࣝͨ͠ΠϯελϯελΠϓͷఆٛͱಋೖ • xen 4.5͔Β͍͍ײ͡ͷεέδϡʔϥ • IP,ϗετ໊ཧMackerel • ໊લղܾconsul(0.7)ͱPowerDNS(4.0.1)
ϓϩϏδϣχϯάͱ͔ • ࣾ • Chef + Capistrano + Jenkins •
ࣗ • Ansible + Fabric + Rundeck
ෛՙࢄɺԽ • ࣾ • LVS+keepalived, HAProxy • ࣗ • LVS+keepalivedͱconsul
• Seesawͱ͔ࢼͯ͠Έ͍ͨ • ࣗ࡞
WebΞϓϦέʔγϣϯ • ISUCONͷΛ༻ • ؆қ࣮ͳͷͰ৭ʑ֬ೝ͍͢͠ • ϕϯνϚʔΫ͕͋Δ • ଞͷํͱൺֱɺ͕ग़དྷΔ •
·ͩ࡞Ε͍ͯͳ͍͕ࣗ࡞͍ͨ͠ • PerlͰҰͭԿ͔࡞Γ͍ͨ
ࣗαʔόͷྑ͞ • ؾܰʹෛՙ͔͚ΒΕΔ • ωοτϫʔΫ·ͰݟΕΔ • ؾʹ͠ͳ͍ͰݐͯΒΕΔ • 10Ҏ্ͳΒίετ҆͘ͳΔ? •
ཧɺԾɺίϯςφͳΜͰબΔ • ϋΠύʔόΠβʔͷϩάݟΕΔ • ਂ۷Γ͢Δʹ࠷దʂ
None
ࣗαʔόָ͍͠ʂ
4 ·ͱΊ
·ͱΊ • ͊ʙࣗαʔόͨͷ͌͠ʙ • ؆қͳͷͰࣗͰ࡞Δͷେࣄ • ΤϯδχΞϥΠτϢʔβ͡Όବ • Γ͜Έॏཁ •
ษڧํ๏ΞϓϦέʔγϣϯΤϯδχΞͱ͞΄Ͳม ΘΒͳ͍ • ͱʹ͔ࣗ͘Ͱ࡞ͬͯΈΑ͏ʂ