概述
月度预算告警在总额越线时才触发,往往已经来不及处理。异常检测按服务学习历史基线并比较当前支出,能在一天内发现被遗忘的压测或配置错误的自动扩缩容,此时支出仍然可控。
步骤
- 创建按服务维度的监控器:
aws ce create-anomaly-monitor \
--anomaly-monitor '{"MonitorName":"acme-services","MonitorType":"DIMENSIONAL","MonitorDimension":"SERVICE"}'
- 创建订阅,将每日影响超过 100 美元的异常发送到 SNS:
aws ce create-anomaly-subscription \
--anomaly-subscription '{
"SubscriptionName":"acme-cost-alerts",
"MonitorArnList":["arn:aws:ce::123456789012:anomalymonitor/abc123"],
"Subscribers":[{"Address":"arn:aws:sns:us-east-1:123456789012:platform-alerts","Type":"SNS"}],
"Threshold":100,
"Frequency":"DAILY"
}'
- 用
get-anomaly-subscriptions确认订阅存在,并在 Cost Explorer 中查看检测历史。 - 编写响应流程:确认异常服务、对比发布记录、停止或调整资源。
验证
预期订阅出现在返回列表中,异常发生后次日收到包含服务名和影响金额的通知。用 aws ce get-cost-and-usage 按服务拆分当天成本,确认能定位到具体增长来源。
注意事项
- 检测需要约十天历史数据,刚启用时可能没有结果。
- 检测粒度为天,不是实时,快速失控仍可能产生可观支出。
- 归因到服务或账户,不精确到单个资源,需要结合标签和资源清单排查。
- 沙箱账户应使用更低阈值,生产环境需观察数周波动后再调优,避免长期静默。