如何缓解AWS Amplify中CloudWatch告警导致的账单激增问题
解决CloudWatch告警(AlarmMonitorUsage)费用暴涨问题
核心原因澄清
CloudWatch标准告警的计费是按已创建的告警数量收取月度费用,即使告警处于禁用状态,只要未删除,仍会产生费用。这是禁用告警后账单仍未下降的关键原因。
针对Amplify自动生成告警的解决方案
1. 阻止Amplify自动创建冗余告警
Amplify部署AppSync API等资源时,默认会自动生成CloudWatch告警(如API请求错误率、延迟类告警)。若这些告警非必需,可通过修改配置关闭自动创建:
- 在Amplify项目的
amplify/backend/api/<api-name>/parameters.json文件中,添加或修改参数:{ "CreateCloudWatchAlarms": false } - 执行
amplify push重新部署API,后续部署将不再生成新的冗余告警。
2. 批量管理重复告警(兼顾保留需求)
若需保留部分告警功能,可先清理重复或无用的告警:
- 列出Amplify API关联的所有告警:
aws cloudwatch describe-alarms --query 'MetricAlarms[?Namespace==`AWS/AppSync`].AlarmName' - 批量禁用冗余告警(仅停止触发通知,仍会计费):
若要彻底停止计费,需执行删除操作:aws cloudwatch disable-alarms --alarm-names $(aws cloudwatch describe-alarms --query 'MetricAlarms[?Namespace==`AWS/AppSync`].AlarmName' --output text)aws cloudwatch delete-alarms --alarm-names $(aws cloudwatch describe-alarms --query 'MetricAlarms[?Namespace==`AWS/AppSync`].AlarmName' --output text)
3. 优化告警配置减少计费项
如果需要保留告警功能,可通过以下方式压缩计费数量:
- 将多个单一指标告警合并为复合告警:复合告警基于多指标逻辑判断触发,仅按1个告警计费,可大幅降低总数量。
- 利用免费额度:每个AWS账户每月有10个免费标准告警,调整告警总数至额度内可避免超额费用。
4. 排查告警重复启用问题
若手动禁用后告警被重新启用,大概率是Amplify部署流程覆盖了修改:
- 检查Amplify控制台中API的监控设置,确认是否开启自动创建告警选项。
- 排查CI/CD部署脚本,移除自动创建告警的相关逻辑。
内容的提问来源于stack exchange,提问作者ten
相关产品推荐
相关产品推荐

