建置和部署用於 EBS 快照管理的節省成本的 Lambda 函數的逐步指南
歡迎來到 DevOps 的世界!今天,我們將深入研究一個令人興奮的成本優化項目,該項目解決 AWS 用戶面臨的常見挑戰——管理不必要的 EBS 快照。在這個專案中,我們將建立一個自動清理的 Python 程式:
這個實作專案不僅是降低 AWS 儲存成本的好方法,也是加強您對 AWS 資源利用率的理解的機會。在此過程中,我們將探索 boto3(適用於 Python 的 AWS 開發工具包),以與 AWS 資源互動並操作它們以滿足我們的需求。
讓我們開始這段自動化成本節約措施並增強您的 DevOps 技能的旅程!
在我們開始建立成本最佳化專案之前,讓我們確保您擁有必要的工具和知識。這是您需要的:
aws configure
此步驟將設定您的存取金鑰、區域和輸出格式,以實現與 AWS 服務的無縫通訊。
一旦您勾選了這些先決條件,您就可以準備繼續該專案了!
這個專案的原始碼可以在我的 GitHub 儲存庫中找到:
? GitHub 儲存庫:AWS 雲端成本最佳化
請依照下列步驟建立並設定您的 Lambda 函數:
建立 Lambda 函數:
新增程式碼:
aws configure
部署程式碼:
增加超時:
測試功能:
出現此錯誤是因為 Lambda 函數缺乏所需的權限,我們將在下一步中解決該問題。
為了讓Lambda函數能夠與EC2資源交互,我們需要為其服務角色新增特定權限。我們將遵循最小權限原則來確保函數僅具有其所需的權限,而不是授予完全存取權限。請依照以下步驟操作:
找到服務角色:
在 IAM 中開啟服務角色:
建立內嵌策略:
檢視並指派策略:
ebs 權限策略將如下所示:
新增此內嵌策略後,Lambda 函數將擁有有效描述和刪除快照、磁碟區和實例所需的所有權限。
權限到位後,我們下一步再次測試該功能!
權限到位後,是時候使用真實場景測試我們的 Lambda 函數了。請依照以下步驟查看該函數的執行情況:
1。第一個用例:清理已刪除實例的快照
建立 EC2 執行個體:
建立快照:
刪除實例:
快照準備就緒後,終止 test-ebs 實例。這留下了一個不存在的實例的快照,該快照現在是多餘的。
運行 Lambda 函數:
在 EC2 儀表板的快照部分驗證刪除。
2。第二個用例:清理已刪除磁碟區的快照
建立 EBS 磁碟區:
建立快照:
刪除磁碟區:
快照準備就緒後,刪除 ebs-volume。這會留下未附加到任何磁碟區的快照。
運行 Lambda 函數:
透過成功處理這兩種場景,Lambda 函數展示了其識別和清理冗餘 EBS 快照、節省成本並簡化資源管理的能力。
恭喜! ?您剛剛使用 Python 和 Lambda 在 AWS 上建立了成本最佳化解決方案。在這個專案中,我們探索如何識別和清理不再有用的冗餘 EBS 快照,幫助您節省雲端成本,同時改善資源管理。
以下是我們所取得成就的快速回顧:
此專案強調了雲端環境中資源最佳化的重要性,並為您提供使用 Python 自動執行 AWS 任務的實務經驗。
您可以隨意進一步自訂和增強此功能。例如,您可以設定 CloudWatch 規則來定期觸發該函數或擴展邏輯以處理其他清理場景。
感謝您的關注,敬請關注更多精彩的 DevOps 和雲端專案! ?
?如需了解更多資訊博客,請在 Hashnode、X(Twitter) 和 LinkedIn 上關注我。
到此為止,祝您學習愉快! ?
以上是最佳化 AWS 成本:使用 Lambda 自動清理未使用的 EBS 快照的詳細內容。更多資訊請關注PHP中文網其他相關文章!