webconf2013-非典型貧窮網站維運經驗分享

157
在家也能架出網站- 典型精實貧窮 網站維運經驗 分享 慕凡(@ryudoawaru)WebConf2013 2013/01/13 1 1 13113星期

Upload: mu-fan-teng

Post on 19-May-2015

10.050 views

Category:

Technology


9 download

DESCRIPTION

http://www.webconf.tw/program.html

TRANSCRIPT

Page 1: Webconf2013-非典型貧窮網站維運經驗分享

在家也能架出⼤大網站-⾮非典型精實貧窮網站維運經驗

分享

慕凡(@ryudoawaru)於WebConf20132013/01/13

1

113年1月13⽇日星期⽇日

Page 2: Webconf2013-非典型貧窮網站維運經驗分享

About Me

2

213年1月13⽇日星期⽇日

Page 3: Webconf2013-非典型貧窮網站維運經驗分享

慕凡(ryudo)

@ryudoawaru

3

313年1月13⽇日星期⽇日

Page 4: Webconf2013-非典型貧窮網站維運經驗分享

遊戲業10年

4

413年1月13⽇日星期⽇日

Page 5: Webconf2013-非典型貧窮網站維運經驗分享

1996

http://goo.gl/m2Xga 5

513年1月13⽇日星期⽇日

Page 6: Webconf2013-非典型貧窮網站維運經驗分享

2006

http://hbo.x-legend.com.tw

6

613年1月13⽇日星期⽇日

Page 7: Webconf2013-非典型貧窮網站維運經驗分享

roles• Game System Designer

• Executive Producer

• Release Manager

• DB Tool Programmer

7

713年1月13⽇日星期⽇日

Page 8: Webconf2013-非典型貧窮網站維運經驗分享

2007轉職

8

813年1月13⽇日星期⽇日

Page 9: Webconf2013-非典型貧窮網站維運經驗分享

網站創業者

9

913年1月13⽇日星期⽇日

Page 10: Webconf2013-非典型貧窮網站維運經驗分享

Tomlan軟體⼯工作室• http://www.tomlan.tw

• Founded on 2007.03

• 專⻑⾧長為以論壇(Discuz!)為主體的社群系統

10

1013年1月13⽇日星期⽇日

Page 11: Webconf2013-非典型貧窮網站維運經驗分享

旗下網站

11

1113年1月13⽇日星期⽇日

Page 12: Webconf2013-非典型貧窮網站維運經驗分享

http://www.freebbs.tw12

1213年1月13⽇日星期⽇日

Page 13: Webconf2013-非典型貧窮網站維運經驗分享

http://www.gameclub.tw13

1313年1月13⽇日星期⽇日

Page 14: Webconf2013-非典型貧窮網站維運經驗分享

freebbs.com.tw和我們無關

14

1413年1月13⽇日星期⽇日

Page 15: Webconf2013-非典型貧窮網站維運經驗分享

6 years

15

1513年1月13⽇日星期⽇日

Page 16: Webconf2013-非典型貧窮網站維運經驗分享

Organize

with

16

1613年1月13⽇日星期⽇日

Page 17: Webconf2013-非典型貧窮網站維運經驗分享

順帶⼀一提

17

1713年1月13⽇日星期⽇日

Page 18: Webconf2013-非典型貧窮網站維運經驗分享

謙虛的⼈人也可以學Rails

18

1813年1月13⽇日星期⽇日

Page 19: Webconf2013-非典型貧窮網站維運經驗分享

Agendas• 為何要在家架網站• 在家架網站的細節• 頻寬• 硬體• 軟體• 其它好⽤用的服務

19

1913年1月13⽇日星期⽇日

Page 20: Webconf2013-非典型貧窮網站維運經驗分享

Why Self-Hosting?

20

2013年1月13⽇日星期⽇日

Page 21: Webconf2013-非典型貧窮網站維運經驗分享

成本控制

21

2113年1月13⽇日星期⽇日

Page 22: Webconf2013-非典型貧窮網站維運經驗分享

雲端 V.S. 在家架站成本⽐比較

22

2213年1月13⽇日星期⽇日

Page 23: Webconf2013-非典型貧窮網站維運經驗分享

⺫⽬目標網站• 網站類型:論壇社群• 訪客:Unique Visitor 40,000+/day

• 月流量:• 主站:800GB

• 圖庫:1.4TB

23

2313年1月13⽇日星期⽇日

Page 24: Webconf2013-非典型貧窮網站維運經驗分享

如果在AWS(JP)• 1 EC2 Large Instance

• 月流量約800GB

• 1 S3 Storage

• 月流量約1.4TB

• 1 RDS(Large) for MySQL

24

2413年1月13⽇日星期⽇日

Page 25: Webconf2013-非典型貧窮網站維運經驗分享

28,000NTD/月

25

2513年1月13⽇日星期⽇日

Page 26: Webconf2013-非典型貧窮網站維運經驗分享

轉職游⺠民確定

26

2613年1月13⽇日星期⽇日

Page 27: Webconf2013-非典型貧窮網站維運經驗分享

同樣的條件⾃自⼰己架站

27

2713年1月13⽇日星期⽇日

Page 28: Webconf2013-非典型貧窮網站維運經驗分享

價格 折舊期間/月 ⼀一年費⽤用伺服器42U機櫃HUBIPKVM2U機架UPS網路費 20M/月電費/月⼩小計

NT$27,000 36 NT$9,000NT$12,000 60 NT$2,400NT$5,500 36 NT$1,833

NT$23,000 36 NT$7,667NT$23,000 36 NT$7,667NT$2,000n/a NT$24,000NT$300n/a NT$3,600

NT$56,167

⼀一個月不到5,000

28

2813年1月13⽇日星期⽇日

Page 29: Webconf2013-非典型貧窮網站維運經驗分享

成本結構1.經常性開銷

1.網路費2.電費3.房租(如果有)

2.⼀一次性費⽤用1.硬體設備

29

2913年1月13⽇日星期⽇日

Page 30: Webconf2013-非典型貧窮網站維運經驗分享

頻寬費⽤用

30

3013年1月13⽇日星期⽇日

Page 31: Webconf2013-非典型貧窮網站維運經驗分享

便宜的頻寬就像折凳的奧妙之處⼀一樣

31

3113年1月13⽇日星期⽇日

Page 32: Webconf2013-非典型貧窮網站維運經驗分享

光世代固定制• 20M上傳(含)以下幾乎所有⼈人都可以裝

• 40M以上需要有FTTH(光化箱)到府

http://fttb.hinet.net/3ip/fttx_rates.html32

3213年1月13⽇日星期⽇日

Page 33: Webconf2013-非典型貧窮網站維運經驗分享

硬體•必要的•伺服器•HUB•UPS

•不⼀一定要的• IP-KVM•機櫃•遠端電源管理•NAS

33

3313年1月13⽇日星期⽇日

Page 34: Webconf2013-非典型貧窮網站維運經驗分享

Server

34

3413年1月13⽇日星期⽇日

Page 35: Webconf2013-非典型貧窮網站維運經驗分享

安靜 V.S.效能

35

3513年1月13⽇日星期⽇日

Page 36: Webconf2013-非典型貧窮網站維運經驗分享

Home Server要點• 省空間• 安靜/低溫• 放在家不能太吵或太熱• 不要外接顯卡

• 平均的效能• 主流4核⼼心以上CPU

• ⾼高速I/O

36

3613年1月13⽇日星期⽇日

Page 37: Webconf2013-非典型貧窮網站維運經驗分享

候選清單• XPC

• Mac Mini

• ⼩小型塔式品牌Server

• ⾃自組

37

3713年1月13⽇日星期⽇日

Page 38: Webconf2013-非典型貧窮網站維運經驗分享

不考慮機架Server(因為太吵)

38

3813年1月13⽇日星期⽇日

Page 39: Webconf2013-非典型貧窮網站維運經驗分享

XPC

39

3913年1月13⽇日星期⽇日

Page 40: Webconf2013-非典型貧窮網站維運經驗分享

XPC-成本• 準系統:內含主機板/電源/機殼

• 需要購買:• CPU

• RAM

• 硬碟

40

4013年1月13⽇日星期⽇日

Page 41: Webconf2013-非典型貧窮網站維運經驗分享

XPC-優點• ⾮非常耐⽤用(個⼈人經驗)• 擴充性/效能與成本的平衡選擇

• 意外安靜的POWER與熱導管系統

• 最⼩小Size可以插四條RAM的選擇

• 幾乎所有機型都有內顯

41

4113年1月13⽇日星期⽇日

Page 42: Webconf2013-非典型貧窮網站維運經驗分享

XPC-缺點• BIOS寫的不太好

• 維修服務品質低落

42

4213年1月13⽇日星期⽇日

Page 43: Webconf2013-非典型貧窮網站維運經驗分享

Mac Mini

43

4313年1月13⽇日星期⽇日

Page 44: Webconf2013-非典型貧窮網站維運經驗分享

Mac Mini-優點• 最⼩小體積• Apple品質保證

• 終極的靜⾳音

44

4413年1月13⽇日星期⽇日

Page 45: Webconf2013-非典型貧窮網站維運經驗分享

Mac Mini-缺點• 低(⾼高貴)擴充性,RAM只有兩條

• 總體持有成本⽐比XPC貴約5~7,000

• 改裝SSD需⼿手⼯工或找店家

• CPU頻率較低(2.3 v.s. 3.4)

• 改裝Linux系OS需調整(http://goo.gl/cEDw2)

45

4513年1月13⽇日星期⽇日

Page 46: Webconf2013-非典型貧窮網站維運經驗分享

⼩小型塔式品牌Server

46

4613年1月13⽇日星期⽇日

Page 47: Webconf2013-非典型貧窮網站維運經驗分享

Mini Tower Server-優點• Micro-ATX機殼(約2台XPC)

• 伺服器規格,穩定性可期待

• 考量靜⾳音與持續運作的散熱之設計• 內建雙網卡/硬碟熱抽換模組/獨⽴立顯⽰示

• 價格平⺠民化,可插⼀一般RAM

47

4713年1月13⽇日星期⽇日

Page 48: Webconf2013-非典型貧窮網站維運經驗分享

Mini Tower Server-缺點• 相對佔空間• 零組件相容性問題

48

4813年1月13⽇日星期⽇日

Page 49: Webconf2013-非典型貧窮網站維運經驗分享

DIY主機

49

4913年1月13⽇日星期⽇日

Page 50: Webconf2013-非典型貧窮網站維運經驗分享

DIY-優點• 對成本完全控制• 100%的⾃自訂性

• 享受(?)HomeBrew的快感

• 便宜組件的穩定性也不賴

50

5013年1月13⽇日星期⽇日

Page 51: Webconf2013-非典型貧窮網站維運經驗分享

DIY-缺點• 組合複雜• 相容性問題不少• 散熱與降噪不易處理• 要⾃自⼰己抓問題

51

5113年1月13⽇日星期⽇日

Page 52: Webconf2013-非典型貧窮網站維運經驗分享

⽐比較表XPC

Macmini

直⽴立Server

$ 便宜 最貴 有點貴靜⾳音 安靜 超安靜 普通散熱 普通 普通 最好佔空間 ⼩小 最⼩小 ⼤大效能 ⾼高 最低 ⾼高擴充性 中 無 ⾼高穩定性 OK OK 最⾼高

52

5213年1月13⽇日星期⽇日

Page 53: Webconf2013-非典型貧窮網站維運經驗分享

其它硬體注意事項

53

5313年1月13⽇日星期⽇日

Page 54: Webconf2013-非典型貧窮網站維運經驗分享

絕對不要裝家⽤用級硬碟在你的Server上

(備份碟除外)

54

5413年1月13⽇日星期⽇日

Page 55: Webconf2013-非典型貧窮網站維運經驗分享

企業級硬碟• WD:暴⻯⿓龍/RE系列

• Seagate:ConstellationCS/ES

• Hitachi/Toshiba:就叫企業級

• 所有SAS硬碟

55

5513年1月13⽇日星期⽇日

Page 56: Webconf2013-非典型貧窮網站維運經驗分享

便宜安全⾼高效⽅方案:拆機SAS硬碟+低價

SAS Raid卡

56

5613年1月13⽇日星期⽇日

Page 57: Webconf2013-非典型貧窮網站維運經驗分享

永遠不要⽤用主機板上的fakeRaid

57

5713年1月13⽇日星期⽇日

Page 58: Webconf2013-非典型貧窮網站維運經驗分享

其它硬體

58

5813年1月13⽇日星期⽇日

Page 59: Webconf2013-非典型貧窮網站維運經驗分享

IP-KVM

59

5913年1月13⽇日星期⽇日

Page 60: Webconf2013-非典型貧窮網站維運經驗分享

IP-POWER

60

6013年1月13⽇日星期⽇日

Page 61: Webconf2013-非典型貧窮網站維運經驗分享

機櫃

61

6113年1月13⽇日星期⽇日

Page 62: Webconf2013-非典型貧窮網站維運經驗分享

NAS

62

6213年1月13⽇日星期⽇日

Page 63: Webconf2013-非典型貧窮網站維運經驗分享

SOFTWARE

63

6313年1月13⽇日星期⽇日

Page 64: Webconf2013-非典型貧窮網站維運經驗分享

沒有要講的• 程式語⾔言• Framework

• OS / Distribution 的選擇

64

6413年1月13⽇日星期⽇日

Page 65: Webconf2013-非典型貧窮網站維運經驗分享

要講的• Web Server

• DB(RDBMS)

• 檔案系統與備份策略• 網路攻擊的應對

65

6513年1月13⽇日星期⽇日

Page 66: Webconf2013-非典型貧窮網站維運經驗分享

WEB Server

66

6613年1月13⽇日星期⽇日

Page 67: Webconf2013-非典型貧窮網站維運經驗分享

個⼈人經驗• 3年Apache(2.2 Worker MPM)

• Rails⽤用Mongrel + mod_proxy(前期) / Passenger

• 2年Nginx

• PHP 5.3 FPM + FastCGI

• Rails⽤用Passenger/Thin

67

6713年1月13⽇日星期⽇日

Page 68: Webconf2013-非典型貧窮網站維運經驗分享

APACHE

68

6813年1月13⽇日星期⽇日

Page 69: Webconf2013-非典型貧窮網站維運經驗分享

易上⼿手(套件管理增加功能便利)

69

6913年1月13⽇日星期⽇日

Page 70: Webconf2013-非典型貧窮網站維運經驗分享

模組多(裝模組不⽤用重編全部)

70

7013年1月13⽇日星期⽇日

Page 71: Webconf2013-非典型貧窮網站維運經驗分享

⼤大家都愛.htaccess(修改不⽤用重開)

71

7113年1月13⽇日星期⽇日

Page 72: Webconf2013-非典型貧窮網站維運經驗分享

功能包⼭山包海(幾乎不⽤用開別的Daemon)

72

7213年1月13⽇日星期⽇日

Page 73: Webconf2013-非典型貧窮網站維運經驗分享

靜態檔案效能低落(和Nginx⽐比)

73

7313年1月13⽇日星期⽇日

Page 74: Webconf2013-非典型貧窮網站維運經驗分享

Proxy效能低落(和Nginx⽐比)

74

7413年1月13⽇日星期⽇日

Page 75: Webconf2013-非典型貧窮網站維運經驗分享

重啟時間⻑⾧長(連線數很多時)

75

7513年1月13⽇日星期⽇日

Page 76: Webconf2013-非典型貧窮網站維運經驗分享

重點:⼀一定不要⽤用Prefork

76

7613年1月13⽇日星期⽇日

Page 77: Webconf2013-非典型貧窮網站維運經驗分享

Nginx

77

7713年1月13⽇日星期⽇日

Page 78: Webconf2013-非典型貧窮網站維運經驗分享

靜態檔案速度爆快

78

7813年1月13⽇日星期⽇日

Page 79: Webconf2013-非典型貧窮網站維運經驗分享

需要調整的選項不多(和Apache⽐比)

79

7913年1月13⽇日星期⽇日

Page 80: Webconf2013-非典型貧窮網站維運經驗分享

添加功能需要重編譯

80

8013年1月13⽇日星期⽇日

Page 81: Webconf2013-非典型貧窮網站維運經驗分享

例:增加Passenger

#!/bin/bashcd $PASSENGER_ROOTrake nginxmake clean./configure --prefix='/usr/local/nginx' --with-http_ssl_module --add-module='$PASSENGER_ROOT/ext/nginx'

81

8113年1月13⽇日星期⽇日

Page 82: Webconf2013-非典型貧窮網站維運經驗分享

改設定需要重開或reload

82

8213年1月13⽇日星期⽇日

Page 83: Webconf2013-非典型貧窮網站維運經驗分享

php需要另外設定apache或fpm

(framework需特定rewrite rule)

83

8313年1月13⽇日星期⽇日

Page 84: Webconf2013-非典型貧窮網站維運經驗分享

RewriteRule和Apache不太⼀一樣(不難學習)

84

8413年1月13⽇日星期⽇日

Page 85: Webconf2013-非典型貧窮網站維運經驗分享

⼀一些⼩小技巧

85

8513年1月13⽇日星期⽇日

Page 86: Webconf2013-非典型貧窮網站維運經驗分享

將靜態檔案拆到不同VirtualHost

(針對單⾴頁⾼高request數)

86

8613年1月13⽇日星期⽇日

Page 87: Webconf2013-非典型貧窮網站維運經驗分享

⽤用X-Sendfile或SecureLink做權限控管

(避免無謂消耗後端程式資源)

87

8713年1月13⽇日星期⽇日

Page 89: Webconf2013-非典型貧窮網站維運經驗分享

URL加料做驗證/uri-prefix/$token/$timestamp-in-hex/rel-path

md5(密鑰+時間撮記+檔名+IP)

/downloads/dee0ed6174a894113d5e8f6c98f0e92b/43eaf9c5/file_to_protect.txt

$token為預先設定的AuthTokenSecret加上檔名與時間撮記後md5加密⽽而成, 具有時效性

89

8913年1月13⽇日星期⽇日

Page 90: Webconf2013-非典型貧窮網站維運經驗分享

案例-線上影視串流服務• 配合H.264模組, 無需外部Media Server

• 無需⽤用後端程式輸出• User在看到連結後該連結極短時間內即失效, 故user無法下載檔案.

90

9013年1月13⽇日星期⽇日

Page 91: Webconf2013-非典型貧窮網站維運經驗分享

SQL-RDBMS• MySQL

• PostgreSQL

91

9113年1月13⽇日星期⽇日

Page 92: Webconf2013-非典型貧窮網站維運經驗分享

MySQL

92

9213年1月13⽇日星期⽇日

Page 93: Webconf2013-非典型貧窮網站維運經驗分享

⼀一般Storage Engine• MyISAM

• Innodb

93

9313年1月13⽇日星期⽇日

Page 94: Webconf2013-非典型貧窮網站維運經驗分享

MyISAM的問題• 資料稍⼤大時效能低落• 沒有ACID(Transaction)

• 常常需要Repair table(data may lose)

• 備份時會卡住全DB

94

9413年1月13⽇日星期⽇日

Page 95: Webconf2013-非典型貧窮網站維運經驗分享

MyISAM的便利性• DB較⼩小時效能⾼高

• ⺫⽬目錄即DB,可攜性⾼高

• 需要調整的選項較少

95

9513年1月13⽇日星期⽇日

Page 96: Webconf2013-非典型貧窮網站維運經驗分享

InnoDB

96

9613年1月13⽇日星期⽇日

Page 97: Webconf2013-非典型貧窮網站維運經驗分享

參數調整很重要

97

9713年1月13⽇日星期⽇日

Page 98: Webconf2013-非典型貧窮網站維運經驗分享

Always setinnodb_buffer_pool_size >= DB size

(RAM is very cheap now)

98

9813年1月13⽇日星期⽇日

Page 99: Webconf2013-非典型貧窮網站維運經驗分享

PostgreSQL(別名:Oracle開源版)

99

9913年1月13⽇日星期⽇日

Page 100: Webconf2013-非典型貧窮網站維運經驗分享

Much Stabler

100

10013年1月13⽇日星期⽇日

Page 101: Webconf2013-非典型貧窮網站維運經驗分享

某線上遊戲(2006)• 使⽤用版本:7.2(10 years+ )

• 同時上線⼈人數:20k+

• 程式的杯具:射⼀一⽀支箭寫⼀一次DB

• 程式掛了,但DB還活著

101

10113年1月13⽇日星期⽇日

Page 102: Webconf2013-非典型貧窮網站維運經驗分享

友善的授權條款(MIT)

102

10213年1月13⽇日星期⽇日

Page 103: Webconf2013-非典型貧窮網站維運經驗分享

完整的現代化RDBMS功能(View/Trigger/Stored Procedure)

103

10313年1月13⽇日星期⽇日

Page 104: Webconf2013-非典型貧窮網站維運經驗分享

Transactional DDL(ALTER TABLE等可rollback,MySQL不可)

104

10413年1月13⽇日星期⽇日

Page 105: Webconf2013-非典型貧窮網站維運經驗分享

完整字串/加密function(base64/md5...etc)

105

10513年1月13⽇日星期⽇日

Page 106: Webconf2013-非典型貧窮網站維運經驗分享

內建完整全⽂文檢索功能(中⽂文斷詞可能)

106

10613年1月13⽇日星期⽇日

Page 107: Webconf2013-非典型貧窮網站維運經驗分享

Schema Namespace(適⽤用於Multi-Tenancy架構應⽤用)

107

10713年1月13⽇日星期⽇日

Page 108: Webconf2013-非典型貧窮網站維運經驗分享

知名使⽤用機構• NASA

• Instagram

• NTT

• Skype

• IMDB

108

10813年1月13⽇日星期⽇日

Page 109: Webconf2013-非典型貧窮網站維運經驗分享

與MySQL⽐比較(http://goo.gl/uWgil)

109

10913年1月13⽇日星期⽇日

Page 110: Webconf2013-非典型貧窮網站維運經驗分享

File System(Linux)

110

11013年1月13⽇日星期⽇日

Page 111: Webconf2013-非典型貧窮網站維運經驗分享

EXT家族• 通⽤用性⼯工具⽀支援• 多數套件預設使⽤用• 平衡的效能• 可容納檔案數⼩小於xfs

111

11113年1月13⽇日星期⽇日

Page 112: Webconf2013-非典型貧窮網站維運經驗分享

XFS• ⾃自成⼀一體的⼯工具體系• ⾼高檔案承載數• 需花時間學習⼯工具⽤用法• 中⽂文資源較少

112

11213年1月13⽇日星期⽇日

Page 113: Webconf2013-非典型貧窮網站維運經驗分享

LVM

113

11313年1月13⽇日星期⽇日

Page 114: Webconf2013-非典型貧窮網站維運經驗分享

What is LVM?(from⿃鳥哥)

LVM 的全名是 Logical Volume Manager,中⽂文可以翻譯作邏輯捲軸管理員。之所以稱為『捲軸』可能是因為可以將 filesystem 像捲軸⼀一樣伸⻑⾧長或縮短之故吧!LVM 的作法是將幾個實體的 partitions (或 disk) 透過軟體組合成為⼀一塊看起來是獨⽴立的⼤大磁碟 (VG) ,然後將這塊⼤大磁碟再經過分割成為可使⽤用分割槽 (LV), 最終就

能夠掛載使⽤用了。

114

11413年1月13⽇日星期⽇日

Page 115: Webconf2013-非典型貧窮網站維運經驗分享

Everyone should use LVM.

115

11513年1月13⽇日星期⽇日

Page 116: Webconf2013-非典型貧窮網站維運經驗分享

分享:Snapshot備份法(from: 我是ricky⼤大⼤大)

116

11613年1月13⽇日星期⽇日

Page 117: Webconf2013-非典型貧窮網站維運經驗分享

流程1.停⽌止所有服務2. make & mount LVM snapshot

3.啟動所有服務4.⽤用snapshot partition的資料進⾏行備份5. umount & delete snapshot partition

6.收⼯工

117

11713年1月13⽇日星期⽇日

Page 118: Webconf2013-非典型貧窮網站維運經驗分享

Example code#!/bin/bash####STOP  services#####################/etc/init.d/nginx  stop/etc/init.d/php-­‐fpm  stop/etc/init.d/mongod  stop/etc/init.d/mysqld  stop####Make  &  mount  snapshot  partition###/sbin/lvcreate  -­‐l  350  -­‐s  -­‐n  DATASNAP  /dev/VG1/DATA/bin/mount  /dev/VG1/DATASNAP  /mnt/DATASNAP####Start  services####################/etc/init.d/mongod  start/etc/init.d/mysqld  start/etc/init.d/php-­‐fpm  start/etc/init.d/nginx  start####Backup  Process####################.....####umount  &  remove  partition#########/bin/umount  /mnt/DATASNAP/sbin/lvremove  -­‐f  /dev/VG1/DATASNAP

118

11813年1月13⽇日星期⽇日

Page 119: Webconf2013-非典型貧窮網站維運經驗分享

優點• 可適⽤用所有組合• 停機時間⼩小於10秒

• 可獲得完整分割區備份

119

11913年1月13⽇日星期⽇日

Page 120: Webconf2013-非典型貧窮網站維運經驗分享

網路攻擊防範(別名:⼈人體防⽕火牆訓練養成中⼼心)

120

12013年1月13⽇日星期⽇日

Page 121: Webconf2013-非典型貧窮網站維運經驗分享

⾃自建主機最⼤大挑戰

121

12113年1月13⽇日星期⽇日

Page 122: Webconf2013-非典型貧窮網站維運經驗分享

攻擊者的⺫⽬目的• $$$$$

• 爽• 純研究• 攻擊和網站有關的特定對象

122

12213年1月13⽇日星期⽇日

Page 123: Webconf2013-非典型貧窮網站維運經驗分享

概念:資源對資源的戰爭

123

12313年1月13⽇日星期⽇日

Page 124: Webconf2013-非典型貧窮網站維運經驗分享

不會有真正有效的辦法除⾮非

124

12413年1月13⽇日星期⽇日

Page 125: Webconf2013-非典型貧窮網站維運經驗分享

唯⼀一可以確定的是

125

12513年1月13⽇日星期⽇日

Page 126: Webconf2013-非典型貧窮網站維運經驗分享

讓攻擊⼿手知道你不好惹, 要花很多成本攻擊

你, 知難⽽而退

126

12613年1月13⽇日星期⽇日

Page 127: Webconf2013-非典型貧窮網站維運經驗分享

攻擊⽅方式分類• 癱瘓服務• 針對程式弱點• 讓系統負載暴衝

• 塞爆頻寬• SYN_FLOOD

• DDOS

127

12713年1月13⽇日星期⽇日

Page 128: Webconf2013-非典型貧窮網站維運經驗分享

針對程式弱點的攻擊• 好發於:• Multi-Tenancy式系統(BSP/FSP...)

• 廣泛被⼤大眾使⽤用的系統• 具有歷史共業的系統

• 完全⾃自製系統通常不會有此問題• 通常只能⽤用改程式處理• 短期的防堵也是⼀一種⽅方法

128

12813年1月13⽇日星期⽇日

Page 129: Webconf2013-非典型貧窮網站維運經驗分享

塞爆頻寬的攻擊• 後備頻寬⾮非常重要• 問題在找出該封堵的IP

129

12913年1月13⽇日星期⽇日

Page 130: Webconf2013-非典型貧窮網站維運經驗分享

處理流程1.搜尋log檔2.建⽴立scan log流程3.執⾏行scan log流程,產⽣生問題IP清單4.將問題IP加到iptables的封堵清單5. restart iptables

6.將3-5變成⾃自動執⾏行

130

13013年1月13⽇日星期⽇日

Page 131: Webconf2013-非典型貧窮網站維運經驗分享

scan log⽅方式• ⽤用tail看log找出怪異之處

• 異常快速增⻑⾧長的request

• hostname異常的request

• 純ip request

• 無agent或奇怪agent的request

131

13113年1月13⽇日星期⽇日

Page 132: Webconf2013-非典型貧窮網站維運經驗分享

重導virtualhost(nginx)

   server{        server_name  _;        root  /var/www/html;        access_log  logs/DDOS-­‐access.log  main;        error_log  /dev/error.log;        return  400;    }

132

13213年1月13⽇日星期⽇日

Page 133: Webconf2013-非典型貧窮網站維運經驗分享

終極絕招-阻擋國家IPxt_geoip

133

13313年1月13⽇日星期⽇日

Page 134: Webconf2013-非典型貧窮網站維運經驗分享

xt_geoip• part of xtables-addons

• iptables addon

• need kernel 2.6+

• http://goo.gl/NoqRh

134

13413年1月13⽇日星期⽇日

Page 135: Webconf2013-非典型貧窮網站維運經驗分享

Why xt_geoip• 攻擊IP(⾁肉雞)幾乎全部來⾃自外國

• 中國佔90%

• 東歐國家• 中東國家

• 簡單⽽而粗暴(但是有效)的⽅方法

• ⼀一⾏行iptables設定封堵⼀一整國

135

13513年1月13⽇日星期⽇日

Page 136: Webconf2013-非典型貧窮網站維運經驗分享

好⽤用省錢的服務

136

13613年1月13⽇日星期⽇日

Page 137: Webconf2013-非典型貧窮網站維運經驗分享

KDDI CloudCore VPS

137

13713年1月13⽇日星期⽇日

Page 138: Webconf2013-非典型貧窮網站維運經驗分享

純iaas,無其它功能

138

13813年1月13⽇日星期⽇日

Page 139: Webconf2013-非典型貧窮網站維運經驗分享

難以置信的超低價

139

13913年1月13⽇日星期⽇日

Page 140: Webconf2013-非典型貧窮網站維運經驗分享

不⽤用流量計費, 單⼀一規格(擴充不可)

140

14013年1月13⽇日星期⽇日

Page 141: Webconf2013-非典型貧窮網站維運經驗分享

缺乏管理功能與圖表

141

14113年1月13⽇日星期⽇日

Page 142: Webconf2013-非典型貧窮網站維運經驗分享

令⼈人安⼼心的ping值(50出頭)

142

14213年1月13⽇日星期⽇日

Page 143: Webconf2013-非典型貧窮網站維運經驗分享

不保證Uptime(其實很可靠)

143

14313年1月13⽇日星期⽇日

Page 144: Webconf2013-非典型貧窮網站維運經驗分享

開發者⽀支援制度(淚)

144

14413年1月13⽇日星期⽇日

Page 145: Webconf2013-非典型貧窮網站維運經驗分享

imgur

145

14513年1月13⽇日星期⽇日

Page 146: Webconf2013-非典型貧窮網站維運經驗分享

imgur• 經實驗證明真正不限流量圖庫• 限制⽅方式為每⼩小時上傳量• 具後端上傳的API

• 商業使⽤用需付費(條款限制)

• 不可思議的低價

146

14613年1月13⽇日星期⽇日

Page 147: Webconf2013-非典型貧窮網站維運經驗分享

End(Any qustion?)

147

14713年1月13⽇日星期⽇日

Page 148: Webconf2013-非典型貧窮網站維運經驗分享

題外話

148

14813年1月13⽇日星期⽇日

Page 149: Webconf2013-非典型貧窮網站維運經驗分享

公會網正在尋求合作經營的夥伴

149

14913年1月13⽇日星期⽇日

Page 150: Webconf2013-非典型貧窮網站維運經驗分享

番外篇世⼈人對雲端的誤解

150

15013年1月13⽇日星期⽇日

Page 151: Webconf2013-非典型貧窮網站維運經驗分享

以下觀點可能會包含部份或全部的偏⾒見

(歡迎提出指正或疑問)

151

15113年1月13⽇日星期⽇日

Page 152: Webconf2013-非典型貧窮網站維運經驗分享

⼀一般對雲端的認知1.雲端⽐比較省錢2.雲端⽐比較省⼒力3.雲端⽐比較穩定

152

15213年1月13⽇日星期⽇日

Page 153: Webconf2013-非典型貧窮網站維運經驗分享

認知⼆二:雲端省⼒力論由於雲端(尤其是Paas類服務如Heroku/EngineYard)已經幫你設定好, 你所做的就是去開機器或是設定dyno數.

153

15313年1月13⽇日星期⽇日

Page 154: Webconf2013-非典型貧窮網站維運經驗分享

等價交換原則

154

15413年1月13⽇日星期⽇日

Page 155: Webconf2013-非典型貧窮網站維運經驗分享

等價交換原則• iaas服務:只是給你⼀一台灌好OS的虛擬機

• Paas服務:給你的越多, 限制的也越多

• 第三⽅方服務:⽤用的越多, 花的$$越多

• ⽣生態圈綁定問題

155

15513年1月13⽇日星期⽇日

Page 156: Webconf2013-非典型貧窮網站維運經驗分享

認知三:雲端穩定論雲端是別⼈人設定好的, 硬體不會壞掉所以⽐比較穩定.

156

15613年1月13⽇日星期⽇日

Page 157: Webconf2013-非典型貧窮網站維運經驗分享

關鍵因素:第三⽅方服務

157

15713年1月13⽇日星期⽇日