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