一家公司希望在 AWS 云中运行其实验性工作负载,多业务部门共用 AWS 云资源。该公司的首席财务官(CFO)关注每个部门的云支出责任归属问题。CFO 希望依托 AWS 原生工具,无需额外开发,实现按部门划分云运营费用,设定月度预算额度,实现费用实时监控、超阈值自动告警功能。现在需要找出能满足这些要求的解决方案。
采用AWS Budget 服务作为核心方案。使用该方案,通过标签维度对各业务部门云资源进行归类标记,通过 Budget 按部门单独创建成本预算,设置月度计费周期与费用上限。同时配置配置多级预警规则,同时配合 AWS SNS 服务实现邮件消息推送。无需脚本与命令行,完全适配企业运维及财务人员上手操作,实现部门云费用精细化管控。
本次采用AWS Console界面完成作业。
注意:根据项目的具体情况,可以采用不同的实施方法。比如使用命令行(CLI)部署、代码部署 (CloudFomation、Terraform等)、以及其它开发语言(SDK)完成作业。
步骤一:为目标资源打标签。
登录 AWS 控制台,进入 "Resource Groups & Tag Editor",筛选所有资源,为每个资源添加合适的标签。
步骤二:创建 SNS 主题。
在 Topics(主页)页面上,选择 Create topic(创建主题),完成创建后,将主题 ARN 复制到剪贴板。
步骤三:创建部门级预算。
进入 "AWS Budgets" 控制台,点击 "Create budget"。预算类型选 "Cost budget",阈值设定为 80%,选择 "Actual costs",在 "Budget scope" 中,筛选条件选择标签,确保只统计目标资源的支出。
步骤四:配置告警。
点击 "Add notification",通知方式选 Amazon SNS,输入预先创建的 SNS 主题 ARN。重另外也可以勾选 "Add an action",下拉选择已部署的 Lambda 函数,实现自动停止被打上特定标签的 EC2 实例。
步骤五:验证订阅生效。
查邮箱中来自 AWS 的 "AWS Notification Subscription Confirmation" 邮件,点击确认链接。进入 SNS 控制台,确认创建的所有预算主题的订阅状态均为 "Confirmed"。
1. 邮箱收件人在对应预算达 80% 时收到邮件预警。
2. 部署并启用 lambda 函数动作的情况下,实际支出费用超过预先设定的阈值后,对应的 EC2 实例被自动停止。
经过一段时间的观察,发现借助 AWS Budget 实现了业务部门云运营费用标准化、可视化管控,有效降低云资源浪费,让企业云成本管控更加规范高效。