AWS配置規(guī)則是AWS配置系統(tǒng)的一個附件,它是不斷發(fā)展的亞馬遜開發(fā)運營工具集中的一個組成部分。當(dāng)它在re:Invent 2015會議上被首次推出時,AWS的副總裁Andy Jassy指出,與會者對于一個檢查AWS標(biāo)簽的系統(tǒng)會感到非常興奮。但是,這是與開發(fā)運營相關(guān):實現(xiàn)瑣碎工作自動化往往就是造成成功與失敗的差異。
當(dāng)首次推出時,AWS配置規(guī)則的制定主要是從實現(xiàn)安全限制自動化的角度出發(fā),以防止意外對資源的意外和不必要的訪問。這正是使用AWS配置規(guī)則的一個很好的理由,但是一個更為重要的原因可能是為了通過實現(xiàn)AWS標(biāo)簽創(chuàng)建的自動化以節(jié)省成本。
很多開發(fā)公司每天都會創(chuàng)建大量的亞馬遜Web服務(wù)(AWS)資源,例如彈性計算云實例、資源卷、負載平衡器以及虛擬專用網(wǎng)等。如果一家企業(yè)在云中遺忘留下了數(shù)十個運行的服務(wù),那么其費用(即便是非常廉價的資源)累加起來亦是相當(dāng)可觀的。因此,記得在每天結(jié)束時終止或釋放所有不需要的資源是非常重要的。
目前,還沒有一套規(guī)則來命名或標(biāo)記這些資源,所以事后區(qū)別一個被遺忘的測試實例和一個很少見到負載的VPN服務(wù)器是非常困難的。我們可以通過要求所有資源的所有者通過AWS標(biāo)簽來解決僵尸資源問題。
AWS配置規(guī)則實施到位
為了了解規(guī)則,你首先必須對AWS配置服務(wù)本身應(yīng)有一定的了解。AWS配置主要完成四項任務(wù):將變更記錄至資源、實現(xiàn)眾多資源描述的標(biāo)準(zhǔn)化、存儲結(jié)果以及把結(jié)果發(fā)送至亞馬遜簡單存儲服務(wù)以供之后分析使用。它還會發(fā)送消息至亞馬遜簡單通知服務(wù)(SNS),從而讓你能夠接收到配置變更通知的近實時數(shù)據(jù)。
AWS配置規(guī)則是一個堅定SNS的系統(tǒng),它會針對每一個消息運行AWS Lambda函數(shù)。每一個消息都包含著一個配置項,這是一個在某個時間點上對資源狀態(tài)的說明。這個說明涵蓋了元數(shù)據(jù)、常用屬性、與其他資源的關(guān)系、當(dāng)前配置(作為一個描述API被返回)以及一個CloudTrail事件標(biāo)識符。
AWS配置界面提供了一個時間軸視圖,它可顯示配置變化,例如某一給定自由的配置項。配置字段顯示具體有哪些變更;一個CloudTrail事件的鏈接可為你提供用戶ID和發(fā)生變更的位置。
AWS提供了一組預(yù)定義規(guī)則,并建立了一個合作伙伴系統(tǒng)。開發(fā)人員可以使用由其他AWS合作伙伴定義的規(guī)則或者他們也可以編寫自定義規(guī)則。這些規(guī)則就是Lambda函數(shù)。
這是另一個探索AWS配置規(guī)則的理由,即這是開始使用Lambda的一個簡單入門方法。如果你選擇使用自定義規(guī)則,那么你會用到一個待填空的Lambda模板。你可以在此基礎(chǔ)之上開始編寫和修改簡單的Lambda函數(shù)。
在配置規(guī)則中,開發(fā)人員能夠做的并不僅僅只是對不符合規(guī)定進行報告。因為當(dāng)資源不符合時AWS提供的規(guī)則會通知你,它們不會阻止違規(guī)行為。Lambda函數(shù)可以完成(大部分)的工作;開發(fā)人員可以編寫自己的函數(shù)以阻止違規(guī)。例如,如果有人創(chuàng)建了一個沒有使用強制性AWS標(biāo)記的實例,那么系統(tǒng)就會終止這個實例。