Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何减少和防止 CloudWatch 中产生不必要的费用?
我想减少和防止在 Amazon CloudWatch 中产生不必要的费用。
简短描述
要确定您的 CloudWatch 使用费用,请查看您的 AWS 成本和使用情况报告。为了减少和防止出现不必要的费用,请查看以下 CloudWatch 服务,并实施经济高效的方法:
- CloudWatch 自定义指标
- CloudWatch 指标 API 调用
- CloudWatch 警报
- CloudWatch 控制面板
- CloudWatch Logs
- CloudWatch Contributor Insights
- CloudWatch Synthetics
- CloudWatch 网络监测仪
- CloudWatch Container Insights
- CloudWatch Application Signals
- CloudWatch RUM
**注意:**要监控未来的 AWS 成本,最佳做法是开启账单提醒。
解决方法
CloudWatch 自定义指标
所有 CloudWatch 详细监控和自定义指标均按小时进行费用分摊,并在将指标发送到 CloudWatch 时计费。
要降低 CloudWatch 指标费用,请执行以下操作:
- 关闭对实例、自动扩缩组启动配置和 API 网关的详细监控。
- 根据需要关闭对自定义指标的监控。Amazon Simple Storage Service (Amazon S3) 和 Amazon Simple Email Service (Amazon SES) 事件的指标请求会发送到 CloudWatch 并产生费用。统一的 CloudWatch 代理使用 PutMetricData API 调用进行发布。当您为自定义指标调用 PutMetricData 时,会产生费用。此外,Amazon Kinesis Data Streams 维度和指标以及 AWS Elastic Beanstalk 增强型运行状况报告指标将发送到 CloudWatch 并产生费用。
**注意:**要仅显示自定义指标,请在 CloudWatch 控制台的 Search for any metric, dimension or resource ID(搜索任何指标、维度或资源 ID)框中输入 NOT AWS。
CloudWatch 指标 API 调用
每个 CloudWatch 指标 API 的费用各不相同。超过 AWS 免费套餐限制的 API 调用会产生费用。第三方监控工具制定的指标,例如 GetMetricData 和 GetMetricWidgetImage,未包含在 AWS F免费套餐中。有关详细信息,请参阅对于 CloudWatch 指标,使用 GetMetricData 还是 GetMetricStatistics 更好?
要减少来自 CloudWatch API 调用和第三方监控工具的费用,请使用以下最佳实践:
- 通过 AWS 管理控制台免费调用 ListMetrics,而不是通过 AWS 命令行界面 (AWS CLI) 进行调用。
- 为了减少 API 调用量和相关费用,请将多个 PutMetricData 请求批处理为一个 API 调用,并将指标数据预聚合到一个 StatisticSet 中。
- 对于第三方监控工具,仅检索您正在监控或在工作负载中使用的指标。您还可以使用指标流来确定更具成本效益的部署。请务必查看第三方监控工具产生的费用。
CloudWatch 警报
与 CloudWatch 警报关联的指标数量可能会产生费用。例如,如果您有一个包含多个指标的警报,则您需要为每个指标付费。为了减少来自 CloudWatch 警报的费用,请移除不必要的警报。
有关更多信息,请参阅自动大规模清理 Amazon CloudWatch 警报。
CloudWatch 控制面板
在以下情况下,使用 CloudWatch 控制面板会产生费用:
- 您超过了三个控制面板,每个控制面板最多 50 个指标的 AWS 免费套餐限制。
- 您调用的控制面板 API GetDashboard、ListDashboards、PutDashboard 和 DeleteDashboards 超过了 AWS 免费套餐限制。
- 您使用了 Exception: GetMetricWidgetImage API。
要降低费用,请执行以下操作:
- 删除不必要的控制面板。
- 如果您正在使用 AWS 免费套餐,请将控制面板总数限制为三个。
- 通过 AWS 管理控制台调用控制面板 API。
CloudWatch Logs
Amazon CloudWatch Logs 会因摄取、存档存储和分析而产生费用。要降低费用,请执行以下操作:
- **摄取:**要监控工作负载生成的日志量,请在 CloudWatch 图表或控制面板中查看此指标。有关高额摄取费用,请参阅哪个日志组导致我的 CloudWatch Logs 账单突然增加?要减少摄取费用,请检查日志记录级别并移除不必要的日志摄取。此外,最佳做法是使用不经常访问日志来经济高效地存储日志。
- **存档:**保留策略决定了 CloudWatch Logs 保留数据的时长。要减少存档费用,请将保留策略修改为更短的保留期,从而限制随时间推移存储的数据。
- **分析:**当您使用 Log Insights 查询日志或使用 Live Tail 实时分析日志时,会产生分析费用。要降低 Logs Insights 产生的费用,请将您的查询设置为在较短的时间范围内运行,这样扫描的数据就会减少。要降低 Live Tail 产生的费用,请最大限度地减少会话使用时间。
CloudWatch Contributor Insights
当您每月超过一条 Contributor Insights 规则或每月超过一百万个与规则匹配的日志事件时,您将产生费用。若要降低费用,请查看您的 Contributor Insights 报告,并移除不必要的规则。
CloudWatch Synthetics
当您每月的金丝雀运行超过 100 次时,CloudWatch Synthetics 会产生费用。对于每次金丝雀运行,您使用的其他 AWS 服务(例如 AWS Lambda、Amazon S3、CloudWatch Logs 和 CloudWatch 指标)可能会产生额外费用。为了减少费用,请移除不必要的金丝雀。
CloudWatch 网络监测仪
CloudWatch 网络监测仪会向每个受监控的资源和所有城市网络收取费用。发布到 CloudWatch Logs 的诊断日志也可能会产生额外费用。要降低费用,请为监控的城市网络的最大数量设置限制。
Container Insights
Container Insights 根据收集的指标和摄取的日志数据产生费用。如果您对 Amazon Elastic Kubernetes Service (Amazon EKS) 使用增强型可观测性,则 Container Insights 指标和日志将针对每次观察收费。要减少费用,请在您的 Amazon Elastic Container Service (Amazon ECS) 或 Amazon EKS 集群上关闭增强型可观测性。

