如何减少和防止 CloudWatch 中的不必要的费用?

2 分钟阅读
0

我想减少和防止在 Amazon CloudWatch 中产生不必要的费用。

简短描述

要确定您的 CloudWatch 使用费用,请查看您的 AWS Cost and Usage Reports。为了减少和防止出现不必要的费用,请查看以下 CloudWatch 服务,并实施经济高效的方法:

  • CloudWatch 自定义指标
  • CloudWatch 指标 API 调用
  • CloudWatch 告警
  • CloudWatch 控制面板
  • CloudWatch Logs
  • CloudWatch Contributor Insights
  • CloudWatch Synthetics
  • CloudWatch 网络监测仪
  • CloudWatch Container Insights
  • CloudWatch Application Signals
  • CloudWatch RUM
  • CloudWatch Evidently

**注意:**要监控未来的 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 控制台搜索任何指标、维度或资源 ID 框中输入 NOT AWS

CloudWatch 指标 API 调用

每个 CloudWatch 指标 API 的费用各不相同。超过 AWS Free Tier 限制的 API 调用会产生费用。第三方监控工具制定的指标,例如 GetMetricDataGetMetricWidgetImage,未包含在 AWS Free Tier 中。有关详细信息,请参阅我应该使用 GetMetricData 还是 GetMetricStatistics 来检索 CloudWatch 指标?

要减少来自 CloudWatch API 调用和第三方监控工具的费用,请使用以下最佳实践:

  • 通过 AWS 管理控制台免费调用 ListMetrics,而不是通过 AWS 命令行界面(AWS CLI)调用。
  • 为了减少 API 调用量和相关费用,请将多个 PutMetricData 请求合并为一个 API 调用,并将指标数据预聚合到一个 StatisticSet 中。
  • 对于第三方监控工具,仅检索您正在监控或在工作负载中使用的指标。您还可以使用指标流来确定性价比更高的部署。请务必查看第三方监控工具产生的费用。

CloudWatch 告警

与 CloudWatch 告警关联的指标数量可能会产生费用。例如,如果您有一个包含多个指标的告警,则您需要为每个指标付费。为了减少来自 CloudWatch 告警的费用,请移除不必要的告警

有关更多信息,请参阅 Automating Amazon CloudWatch alarm cleanup at scale

CloudWatch 控制面板

在以下情况下,会收取 CloudWatch 控制面板使用费:

  • 您超过了三个控制面板,每个控制面板最多 50 个指标的 AWS Free Tier 限制。
  • 您调用的控制面板 API GetDashboardListDashboardsPutDashboardDeleteDashboards 超过了 AWS Free Tier 限制。
  • 您使用了 Exception: GetMetricWidgetImage API。

要减少费用,请采取以下措施:

  • 删除不必要的控制面板。
  • 如果您正在使用 AWS Free Tier,请将控制面板总数限制为三个。
  • 通过 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 LambdaAmazon S3CloudWatch LogsCloudWatch 指标)可能会产生额外费用。为了减少费用,请删除不必要的金丝雀。

CloudWatch 网络监测仪

CloudWatch 网络监测仪会为每个受监控的资源和所有城市网络产生费用。发布到 CloudWatch Logs 的诊断日志也可能会产生额外费用。要降低费用,请为监控的城市网络的最大数量设置限制。

Container Insights

Container Insights 根据收集的指标和摄取的日志数据产生费用。如果您对 Amazon Elastic Kubernetes Service(Amazon EKS)使用增强的可观测性,则 Container Insights 指标和日志将针对每次观察收费。要减少费用,请在您的 Amazon Elastic Container Service(Amazon ECS)或 Amazon EKS 集群上关闭增强的可观测性。

相关信息

CloudWatch 账单和成本

使用 AWS 进行成本优化

活动系列: AWS 成本优化

AWS 官方
AWS 官方已更新 6 个月前