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