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 