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
190
60分で学ぶクラウドとSRE・サービス運用 / GeekCAMPAcademia 2026-05
hatena
1
140
エンジニアリング マネージャーの育成と評価軸の考え方
hatena
0
730
Perlブートキャンプ
hatena
0
5.7k
はてなサマーインターンシップ2025 Web API 講義資料
hatena
0
1.8k
はてなサマーインターンシップ2025 フロントエンド 講義資料
hatena
21
11k
はてなサマーインターンシップ2025 コンテナ + Kubernetesハンズオン 講義資料
hatena
0
850
はてなサマーインターンシップ2025 クラウドと運用 講義資料
hatena
0
890
はてなサマーインターンシップ2025 RDBMSの基礎 講義資料
hatena
0
1k
Other Decks in Programming
See All in Programming
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
450
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.4k
JRuby: Past, Present, and Future
headius
0
220
AWSに止められる覚悟してますか?
morizo_1984
2
520
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
160
mrbgem 三角測量 開発
ogom
0
210
パーソナライズPodcastを作った話
repunit11
0
130
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
6
4.8k
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
Heart of Swift Concurrency
koher
0
1.2k
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
720
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
140
Featured
See All Featured
The Curious Case for Waylosing
cassininazir
1
560
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Technical Leadership for Architectural Decision Making
baasie
3
590
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
560
How to Think Like a Performance Engineer
csswizardry
28
2.9k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
550
Building an army of robots
kneath
307
47k
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