Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Web αʔϏε Πϯϑϥೖ #hatenaintern
Slide 2
Slide 2 text
׆ס铺紶מחַי Web
Slide 3
Slide 3 text
泘域 ! Web αʔϏεͷΠϯϑϥͱ - ΠϯϑϥͰҙ͍ࣝͯ͠Δ͜ͱ - αʔόʔઃܭ - αʔόʔߏங - ΫϥυαʔϏεͷར༻ - αʔόʔӡ༻ - ·ͱΊ
Slide 4
Slide 4 text
ؕ٤نٚכע =
Slide 5
Slide 5 text
Web Web - ΞϓϦέʔγϣϯ - ϛυϧΣΞ - OS - Ծαʔόʔ - ϋʔυΣΞ(ཧαʔόʔͳͲ) - ωοτϫʔΫ - ϑΝγϦςΟ(ϥοΫɺిݯɺۭௐɺͦΕΒΛઃஔɾӡ༻͢ΔσʔληϯλʔͳͲ)
Slide 6
Slide 6 text
泘域 - Web αʔϏεͷΠϯϑϥͱ ! ΠϯϑϥͰҙ͍ࣝͯ͠Δ͜ͱ - αʔόʔઃܭ - αʔόʔߏங - ΫϥυαʔϏεͷར༻ - αʔόʔӡ༻ - ·ͱΊ
Slide 7
Slide 7 text
ؕ٤نٚך䙫閁יַ׆כ ( ) ( ) ( ) ( ) ( ) כַֹئ٭لت䬠❠ג״מؕ٤نٚ㲔杯յ禴䧏
Slide 8
Slide 8 text
⺎榫䓪 ˝ ꤃㲹ֿ颯׀י塛ױםַبتطّ㲔杯ג״ ˝ ַחךئ٭لت⮵榫ך׀
Slide 9
Slide 9 text
䦡䍖䓪 ˝ 靷蕔מ⺬יقنؚ٭ُ٤ت䷉ャג״ ˝ 䒍鸵מئ٭لت⮵榫ך׀
Slide 10
Slide 10 text
㱦⪒䓪 ˝ ٗ٭ا٭ס车Ⳃظ٭ذ⟊閾ג״ ˝ 㱦䑏יئ٭لت⮵榫ך׀
Slide 11
Slide 11 text
Ⲗ曍䓪 ˝ ꄋꊤ氳յ☔氳յ侇ꝴ氳ؤتع⯡峎ג״ ˝ םئ٭لتס䡗Ꝏמחםֿ
Slide 12
Slide 12 text
刎鬁䓪 ˝ ئ٭لت䡗Ꝏמכםֹ邾ꥭ䓪ס㘃㛻כ梪㗞ס㚺㵚䑴 ג״ ˝ ئ٭لتס釐僶מ碛企ׂ䑴ֻ׆כֿך׀
Slide 13
Slide 13 text
泘域 - Web αʔϏεͷΠϯϑϥͱ - ΠϯϑϥͰҙ͍ࣝͯ͠Δ͜ͱ ! αʔόʔઃܭ - αʔόʔߏங - ΫϥυαʔϏεͷར༻ - αʔόʔӡ༻ - ·ͱΊ
Slide 14
Slide 14 text
ئ٭ف٭錃銶 Web
Slide 15
Slide 15 text
N ( ) Web3 ΞʔΩςΫνϟ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ │ │ │ │ Proxy Server ├───►│ App Server ├───►│ DB Server │ │ │ │ │ │ │ └──────────────┘ └──────────────┘ └──────────────┘
Slide 16
Slide 16 text
Web ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ │ │ │ │ Proxy Server ├───►│ App Server ├───►│ DB Server │ │ │ │ │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ Proxy Apache nginx
Slide 17
Slide 17 text
تآ٭ٚلٛطؔס澬⟊ 1 ( ) ( )
Slide 18
Slide 18 text
( ) App
Slide 19
Slide 19 text
( ) DB
Slide 20
Slide 20 text
⫛Ꝏ 1. 2.
Slide 21
Slide 21 text
⫛Ꝏסقذ٭٤ /
Slide 22
Slide 22 text
/ ( ) keepalived VIP DNS DB / VIP FQDN
Slide 23
Slide 23 text
VIP ┌────────────────┐ │ │ ┌───►│ Active Server │ │ │ │ │ └────────────────┘ ┌────────────────┐ │ ▲ │ │ VIP │ │ │ Client ├───────┘ │ VRRP │ │ │ └────────────────┘ ▼ ┌────────────────┐ │ │ │ Standby Server │ │ │ └────────────────┘
Slide 24
Slide 24 text
ٝوٛقذ٭٤ DNS App
Slide 25
Slide 25 text
ٞ٭غفٚ٤ئ٭✳榫㕙⺬ ┌────────────────┐ │ │ ┌──►│ Server A │ │ │ │ │ └────────────────┘ │ │ ┌──────────┐ ┌───────────────────────────┐ │ ┌────────────────┐ │ │ │ │ │ │ │ │ Client ├─────────►│ Server-side load balancer ├────┼──►│ Server B │ │ │ │ │ │ │ │ └──────────┘ └───────────────────────────┘ │ └────────────────┘ │ │ │ ┌────────────────┐ │ │ │ └──►│ Server C │ │ │ └────────────────┘
Slide 26
Slide 26 text
ٞ٭غفٚ٤ب٤ء 2
Slide 27
Slide 27 text
ئ٭ف٭ئؕغٞ٭غفٚ٤ب٤ء DNS SPOF
Slide 28
Slide 28 text
ٞ٭غفٚ٤ئ٭ ˝ 刎鬁ם⮆丆亠䌋 ˝ ىٜتزؘشؠמ⺎榫䓪ס䥵⟊
Slide 29
Slide 29 text
ٞ٭غفٚ٤ئ٭ ┌────────────────┐ │ │ ┌──►│ Server A │ │ │ │ │ └────────────────┘ │ │ ┌──────────┐ ┌───────────────────────────┐ │ ┌────────────────┐ │ │ │ │ │ │ │ │ Client ├─────────►│ Server-side load balancer ├────┼──►│ Server B │ │ │ │ │ │ │ │ └──────────┘ └───────────────────────────┘ │ └────────────────┘ │ │ │ ┌────────────────┐ │ │ │ └──►│ Server C │ │ │ └────────────────┘
Slide 30
Slide 30 text
DNS DNS FQDN IP 1 DNS
Slide 31
Slide 31 text
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 └────────────────┘
Slide 32
Slide 32 text
ؠٚؕؓ٤عئؕغٞ٭غفٚ٤ب٤ء SPOF
Slide 33
Slide 33 text
؞ٔشبٖ ˝ 鵭䈱⺸┕յ靷蕔鬭峎յعٚنؔشؠꄈס⯡峎ֿ泘氳 ˝ Ⲗ冽ע냕ַֿبتطّס邾ꥭꝧ氦յ鷞榫ؤتعֿ㘃ⱶ ⺎耆䓪ֵֿ ˝ ؞ٔشبֿٖⲖ׀ַֹמؓوٛآ٭ب٘٤錃銶
Slide 34
Slide 34 text
؞ٔشبٖס❆ Proxy લஈͷΩϟογϡ ProxyʙApp ؒͷΩϟογϡ AppʙDB ؒͷΩϟογϡ │ │ │ │ │ ▼ │ │ ┌───────┐ │ │ │ │ │ ▼ ┌►│ Redis │ │ ┌───────┐ ┌─────────┐ ┌───────┐ │ │ │ ┌───────┐ ▼ │ │ │ │ │ │ │ └───────┘ │ │ ┌────────┐ ┌─────┐ ┌────┤ │ ┌────┤ │ ┌────┤ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─┘ │ │ │ Client ├────►│ CDN ├─────►│ LB │ Proxy ├────►│ LB │ Varnish ├────►│ LB │ App │ │ DB │ │ │ │ │ │ │ │ │ │ │ │ │ ├──────────────►│ │ └────────┘ └─────┘ └────┤ │ └────┤ │ └────┤ │ │ │ │ │ │ │ │ │ │ │ └───────┘ └─────────┘ └───────┘ └───────┘
Slide 35
Slide 35 text
Proxy CDN (Content Delivery Network) Web DDoS Akamai, CloudFront, Fastly, Cloud are
Slide 36
Slide 36 text
Proxy App HTTP Varnish, nginx
Slide 37
Slide 37 text
App DB KVS (Key-Value Store) Redis, memcached
Slide 38
Slide 38 text
泘域 - Web αʔϏεͷΠϯϑϥͱ - ΠϯϑϥͰҙ͍ࣝͯ͠Δ͜ͱ - αʔόʔઃܭ ! αʔόʔߏங - ΫϥυαʔϏεͷར༻ - αʔόʔӡ༻ - ·ͱΊ
Slide 39
Slide 39 text
ئ٭ف٭啶疣 ˝ 擻杼ئ٭ف٭ ˝ ♞䘶ئ٭ف٭ ˝ ؤ٤طػ ˝ ؤ٤طػ؛٭آتعٝ٭ب٘٤
Slide 40
Slide 40 text
ئ٭ف٭סٚؕنئؕؠٜ - ܭը - ௐୡ - ಋೖ - ߏங - ӡ༻ɾอक - ഇغ
Slide 41
Slide 41 text
擻杼ئ٭ف٭ ˝ 榫鵍מ⺬ג刎鬁םـ٭غؘؗؓ啶䡗 ˝ ـ٭غؘؗؓס䓪耆نٜמ孨榫ך׀ ˝ ٍعٜؾشؠ꣘չױךؤ٤عٞ٭ٜך׀
Slide 42
Slide 42 text
擻杼ئ٭ف٭ס鐐갭 ˝ ףׂتآ٭ٜך׀םַ ˝ 鐧鷼յ㵵⪌מ侇ꝴ氳յ☔氳ؤتعֿ־־ ˝ ـ٭غؘؗؓٛخ٭تס⛷Ⱍֿ⭳יױַⲖ曍䓪ֿ䖾ַ 1
Slide 43
Slide 43 text
♞䘶ئ٭ف٭ Web ( ) - ΞϓϦέʔγϣϯ - ϛυϧΣΞ - OS - Ծαʔόʔ - ϋʔυΣΞ(ཧαʔόʔͳͲ) - ωοτϫʔΫ - ϑΝγϦςΟ 1
Slide 44
Slide 44 text
♞䘶䤗软 CPU Xen, KVM
Slide 45
Slide 45 text
♞䘶ئ٭ف٭סْٛشع / ( )
Slide 46
Slide 46 text
... /OS
Slide 47
Slide 47 text
ؤ٤طػ Docker !
Slide 48
Slide 48 text
ؤ٤طػכ♞䘶ئ٭ف٭כס鷿ַ OS OS OS CPU
Slide 49
Slide 49 text
ؤ٤طػ؛٭آتعٝ٭ب٘٤ Kubernetes, ECS
Slide 50
Slide 50 text
Kubernetes EKS, GKE, AKS Kubernetes ! Kubernetes
Slide 51
Slide 51 text
ًشع־㳃槹յאס⩝ ˝ 擻杼ئ٭ف٭ ˝ לדׄꝎׂ㱦㲊י牧⥸־ֿꄆ釐ն㛻⮉מْ٤طػ٤ت ˝ ♞䘶ئ٭ف٭ ˝ ֹױׂⳂ־םׄף⛼泡 ˝ ؤ٤طػ ˝ ⺬כי僿䏨ג敯䛜מםֹמ禴䧏٬⹜兠
Slide 52
Slide 52 text
泘域 - Web αʔϏεͷΠϯϑϥͱ - ΠϯϑϥͰҙ͍ࣝͯ͠Δ͜ͱ - αʔόʔઃܭ - αʔόʔߏங ! ΫϥυαʔϏεͷར༻ - αʔόʔӡ༻ - ·ͱΊ
Slide 53
Slide 53 text
ئ٭لتס䡗Ꝏמכםֹ鐐갭 /
Slide 54
Slide 54 text
ؓوٛآ٭ب٘٤ס邾ꥭ ˝ ٓؿٛبشؠؓ٭؞طؠزٔ ˝ 㚺催ס䏅ꮶֿ㛻׀ׂםյꝧ氦鵭䈱ֿ⛥┖ ˝ لٜغظوٞؕמ侇ꝴֿ־־յףׂٛٛ٭تך׀ם ַ
Slide 55
Slide 55 text
ُؕؠٞئ٭لتؓ٭؞طؠزٔס䫑榫 !
Slide 56
Slide 56 text
/ ˝ 鷞榫٬⟊㱤ס☔氳յ侇ꝴ氳ؤتعֿ㘃ֻ ˝ 敯䛜ס䤧䭂כ禴䧏ֿꦘׂם ˝ 㵚䑴ֿ鷐כج؞ٖٛطؔؕ٤بظ٤عמ氦㷣⺎耆䓪 냕ׂם
Slide 57
Slide 57 text
ؠٚؗغئ٭لتס⮵榫 Amazon Web Services Google Cloud
Slide 58
Slide 58 text
XaaS IaaS PaaS SaaS
Slide 59
Slide 59 text
鞊♳⪦僗ٓظٜ IaaS PaaS SaaS OS OS OS OS
Slide 60
Slide 60 text
/ ˝ ْٛشع ˝ ُؾ٭ةغئ٭لتמꝧ氦ؤتعյ鷞榫ؤتعס⯡峎 ˝ Ⳃ氳םٛخ٭ت澬⟊מ䦡䍖䓪ס⺸┕ ˝ 䏼ꄈ鐐ꄋמؤتع僃鸵 ˝ ┩槡╈מ㰆㏇ظ٭ذج٤ذ٭⮵榫׆כך愤㲹㵚瓀ֿ⺎耆 ˝ ظْٛشع ˝ بتطّסؤ٤عٞ٭ٜتذُؕثס⯆ ˝ ئ٭لتס犉哕氳ם孨榫מبتطّ⪒⛮ס邾ꥭ ˝ ي٤ر٭ٞشؠؕ٤
Slide 61
Slide 61 text
泘域 - Web αʔϏεͷΠϯϑϥͱ - ΠϯϑϥͰҙ͍ࣝͯ͠Δ͜ͱ - αʔόʔઃܭ - αʔόʔߏங - ΫϥυαʔϏεͷར༻ ! αʔόʔӡ༻ - ·ͱΊ
Slide 62
Slide 62 text
ئ٭ف٭鷞榫 ˝ ظ٭ذס畘杼 ˝ 泃釱 ˝ ꤃㲹㵚䑴
Slide 63
Slide 63 text
ظ٭ذס畘杼 ˝ ظ٭ذס㱦⪒䓪յ⺎榫䓪䥵⟊׆כֿ泘氳 ˝ ظ٭ذס䮇㜊بتطّ꤃㲹מ⤓ֻ ˝ 嫎氳紶ⳉؤ٤وٚؕؓ٤ت㵚瓀ס㵚䑴䑒釐 ˝ 泘氳מ䑴י僃鸵ם䣆嫎鹟䥃 ˝ فشؠؓشوյؓ٭ؕهյٝوٛآ٭ب٘٤ e- J-SOX
Slide 64
Slide 64 text
فشؠؓشو ˝ 䳩⛼ِتبتطّ꤃㲹յٜؗؔت䚉刌םלס꤀מظ٭ذ䐝 仾ג״מ ˝ ظ٭ذ⪒⛮㚺催䄐⮆ظؔتؠط٭وםלյ擻杼氳מ樟ם 㕙䢥מ㲊僿氳מ⟊㰆 ˝ 䐝仾وٞجت乃傴י㲊僿氳מ澬鏀׆כֿꄆ釐
Slide 65
Slide 65 text
ؓ٭ؕه ˝ ꄆ釐䗯㕔Ꝏ僿ꝴמגזי⟊㰆٬孨榫 ˝ Ꝏ僿⟊㰆ֿ䑒釐םظ٭ذط٭وظؔتؠյْظؔؓ鋗ꎰ י⟊畘յ泃削䗯㕔ꝧ炐םלյ䑒釐םכ׀מꞦ鈋⺎耆מ ˝ ⟊㰆僿ꝴס畘杼յ䷉؆寕⸻סꡔ塛յꞦ鈋ٞءס畘杼םלס 㱦⪒䓪姲״
Slide 66
Slide 66 text
ٝوٛآ٭ب٘٤ ˝ ؾشع٠٭ؠ鵟יٜٛؓذّؕמظ٭ذ邾邮 ˝ 䐝仾⛼哅ס䑒釐ֿםׂյ⮉僀ֻ׆כך泘氳鷼䡗ך׀ ˝ فشؠؓشوכ⛍יַֿظ٭ذס䷉؆滭䮇סⲖ冽עם ַ׆כמ嫰䙫
Slide 67
Slide 67 text
泃釱 /
Slide 68
Slide 68 text
/ CPU
Slide 69
Slide 69 text
ؓوٛآ٭ب٘٤泃釱 ˝ ꞊䑏ׇכ ˝ قنؚ٭ُ٤تעⶇ⮆־յ꤃㲹⸉㍔ע⛰־յ塜ׂ嚀耆י ַ־ ˝ 泃釱䧗嘅 ˝ ⭚杼侇ꝴյٞءյىٜتزؘؠؙ٤غَؕ٤عםל
Slide 70
Slide 70 text
ئ٭لت泃釱 ˝ ꞊䑏ׇכ ˝ ئ٭لت䬠❠ך׀יַ־յ䒍鸵מ✳ֻיַ־ ˝ 泃釱䧗嘅 ˝ ٝتَ٤تؤ٭غյٝؕط٤بםל
Slide 71
Slide 71 text
ج؞ٖٛطؔ泃釱 ˝ ꞊䑏ׇכ ˝ ┘塜מ⮵榫יַםַ־յ耗䍏םبتطّךעםַ־ ˝ 泃釱䧗嘅 ˝ 泃削ٞءյِغؘٜؗؓ٬ٚؕهٚٛס耗䍏䓪䗯㕔םל
Slide 72
Slide 72 text
لةؾت泃釱 ˝ ꞊䑏ׇכ ˝ ئ٭لتע䡗Ꝏיַ־յ⮵沟ע⭳יַ־ ˝ 泃釱䧗嘅 ˝ ئ٭لت⮵榫縖丗ס㘃峎յؤتعםל
Slide 73
Slide 73 text
ꝧ氦قنؚ٭ُ٤ت泃釱 ˝ ꞊䑏ׇכ ˝ ꝧ氦յظوַٞؕ梪㗞禴䧏ך׀יַ־ ˝ 泃釱䧗嘅 ˝ ٛٛ٭ت값䈱յلٜغ٬ظوٞؕסٛ٭غذّؕםל
Slide 74
Slide 74 text
꤃㲹㵚䑴 &&
Slide 75
Slide 75 text
泘域 - Web αʔϏεͷΠϯϑϥͱ - ΠϯϑϥͰҙ͍ࣝͯ͠Δ͜ͱ - αʔόʔઃܭ - αʔόʔߏங - ΫϥυαʔϏεͷར༻ - αʔόʔӡ༻ ! ·ͱΊ
Slide 76
Slide 76 text
ױכ״ Web