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
はてなリモートインターンシップ2022 インフラ 講義資料
Search
Hatena
December 19, 2022
Programming
2.9k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
はてなリモートインターンシップ2022 インフラ 講義資料
https://hatena.co.jp/recruit/intern/2022
Hatena
December 19, 2022
More Decks by Hatena
See All by Hatena
Androiderを育成する「高速道路」と 実戦を経て辿り着いた現在地 / DroidKaigi 2026
hatena
0
170
60分で学ぶクラウドとSRE・サービス運用 / GeekCAMPAcademia 2026-05
hatena
1
140
エンジニアリング マネージャーの育成と評価軸の考え方
hatena
0
720
Perlブートキャンプ
hatena
0
5.7k
はてなサマーインターンシップ2025 Web API 講義資料
hatena
0
1.8k
はてなサマーインターンシップ2025 フロントエンド 講義資料
hatena
21
11k
はてなサマーインターンシップ2025 コンテナ + Kubernetesハンズオン 講義資料
hatena
0
840
はてなサマーインターンシップ2025 クラウドと運用 講義資料
hatena
0
880
はてなサマーインターンシップ2025 RDBMSの基礎 講義資料
hatena
0
1k
Other Decks in Programming
See All in Programming
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
1
2.1k
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
450
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
880
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
120
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
350
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
110
Java 27新機能 / Java 27 new features
kishida
2
190
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
9.7k
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
6.1k
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
160
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
420
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
610
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
350
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
250
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Paper Plane
katiecoart
PRO
4
53k
We Are The Robots
honzajavorek
0
380
For a Future-Friendly Web
brad_frost
183
10k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Automating Front-end Workflow
addyosmani
1369
210k
Raft: Consensus for Rubyists
vanstee
142
7.7k
Done Done
chrislema
187
17k
Unsuck your backbone
ammeep
672
58k
Transcript
Web αʔϏε Πϯϑϥೖ #hatenaintern
׆ס铺紶מחַי Web
泘域 ! Web αʔϏεͷΠϯϑϥͱ - ΠϯϑϥͰҙ͍ࣝͯ͠Δ͜ͱ - αʔόʔઃܭ - αʔόʔߏங
- ΫϥυαʔϏεͷར༻ - αʔόʔӡ༻ - ·ͱΊ
ؕ٤نٚכע =
Web Web - ΞϓϦέʔγϣϯ - ϛυϧΣΞ - OS - Ծαʔόʔ
- ϋʔυΣΞ(ཧαʔόʔͳͲ) - ωοτϫʔΫ - ϑΝγϦςΟ(ϥοΫɺిݯɺۭௐɺͦΕΒΛઃஔɾӡ༻͢ΔσʔληϯλʔͳͲ)
泘域 - Web αʔϏεͷΠϯϑϥͱ ! ΠϯϑϥͰҙ͍ࣝͯ͠Δ͜ͱ - αʔόʔઃܭ - αʔόʔߏங
- ΫϥυαʔϏεͷར༻ - αʔόʔӡ༻ - ·ͱΊ
ؕ٤نٚך䙫閁יַ׆כ ( ) ( ) ( ) ( ) (
) כַֹئ٭لت䬠❠ג״מؕ٤نٚ㲔杯յ禴䧏
⺎榫䓪 ˝ ꤃㲹ֿ颯׀י塛ױםַبتطّ㲔杯ג״ ˝ ַחךئ٭لت⮵榫ך׀
䦡䍖䓪 ˝ 靷蕔מ⺬יقنؚ٭ُ٤ت䷉ャג״ ˝ 䒍鸵מئ٭لت⮵榫ך׀
㱦⪒䓪 ˝ ٗ٭ا٭ס车Ⳃظ٭ذ⟊閾ג״ ˝ 㱦䑏יئ٭لت⮵榫ך׀
Ⲗ曍䓪 ˝ ꄋꊤ氳յ☔氳յ侇ꝴ氳ؤتع⯡峎ג״ ˝ םئ٭لتס䡗Ꝏמחםֿ
刎鬁䓪 ˝ ئ٭لت䡗Ꝏמכםֹ邾ꥭ䓪ס㘃㛻כ梪㗞ס㚺㵚䑴 ג״ ˝ ئ٭لتס釐僶מ碛企ׂ䑴ֻ׆כֿך׀
泘域 - Web αʔϏεͷΠϯϑϥͱ - ΠϯϑϥͰҙ͍ࣝͯ͠Δ͜ͱ ! αʔόʔઃܭ - αʔόʔߏங
- ΫϥυαʔϏεͷར༻ - αʔόʔӡ༻ - ·ͱΊ
ئ٭ف٭錃銶 Web
N ( ) Web3 ΞʔΩςΫνϟ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │ │ │ Proxy Server ├───►│ App Server ├───►│ DB Server │ │ │ │ │ │ │ └──────────────┘ └──────────────┘ └──────────────┘
Web ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ │ │ │
│ Proxy Server ├───►│ App Server ├───►│ DB Server │ │ │ │ │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ Proxy Apache nginx
تآ٭ٚلٛطؔס澬⟊ 1 ( ) ( )
( ) App
( ) DB
⫛Ꝏ 1. 2.
⫛Ꝏסقذ٭٤ /
/ ( ) keepalived VIP DNS DB / VIP FQDN
VIP ┌────────────────┐ │ │ ┌───►│ Active Server │ │ │
│ │ └────────────────┘ ┌────────────────┐ │ ▲ │ │ VIP │ │ │ Client ├───────┘ │ VRRP │ │ │ └────────────────┘ ▼ ┌────────────────┐ │ │ │ Standby Server │ │ │ └────────────────┘
ٝوٛقذ٭٤ DNS App
ٞ٭غفٚ٤ئ٭✳榫㕙⺬ ┌────────────────┐ │ │ ┌──►│ Server A │ │ │
│ │ └────────────────┘ │ │ ┌──────────┐ ┌───────────────────────────┐ │ ┌────────────────┐ │ │ │ │ │ │ │ │ Client ├─────────►│ Server-side load balancer ├────┼──►│ Server B │ │ │ │ │ │ │ │ └──────────┘ └───────────────────────────┘ │ └────────────────┘ │ │ │ ┌────────────────┐ │ │ │ └──►│ Server C │ │ │ └────────────────┘
ٞ٭غفٚ٤ب٤ء 2
ئ٭ف٭ئؕغٞ٭غفٚ٤ب٤ء DNS SPOF
ٞ٭غفٚ٤ئ٭ ˝ 刎鬁ם⮆丆亠䌋 ˝ ىٜتزؘشؠמ⺎榫䓪ס䥵⟊
ٞ٭غفٚ٤ئ٭ ┌────────────────┐ │ │ ┌──►│ Server A │ │ │
│ │ └────────────────┘ │ │ ┌──────────┐ ┌───────────────────────────┐ │ ┌────────────────┐ │ │ │ │ │ │ │ │ Client ├─────────►│ Server-side load balancer ├────┼──►│ Server B │ │ │ │ │ │ │ │ └──────────┘ └───────────────────────────┘ │ └────────────────┘ │ │ │ ┌────────────────┐ │ │ │ └──►│ Server C │ │ │ └────────────────┘
DNS DNS FQDN IP 1 DNS
DNS Q1: server.example.com A1: 192.0.2.1 ┌─────────────────┐ ┌────────────────┐ ┌────────────────┐ │ │
│ │ │ │ │ DNS Server │◄────────────►│ Client A ├────────►│ Server X │ │ │ │ │ │ 192.0.2.1 │ │ │ │ │ ┌────►│ │ └─────────────────┘ └────────────────┘ │ └────────────────┘ ▲ ▲ ▲ │ │ │ │ ┌────────────────┐ │ ┌────────────────┐ │ │ │ │ │ │ │ │ │ │ │ │ Client B ├───┼────►│ Server Y │ │ │ └────────────────►│ │ │ │ 192.0.2.2 │ │ │ Q2: server.example.com│ │ │ │ │ │ │ A2: 192.0.2.2 └────────────────┘ │ └────────────────┘ │ │ │ │ │ ┌────────────────┐ │ ┌────────────────┐ │ │ │ │ │ │ │ │ │ │ Client C ├───┼────►│ Server Z │ │ └──────────────────────►│ │ │ │ 192.0.2.3 │ │ Q3: server.example.com│ │ │ │ │ │ A3: 192.0.2.3 └────────────────┘ │ └────────────────┘ │ │ │ ┌────────────────┐ │ │ │ │ │ │ │ Client D │ │ └────────────────────────────►│ ├───┘ Q4: server.example.com│ │ A4: 192.0.2.1 └────────────────┘
ؠٚؕؓ٤عئؕغٞ٭غفٚ٤ب٤ء SPOF
؞ٔشبٖ ˝ 鵭䈱⺸┕յ靷蕔鬭峎յعٚنؔشؠꄈס⯡峎ֿ泘氳 ˝ Ⲗ冽ע냕ַֿبتطّס邾ꥭꝧ氦յ鷞榫ؤتعֿ㘃ⱶ ⺎耆䓪ֵֿ ˝ ؞ٔشبֿٖⲖ׀ַֹמؓوٛآ٭ب٘٤錃銶
؞ٔشبٖס❆ Proxy લஈͷΩϟογϡ ProxyʙApp ؒͷΩϟογϡ AppʙDB ؒͷΩϟογϡ │ │ │
│ │ ▼ │ │ ┌───────┐ │ │ │ │ │ ▼ ┌►│ Redis │ │ ┌───────┐ ┌─────────┐ ┌───────┐ │ │ │ ┌───────┐ ▼ │ │ │ │ │ │ │ └───────┘ │ │ ┌────────┐ ┌─────┐ ┌────┤ │ ┌────┤ │ ┌────┤ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─┘ │ │ │ Client ├────►│ CDN ├─────►│ LB │ Proxy ├────►│ LB │ Varnish ├────►│ LB │ App │ │ DB │ │ │ │ │ │ │ │ │ │ │ │ │ ├──────────────►│ │ └────────┘ └─────┘ └────┤ │ └────┤ │ └────┤ │ │ │ │ │ │ │ │ │ │ │ └───────┘ └─────────┘ └───────┘ └───────┘
Proxy CDN (Content Delivery Network) Web DDoS Akamai, CloudFront, Fastly,
Cloud are
Proxy App HTTP Varnish, nginx
App DB KVS (Key-Value Store) Redis, memcached
泘域 - Web αʔϏεͷΠϯϑϥͱ - ΠϯϑϥͰҙ͍ࣝͯ͠Δ͜ͱ - αʔόʔઃܭ ! αʔόʔߏங
- ΫϥυαʔϏεͷར༻ - αʔόʔӡ༻ - ·ͱΊ
ئ٭ف٭啶疣 ˝ 擻杼ئ٭ف٭ ˝ ♞䘶ئ٭ف٭ ˝ ؤ٤طػ ˝ ؤ٤طػ؛٭آتعٝ٭ب٘٤
ئ٭ف٭סٚؕنئؕؠٜ - ܭը - ௐୡ - ಋೖ - ߏங -
ӡ༻ɾอक - ഇغ
擻杼ئ٭ف٭ ˝ 榫鵍מ⺬ג刎鬁םـ٭غؘؗؓ啶䡗 ˝ ـ٭غؘؗؓס䓪耆نٜמ孨榫ך׀ ˝ ٍعٜؾشؠ꣘չױךؤ٤عٞ٭ٜך׀
擻杼ئ٭ف٭ס鐐갭 ˝ ףׂتآ٭ٜך׀םַ ˝ 鐧鷼յ㵵⪌מ侇ꝴ氳յ☔氳ؤتعֿ־־ ˝ ـ٭غؘؗؓٛخ٭تס⛷Ⱍֿ⭳יױַⲖ曍䓪ֿ䖾ַ 1
♞䘶ئ٭ف٭ Web ( ) - ΞϓϦέʔγϣϯ - ϛυϧΣΞ - OS
- Ծαʔόʔ - ϋʔυΣΞ(ཧαʔόʔͳͲ) - ωοτϫʔΫ - ϑΝγϦςΟ 1
♞䘶䤗软 CPU Xen, KVM
♞䘶ئ٭ف٭סْٛشع / ( )
... /OS
ؤ٤طػ Docker !
ؤ٤طػכ♞䘶ئ٭ف٭כס鷿ַ OS OS OS CPU
ؤ٤طػ؛٭آتعٝ٭ب٘٤ Kubernetes, ECS
Kubernetes EKS, GKE, AKS Kubernetes ! Kubernetes
ًشع־㳃槹յאס⩝ ˝ 擻杼ئ٭ف٭ ˝ לדׄꝎׂ㱦㲊י牧⥸־ֿꄆ釐ն㛻⮉מْ٤طػ٤ت ˝ ♞䘶ئ٭ف٭ ˝ ֹױׂⳂ־םׄף⛼泡 ˝
ؤ٤طػ ˝ ⺬כי僿䏨ג敯䛜מםֹמ禴䧏٬⹜兠
泘域 - Web αʔϏεͷΠϯϑϥͱ - ΠϯϑϥͰҙ͍ࣝͯ͠Δ͜ͱ - αʔόʔઃܭ - αʔόʔߏங
! ΫϥυαʔϏεͷར༻ - αʔόʔӡ༻ - ·ͱΊ
ئ٭لتס䡗Ꝏמכםֹ鐐갭 /
ؓوٛآ٭ب٘٤ס邾ꥭ ˝ ٓؿٛبشؠؓ٭؞طؠزٔ ˝ 㚺催ס䏅ꮶֿ㛻׀ׂםյꝧ氦鵭䈱ֿ⛥┖ ˝ لٜغظوٞؕמ侇ꝴֿ־־յףׂٛٛ٭تך׀ם ַ
ُؕؠٞئ٭لتؓ٭؞طؠزٔס䫑榫 !
/ ˝ 鷞榫٬⟊㱤ס☔氳յ侇ꝴ氳ؤتعֿ㘃ֻ ˝ 敯䛜ס䤧䭂כ禴䧏ֿꦘׂם ˝ 㵚䑴ֿ鷐כج؞ٖٛطؔؕ٤بظ٤عמ氦㷣⺎耆䓪 냕ׂם
ؠٚؗغئ٭لتס⮵榫 Amazon Web Services Google Cloud
XaaS IaaS PaaS SaaS
鞊♳⪦僗ٓظٜ IaaS PaaS SaaS OS OS OS OS
/ ˝ ْٛشع ˝ ُؾ٭ةغئ٭لتמꝧ氦ؤتعյ鷞榫ؤتعס⯡峎 ˝ Ⳃ氳םٛخ٭ت澬⟊מ䦡䍖䓪ס⺸┕ ˝ 䏼ꄈ鐐ꄋמؤتع僃鸵 ˝
┩槡╈מ㰆㏇ظ٭ذج٤ذ٭⮵榫׆כך愤㲹㵚瓀ֿ⺎耆 ˝ ظْٛشع ˝ بتطّסؤ٤عٞ٭ٜتذُؕثס⯆ ˝ ئ٭لتס犉哕氳ם孨榫מبتطّ⪒⛮ס邾ꥭ ˝ ي٤ر٭ٞشؠؕ٤
泘域 - Web αʔϏεͷΠϯϑϥͱ - ΠϯϑϥͰҙ͍ࣝͯ͠Δ͜ͱ - αʔόʔઃܭ - αʔόʔߏங
- ΫϥυαʔϏεͷར༻ ! αʔόʔӡ༻ - ·ͱΊ
ئ٭ف٭鷞榫 ˝ ظ٭ذס畘杼 ˝ 泃釱 ˝ ꤃㲹㵚䑴
ظ٭ذס畘杼 ˝ ظ٭ذס㱦⪒䓪յ⺎榫䓪䥵⟊׆כֿ泘氳 ˝ ظ٭ذס䮇㜊بتطّ꤃㲹מ⤓ֻ ˝ 嫎氳紶ⳉؤ٤وٚؕؓ٤ت㵚瓀ס㵚䑴䑒釐 ˝ 泘氳מ䑴י僃鸵ם䣆嫎鹟䥃 ˝
فشؠؓشوյؓ٭ؕهյٝوٛآ٭ب٘٤ e- J-SOX
فشؠؓشو ˝ 䳩⛼ِتبتطّ꤃㲹յٜؗؔت䚉刌םלס꤀מظ٭ذ䐝 仾ג״מ ˝ ظ٭ذ⪒⛮㚺催䄐⮆ظؔتؠط٭وםלյ擻杼氳מ樟ם 㕙䢥מ㲊僿氳מ⟊㰆 ˝ 䐝仾وٞجت乃傴י㲊僿氳מ澬鏀׆כֿꄆ釐
ؓ٭ؕه ˝ ꄆ釐䗯㕔Ꝏ僿ꝴמגזי⟊㰆٬孨榫 ˝ Ꝏ僿⟊㰆ֿ䑒釐םظ٭ذط٭وظؔتؠյْظؔؓ鋗ꎰ י⟊畘յ泃削䗯㕔ꝧ炐םלյ䑒釐םכ׀מꞦ鈋⺎耆מ ˝ ⟊㰆僿ꝴס畘杼յ䷉؆寕⸻סꡔ塛յꞦ鈋ٞءס畘杼םלס 㱦⪒䓪姲״
ٝوٛآ٭ب٘٤ ˝ ؾشع٠٭ؠ鵟יٜٛؓذّؕמظ٭ذ邾邮 ˝ 䐝仾⛼哅ס䑒釐ֿםׂյ⮉僀ֻ׆כך泘氳鷼䡗ך׀ ˝ فشؠؓشوכ⛍יַֿظ٭ذס䷉؆滭䮇סⲖ冽עם ַ׆כמ嫰䙫
泃釱 /
/ CPU
ؓوٛآ٭ب٘٤泃釱 ˝ ꞊䑏ׇכ ˝ قنؚ٭ُ٤تעⶇ⮆־յ꤃㲹⸉㍔ע⛰־յ塜ׂ嚀耆י ַ־ ˝ 泃釱䧗嘅 ˝ ⭚杼侇ꝴյٞءյىٜتزؘؠؙ٤غَؕ٤عםל
ئ٭لت泃釱 ˝ ꞊䑏ׇכ ˝ ئ٭لت䬠❠ך׀יַ־յ䒍鸵מ✳ֻיַ־ ˝ 泃釱䧗嘅 ˝ ٝتَ٤تؤ٭غյٝؕط٤بםל
ج؞ٖٛطؔ泃釱 ˝ ꞊䑏ׇכ ˝ ┘塜מ⮵榫יַםַ־յ耗䍏םبتطّךעםַ־ ˝ 泃釱䧗嘅 ˝ 泃削ٞءյِغؘٜؗؓ٬ٚؕهٚٛס耗䍏䓪䗯㕔םל
لةؾت泃釱 ˝ ꞊䑏ׇכ ˝ ئ٭لتע䡗Ꝏיַ־յ⮵沟ע⭳יַ־ ˝ 泃釱䧗嘅 ˝ ئ٭لت⮵榫縖丗ס㘃峎յؤتعםל
ꝧ氦قنؚ٭ُ٤ت泃釱 ˝ ꞊䑏ׇכ ˝ ꝧ氦յظوַٞؕ梪㗞禴䧏ך׀יַ־ ˝ 泃釱䧗嘅 ˝ ٛٛ٭ت값䈱յلٜغ٬ظوٞؕסٛ٭غذّؕםל
꤃㲹㵚䑴 &&
泘域 - Web αʔϏεͷΠϯϑϥͱ - ΠϯϑϥͰҙ͍ࣝͯ͠Δ͜ͱ - αʔόʔઃܭ - αʔόʔߏங
- ΫϥυαʔϏεͷར༻ - αʔόʔӡ༻ ! ·ͱΊ
ױכ״ Web