0

AWS建議將數據&操作系統保存在separate EBS volumes上。我有一臺運行在EBS捲上的Web服務器。在裸VM上,我安裝以下內容:AWS:分割不同卷中的軟件和數據

- webserver, wsgi, pip & related software/config (some in /etc some in /home/<user>) 
- server code & static assets in /var/www/ 
- log files are written to /var/log/<respective-folder> 
- maintenance scripts in /home/<user>/ 

數據庫服務器是分開的。對於網絡服務器,上述哪些項目可以從更高的IOPS中受益,哪些不重要?我的理解是,應將服務器代碼&的日誌文件移動到具有更高IOPS的單獨EBS卷。或者我應該將所有的東西(除了我安裝在/ etc中的軟件(例如web服務器))移動到具有更好IOPS的單獨捲上?

+0

IOPS是一個問題嗎?如果不堅持一個音量。 – datasage

+0

@datasage IOPS現在不是問題,但在早期階段進行分區並不會有任何顯着的成本。 – user4150760

回答

1

如果您需要將它移動到另一臺服務器,我建議您爲代碼,日誌和維護提供單獨的EBS卷。這樣可以讓您的TTR更快(解析時間),而不必構建整個服務器。這個代碼不應該在過去的部署過程中發生很大的變化,所以我在這裏將重點放在一個通用的固態盤上,並且考慮一個緩存層(Varnish(整頁緩存)& CDN(靜態資產))而不是磁盤I/O問題。 CDN是一種快速獲勝,可以緩解讀取靜態資產的大部分I/O。在50GB時,您可以獲得150 IOPS,並減少靜態資產; I/O應該沒問題。至於日誌,如果你是一個高流量網站,那麼你應該在這裏專注於I/O,因爲你不想在這裏阻止I/O。這主要關注訪問日誌而不是錯誤日誌,因爲在生產系統上不應該超過錯誤級別。如果你的流量不是很高,那麼對於通用型固態硬盤(10GB)你應該沒問題,你可以得到30個IOPS,這通常就足夠了。

你的維護腳本在做什麼?如果他們正在生成和輸出文件,那麼您可以使用SSD,但是如果您需要高I/O,則應該重新訪問代碼並優化代碼,因爲這些磁盤可能會變得昂貴,而且這種成本通常會造成間歇運行的維護浪費。

至於你的網絡服務器等,它應該基於基礎設施作爲代碼,通過OpsWorks或Puppet,並且不需要太多的I/O,因爲這些通常是基於內存的進程建立和部署。

+0

您的答案量化是一個很大的幫助。維護腳本產生不重要的流量,只是一些更新和完整性檢查。 – user4150760