构建和部署用于 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中文网其他相关文章!