原標(biāo)題:亞馬遜云科技幫助Wiz適當(dāng)調(diào)整數(shù)據(jù)庫實例的大小
在Wiz,一切都與規(guī)模有關(guān)。Wiz平臺每天攝取數(shù)百億種云資源的元數(shù)據(jù)和遙測數(shù)據(jù)。Wiz的無代理掃描程序收集了大量數(shù)據(jù),Wiz需要非常高效地處理這些數(shù)據(jù)。隨著公司的發(fā)展,Wiz在如何有效維護(hù)和擴(kuò)大規(guī)模方面面臨重大挑戰(zhàn)。亞馬遜云科技使用Amazon ElastiCache和解決方案,提高了Wiz的業(yè)務(wù)效率,并且增加了Wiz為客戶創(chuàng)造的價值。
Wiz成立于2020年,亞馬遜云科技著手幫助安全團(tuán)隊降低其云風(fēng)險。在短時間內(nèi)取得了長足的進(jìn)步,打破了融資、估值和ARR記錄,成為了有史以來發(fā)展最快的軟件即服務(wù)(SaaS)公司,并達(dá)到了1億美元的ARR里程碑。
Wiz平臺向客戶展示了其云環(huán)境狀態(tài)的 視圖。這意味著,Wiz平臺上將盡快反映每項更改,無論是創(chuàng)建新的云資源、更改現(xiàn)有云資源還是刪除現(xiàn)有云資源。
挑戰(zhàn)
當(dāng)Wiz考慮同時運行的并發(fā)客戶、云提供商、賬戶、訂閱、工作負(fù)載和數(shù)千個并發(fā)掃描的數(shù)量時,就會出現(xiàn)挑戰(zhàn)。
Wiz平臺每天攝取數(shù)百億次云資源更新。以前,Wiz會在每次掃描后更新每項云資源的記錄,即使該資源自上次掃描以來未發(fā)生變化。Wiz之所以這樣做,是因為需要通過更新資源記錄中的上次查看和運行ID值,來記住需要在步驟5中從數(shù)據(jù)庫中刪除哪些資源。這給Wiz數(shù)據(jù)庫額外帶來了大量負(fù)載,
這就需要考慮通過一種更有效的方法來計算每次掃描后需要刪除哪些云資源,并減少對數(shù)據(jù)庫的寫入次數(shù)。
目標(biāo)
在過去的幾個月里,實施了一項變更來優(yōu)化攝取管道。主要目標(biāo)是通過避免在云資源保持不變時進(jìn)行更新,從而顯著減少數(shù)據(jù)庫寫入次數(shù)。這有助于實現(xiàn)以下目標(biāo):
消除來自數(shù)據(jù)庫的壓力,這將提高查詢性能并減少查詢延遲
減少PostgreSQL事務(wù)ID的使用量,并減小autovacuum頻率以避免事務(wù)ID回卷
減少CPU、讀取、寫入、吞吐量和IO的使用量
適當(dāng)調(diào)整數(shù)據(jù)庫實例類型的大小以優(yōu)化成本
Amazon ElastiCache前來相助
Amazon ElastiCache for Redis是一項完全托管的亞馬遜云科技服務(wù)。它是一種高度可擴(kuò)展、安全的內(nèi)存中緩存服務(wù),可支持需要亞毫秒級響應(yīng)時間的最苛刻的應(yīng)用程序。它還提供了內(nèi)置的安全性、備份與恢復(fù)以及跨區(qū)域復(fù)制功能。
Wiz決定利用Redis的內(nèi)置功能和對數(shù)據(jù)結(jié)構(gòu)的原生服務(wù)器端支持,來存儲和計算每次掃描程序運行后需要刪除的云資源。可以通過使用Set數(shù)據(jù)模型來實現(xiàn)此目標(biāo),該模型是 字符串的無序集合,可以在其中添加或刪除數(shù)據(jù),也可以將它與其他集合進(jìn)行比較。
當(dāng)掃描程序觀察一個云資源時,都會將其 標(biāo)識符添加(使用SADD命令)到當(dāng)前掃描運行集合中,以便每次掃描運行都會填充自己的集合密鑰,該密鑰最終將包含當(dāng)前掃描運行期間觀察到的所有云資源ID。
當(dāng)掃描程序完成并且該計算應(yīng)刪除哪些云資源時,(使用SDIFF命令)與上一個掃描運行集合進(jìn)行比較。此比較的輸出是一組需要從數(shù)據(jù)庫中刪除的云資源ID。通過使用ElastiCache對Set數(shù)據(jù)類型的原生支持,可以將整個比較過程從數(shù)據(jù)庫轉(zhuǎn)至ElastiCache引擎。
結(jié)果
在將整個更改部署到生產(chǎn)環(huán)境后,可以立即發(fā)現(xiàn)數(shù)據(jù)庫有所改進(jìn)。CPU和內(nèi)存使用量顯著降低,這使Wiz能夠適當(dāng)調(diào)整數(shù)據(jù)庫實例的大小。
現(xiàn)在,90%的云資源將被跳過,而根本不會寫入到數(shù)據(jù)庫中!
另外,在做出更改后,IO和成本也相應(yīng)地降低了,如以下Amazon Cost Explorer成本管理服務(wù)圖表中所示。
總結(jié)
通過在亞馬遜云科技Amazon Aurora PostgreSQL兼容版數(shù)據(jù)庫前添加ElastiCache,Wiz提高了整體應(yīng)用程序性能,減小了數(shù)據(jù)庫上的壓力,能夠適當(dāng)調(diào)整數(shù)據(jù)庫實例的大小,節(jié)省了TCO,同時擴(kuò)大了規(guī)模并處理了更多客戶負(fù)載。
在將最終結(jié)果存儲在Amazon Aurora PostgreSQL兼容版本數(shù)據(jù)庫之前,Wiz使用ElastiCache消除了大批數(shù)據(jù)庫更新。在此過程中,Wiz利用了每個數(shù)據(jù)庫引擎的長處。Redis是用于存儲高速數(shù)據(jù)的絕佳工具,而PostgreSQL更適合長期存儲和分析。
ElastiCache是Wiz的攝取管道中的關(guān)鍵組件。它使Wiz能夠顯著擴(kuò)展,從而能夠處理更多的掃描和云資源攝取。通過這樣做,Wiz設(shè)法提高了數(shù)據(jù)庫性能,減少了實例類型,并將總成本降低了30%(包括ElastiCache成本)。此外,Wiz使用ElastiCache預(yù)留節(jié)點進(jìn)一步降低了成本。
投稿郵箱:chuanbeiol@163.com 詳情請訪問川北在線:http://m.sanmuled.cn/