Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
はてなリモートインターンシップ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
60分で学ぶクラウドとSRE・サービス運用 / GeekCAMPAcademia 2026-05
hatena
1
93
エンジニアリング マネージャーの育成と評価軸の考え方
hatena
0
640
Perlブートキャンプ
hatena
0
5.2k
はてなサマーインターンシップ2025 Web API 講義資料
hatena
0
1.1k
はてなサマーインターンシップ2025 フロントエンド 講義資料
hatena
21
11k
はてなサマーインターンシップ2025 コンテナ + Kubernetesハンズオン 講義資料
hatena
0
770
はてなサマーインターンシップ2025 クラウドと運用 講義資料
hatena
0
820
はてなサマーインターンシップ2025 RDBMSの基礎 講義資料
hatena
0
880
はてなサマーインターンシップ2025 セキュリティ 講義資料
hatena
0
810
Other Decks in Programming
See All in Programming
Android CLI
fornewid
0
180
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
180
AIが無かった頃の素敵な出会いの話
codmoninc
1
240
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.7k
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
120
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
170
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.3k
Foundation Models frameworkで画像分析
ryodeveloper
1
140
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
410
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
180
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
2.4k
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
540
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
240
How to build a perfect <img>
jonoalderson
1
5.8k
Statistics for Hackers
jakevdp
799
230k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Done Done
chrislema
186
16k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
760
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
From π to Pie charts
rasagy
0
240
Discover your Explorer Soul
emna__ayadi
2
1.2k
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