如何确定我需要支付 CloudWatch 使用费的原因,以及如何才能减少未来的费用?

上次更新日期:2021 年 12 月 13 日

我看到我 AWS 账单中的 Amazon CloudWatch 费用较高。如何了解我的 CloudWatch 使用费情况,又如何减少未来的费用?

简短描述

请检查您的 AWS 成本和使用情况报告,从而了解您的 CloudWatch 费用。查找下列服务对应的费用。
注意:粗体显示的项目与您可能在报告中看到的内容相似。在您的报告中,region 代表您的 AWS 区域的缩写

自定义指标:MetricStorage region-CW:MetricMonitorUsage

CloudWatch 指标 API 调用:

  • API Name region-CW:Requests
  • GetMetricData region-CW:GMD-Requests/Metrics

CloudWatch 警报:

  • Unknown region-CW:AlarmMonitorUsage
  • Unknown region-CW:HighResAlarmMonitorUsage

CloudWatch 控制面板:DashboardHour DashboardsUsageHour(-Basic)

CloudWatch Logs:

  • PutLogEvents region-DataProcessing-Bytes
  • PutLogEvents region-VendedLog-Bytes
  • HourlyStorageMetering region-TimedStorage-ByteHrs

CloudWatch Contributor Insights:

  • Contributor Insights 规则:region-CW:ContributorInsightRules
  • Contributor Insights 匹配的录入事件:region-CW:ContributorInsightEvents

CloudWatch Synthetics Canary 运行:region-CW:Canary-runs

当您了解到自己的费用项目和产生原因后,请根据以下建议调整您的 CloudWatch 配置,从而减少未来的费用。

为方便在未来监控您的 AWS 成本,请启用账单提醒

解决方法

注意:如果您在运行 AWS 命令行界面 (AWS CLI) 命令时遇到错误,请确保您运行的是最新版本的 AWS CLI

详细监控

  • CloudWatch 详细监控 Amazon Elastic Compute Cloud (Amazon EC2) 实例、Auto Scaling 组启动配置或 API Gateway 将会产生费用。
  • 要降低成本,请相应地关闭对实例Auto Scaling 组启动配置API Gateway 的详细监控。

自定义指标

  • 监控的自定义指标数量超过 10 个将会产生费用。自定义指标包括您已创建的指标、CloudWatch 代理等工具使用的指标以及来自 EC2 实例的应用程序或操作系统数据。
  • 发送至 CloudWatch 的 Amazon Simple Storage Service (Amazon S3) 和 Amazon Simple Email Service (Amazon SES) 事件的请求指标将会产生费用。
  • 自定义指标的 PutMetricData 调用也会产生费用。
  • 发送至 CloudWatch 的 Amazon Kinesis Data Streams 增强(分区级)指标AWS Elastic Beanstalk 增强型运行状况报告指标将会产生费用。
  • 要降低成本,请相应地关闭对自定义指标的监控。要仅显示自定义指标,请在 CloudWatch 控制台Search for any metric, dimension or resource ID(搜索任何指标、维度或资源 ID)框中输入 NOT AWS(非 AWS)。 

CloudWatch 指标 API 调用

  • 不同 CloudWatch 指标 APl 会产生不同的费用。超出 AWS 免费套餐限制的 API 调用将会产生费用。GetMetricDataGetMetricWidgetImage 未包含在 AWS 免费套餐内。
  • 第三方监控工具会频繁执行 API 调用,因此可能增加成本。
  • 要降低成本,请执行以下操作:
    通过控制台执行 ListMetrics 调用,而不要使用 AWS CLI。
    将多个 putMetricData 请求批量转换为一个 API 调用。还可以考虑将指标数据预聚合到 StatisticSet 中。使用这些最佳实践可以减少 API 调用量,并减少相应的费用。
    在涉及第三方监控工具的使用案例中,请确保您仅检索正在主动监控的指标或工作负载正在使用的指标。检索到的指标减少,收费金额也会相应减少。您还可以考虑使用指标流作为替代解决方案,然后评估哪种部署最具成本效益。
    有关更多信息,请参阅我应为 CloudWatch 指标使用 GetMetricData 还是 GetMetricStatistics? 另外,请务必检查第三方监控工具产生的成本。

CloudWatch 警报

  • 费用与 CloudWatch 警报所关联的指标数量有关。例如,如果您在单个警报中包含了多个指标,则需要为每个指标付费。
  • 要降低成本,请移除不必要的警报

CloudWatch 控制面板

  • 控制面板的数量超过 3 个(最多 50 个指标)时将会产生费用。
  • 请求数量超过 AWS 免费套餐的限制之后,通过 AWS CLI 或软件开发工具包对控制面板相关 API 的调用也会产生费用。
    例外GetMetricWidgetImage 始终会产生费用。
  • 要降低成本,请删除不必要的控制面板。如果您在使用 AWS 免费套餐,请将控制面板的总数保持在三个或以下。另外,请确保所有控制面板中的指标数量之和低于 50 个。通过控制台进行免费的控制面板相关 API 调用,而不要使用 AWS CLI 或软件开发工具包。

CloudWatch Logs

  • Amazon CloudWatch Logs 的提取、存档存储和分析会产生费用。
  • 提取费用反映了 CloudWatch Logs 服务提取的日志数据量。CloudWatch 指标 IncomingBytes 报告服务处理的日志数据量。通过在 CloudWatch 图表或控制面板中直观地显示此指标,您可以监控各种工作负载生成的日志量。如果出现较高的 CloudWatch Logs 提取费用,请按照哪个日志组会导致我的 CloudWatch Logs 账单突然增加?中的指导进行操作
  • 为了降低提取成本,您可以重新评估日志记录级别并消除不必要的日志提取
  • 存档费用与一段时间内的日志存储成本相关。保留策略决定 CloudWatch Logs 的数据保留时长。您可以创建保留策略定向,以便 CloudWatch 自动删除超过设定保留期的数据。这会限制一段时间内保留的数据。日志组的默认保留策略设置为 Never Expire(永不过期)。此设置意味着 CloudWatch 将无限期地保留数据。要降低存储成本,请考虑更改 retention policy(保留策略),例如,您可以将保留策略设置为将数据保留 1 周、1 个月等。
  • 当使用 Log Insights 查询日志时,会产生分析费用。费用基于为提供查询结果而扫描的数据量。Log Insights 控制台提供以前运行的查询的历史记录。为了减少分析费用,您可以查看 Log Insights 查询历史记录,并将查询设置为在较短的时间范围内运行。这样可以减少扫描的数据量。

CloudWatch Contributor Insights

CloudWatch Synthetics