分析、最佳化和降低 CloudWatch 成本 - Amazon CloudWatch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

分析、最佳化和降低 CloudWatch 成本

本節說明 Amazon CloudWatch 功能如何產生成本。此外,還提供可協助您分析、最佳化和降低 CloudWatch 成本的方法。在本節中,我們有時會在描述 CloudWatch 功能時提及定價。如需有關定價的資訊,請參閱 Amazon CloudWatch 定價

使用 Cost Explorer 分析 CloudWatch 成本和用量資料

透過 AWS Cost Explorer,您可以視覺化和分析一段時間內 AWS 服務 的成本和用量資料,包括 CloudWatch。如需詳細資訊,請參閱 入門 AWS Cost Explorer

下列程序說明如何使用 Cost Explorer 來視覺化並分析 CloudWatch 的成本和用量資料。

視覺化和分析 CloudWatch 成本和用量資料

  1. 登入 Cost Explorer 主控台,網址為:https://console.aws.amazon.com/cost-management/home#/custom

  2. FILTERS (篩選條件) 下,針對 Service (服務),選取 CloudWatch

  3. 針對 Group by (分組依據),選擇 Usage Type (用量類型)。您也可以依其他類別來分組結果,例如:

    • API Operation (API 操作):查看哪些 API 操作產生的成本最多。

    • Region (區域):查看哪些區域產生的成本最多。

下圖顯示 CloudWatch 功能在六個月內產生的成本範例。

AWS Cost Explorer 介面的螢幕擷取畫面,以長條圖格式顯示用量類型成本。

若要查看哪些 CloudWatch 功能產生最多的成本,請查看 UsageType 的價值。例如:EU-CW:GMD-Metrics 代表 CloudWatch 大量 API 請求產生的成本。

注意

UsageType 的字串符合特定功能和區域。例如,EU-CW:GMD-Metrics (EU) 的第一部分符合歐洲 (愛爾蘭) 區域,EU-CW:GMD-Metrics (GMD-Metrics) 第二部分符合 CloudWatch 大量 API 請求。

UsageType 的整個字串可格式化如下所示:<Region>-CW:<Feature><Region>-<Feature>

有些 CloudWatch 功能,例如日誌和警示,也會使用 Global區域來識別 免費方案用量。例如, Global-DataScanned-Bytes代表免費的 CloudWatch Logs 資料擷取用量。

為了增強可讀性,整個文件的表格中 UsageType 的字串已縮短為其字串尾碼。例如:EU-CW:GMD-Metrics 縮短為 GMD-Metrics

下表包含每個 CloudWatch 功能的名稱、列出每個子功能的名稱,以及列出 的字串UsageType

CloudWatch 功能 CloudWatch 子功能

UsageType

CloudWatch 指標 自訂指標

MetricMonitorUsage

詳細監控

MetricMonitorUsage

內嵌指標

MetricMonitorUsage

CloudWatch API 請求 API 請求

Requests

大量 (取得)

GMD-Metrics

Contributor Insights

GIRR-Metrics

點陣圖片快照

GMWI-Metrics

CloudWatch 指標串流 指標串流

MetricStreamUsage

CloudWatch 儀表板 含 50 個或更少指標的儀表板

DashboardsUsageHour-Basic

含超過 50 個指標的儀表板

DashboardsUsageHour

CloudWatch 警示 標準 (指標警示)

AlarmMonitorUsage

高解析度 (指標警示)

HighResAlarmMonitorUsage

Metrics Insights 查詢警示

MetricInsightAlarmUsage

複合 (彙總警示)

CompositeAlarmMonitorUsage

CloudWatch 應用程式訊號 應用程式訊號

Application-Signals

CloudWatch 自訂日誌 收集 (標準日誌類別的資料擷取)

DataProcessing-Bytes

收集 (不常存取日誌類別的資料擷取)

DataProcessingIA-Bytes

分析 (查詢)

DataScanned-Bytes

分析 (即時尾隨)

Logs-LiveTail

儲存 (封存)

TimedStorage-ByteHrs

偵測和遮罩 (資料保護)

DataProtection-Bytes

CloudWatch 付費日誌 交付 (Amazon CloudWatch Logs 標準日誌類別)

VendedLog-Bytes

交付 (CloudWatch Logs 不常存取日誌類別)

VendedLogIA-Bytes

傳送 (Amazon S3)

S3-Egress-Bytes

Parquet 格式的交付 (Amazon S3)

S3-Egress-InputBytes

交付 (Amazon Data Firehose)

FH-Egress-Bytes

Contributor Insights CloudWatch Logs (規則)

ContributorInsightRules

CloudWatch Logs (事件)

ContributorInsightEvents

Amazon DynamoDB (規則)

ContributorRulesManaged

DynamoDB (事件)

ContributorEventsManaged

金絲雀 (Synthetics) Run (執行)

Canary-runs

Evidently 事件

Evidently-event

分析單位

Evidently-eau

RUM 事件

RUM-event

網路監控 網路合成監視器

CWNMHybrid-Paid

網路監視器 (監控的資源)

InternetMonitor-MonitoredResource

網路監視器 (受監控的城市網路)

InternetMonitor-CityNetwork

使用 和 Athena 分析 CloudWatch AWS Cost and Usage Report成本和用量資料

分析 CloudWatch 成本和用量資料的另一種方法是搭配 AWS Cost and Usage Report Amazon Athena 使用 。 AWS Cost and Usage Report包含一組完整的成本和用量資料。您可以建立可追蹤成本和用量的報告,並可將這些報告發佈至您所選的 S3 儲存貯體。您也可以從您的 S3 儲存貯體下載並刪除您的報告。如需詳細資訊,請參閱 AWS Cost and Usage Report使用者指南中的什麼是 AWS Cost and Usage Report?

注意

使用 AWS Cost and Usage Report無需付費。您只需在將報告發佈至 Amazon Simple Storage Service (Amazon S3) 時支付儲存費用。如需詳細資訊,請參閱《AWS Cost and Usage Report使用者指南》中的配額和限制

Athena 是一種查詢服務,您可以搭配 AWS Cost and Usage Report使用,以分析成本和用量資料。您可以在 S3 儲存貯體中查詢報告,而無需先進行下載。如需詳細資訊,請參閱《Amazon Athena 使用者指南》中的什麼是 Amazon Athena?。如需詳細資訊,請參閱《Amazon Athena 使用者指南》中的什麼是 Amazon Athena?。如需有關定價的資訊,請參閱 Amazon Athena 定價

下列程序說明啟用 AWS Cost and Usage Report和整合服務與 Athena 的程序。此程序包含兩個範例查詢,您可以使用這些查詢來分析 CloudWatch 成本和用量資料。

注意

您可以使用本文件中的任何範例查詢。本文件中的所有範例查詢均對應於名為 costandusagereport 的資料庫,並顯示 2022 年 4 月的結果。您可以變更此資訊。不過,在執行查詢之前,請確定您的資料庫名稱與查詢中的資料庫名稱相符。

使用 和 Athena AWS Cost and Usage Report分析成本和用量資料

  1. 啟用 AWS Cost and Usage Report。如需詳細資訊,請參閱《AWS Cost and Usage Report使用者指南》中的建立成本和用量報告

    提示

    建立報告時,請確認選取 Include resource IDs (包含資源 ID)。否則,您的報告將不會包含 line_item_resource_id 資料欄。此行可協助您在分析成本和用量資料時進一步識別成本。

  2. 將 AWS Cost and Usage Report與 Athena 整合。如需詳細資訊,請參閱 AWS Cost and Usage Report使用者指南中的使用 AWS CloudFormation 範本設定 Athena

  3. 查詢您的成本和用量報告。

範例 的 Athena 查詢,以顯示每月 CloudWatch 成本

您可以使用以下查詢來顯示哪些 CloudWatch 功能在指定月份產生最多的成本。

SELECT CASE -- Metrics WHEN line_item_usage_type LIKE '%%MetricMonitorUsage%%' THEN 'Metrics (Custom, Detailed monitoring management portal EMF)' WHEN line_item_usage_type LIKE '%%Requests%%' THEN 'Metrics (API Requests)' WHEN line_item_usage_type LIKE '%%GMD-Metrics%%' THEN 'Metrics (Bulk API Requests)' WHEN line_item_usage_type LIKE '%%MetricStreamUsage%%' THEN 'Metric Streams' -- Contributor Insights WHEN line_item_usage_type LIKE '%%Contributor%%' THEN 'Contributor Insights' -- Dashboard WHEN line_item_usage_type LIKE '%%DashboardsUsageHour%%' THEN 'Dashboards' -- Alarms WHEN line_item_usage_type LIKE '%%AlarmMonitorUsage%%' THEN 'Alarms (Standard)' WHEN line_item_usage_type LIKE '%%HighResAlarmMonitorUsage%%' THEN 'Alarms (High Resolution)' WHEN line_item_usage_type LIKE '%%MetricInsightAlarmUsage%%' THEN 'Alarms (Metrics Insights)' WHEN line_item_usage_type LIKE '%%CompositeAlarmMonitorUsage%%' THEN 'Alarms (Composite)' -- Logs WHEN line_item_usage_type LIKE '%%DataProcessing-Bytes%%' THEN 'Logs (Collect - Data Ingestion)' WHEN line_item_usage_type LIKE '%%DataProcessingIA-Bytes%%' THEN 'Infrequent Access Logs (Collect - Data Ingestion)' WHEN line_item_usage_type LIKE '%%DataProtection-Bytes%%' THEN 'Logs (Data Protection - Detect and Mask)' WHEN line_item_usage_type LIKE '%%TimedStorage-ByteHrs%%' THEN 'Logs (Storage - Archival)' WHEN line_item_usage_type LIKE '%%DataScanned-Bytes%%' THEN 'Logs (Analyze - Logs Insights queries)' WHEN line_item_usage_type LIKE '%%Logs-LiveTail%%' THEN 'Logs (Analyze - Logs Live Tail)' -- Vended Logs WHEN line_item_usage_type LIKE '%%VendedLog-Bytes%%' THEN 'Vended Logs (Delivered to CW)' WHEN line_item_usage_type LIKE '%%VendedLogIA-Bytes%%' THEN 'Vended Infrequent Access Logs (Delivered to CW)' WHEN line_item_usage_type LIKE '%%FH-Egress-Bytes%%' THEN 'Vended Logs (Delivered to Data Firehose)' WHEN (line_item_usage_type LIKE '%%S3-Egress%%') THEN 'Vended Logs (Delivered to S3)' -- Network Monitoring WHEN line_item_usage_type LIKE '%%CWNMHybrid-Paid%%' THEN 'Network Monitor' WHEN line_item_usage_type LIKE '%%InternetMonitor%%' THEN 'Internet Monitor' -- Other WHEN line_item_usage_type LIKE '%%Application-Signals%%' THEN 'Application Signals' WHEN line_item_usage_type LIKE '%%Canary-runs%%' THEN 'Synthetics' WHEN line_item_usage_type LIKE '%%Evidently%%' THEN 'Evidently' WHEN line_item_usage_type LIKE '%%RUM-event%%' THEN 'RUM' ELSE 'Others' END AS UsageType, -- REGEXP_EXTRACT(line_item_resource_id,'^(?:.+?:){5}(.+)$',1) as ResourceID, SUM(CAST(line_item_usage_amount AS double)) AS UsageQuantity, SUM(CAST(line_item_unblended_cost AS decimal(16,8))) AS TotalSpend FROM costandusagereport WHERE product_product_name = 'AmazonCloudWatch' AND year='2022' AND month='4' AND line_item_line_item_type NOT IN ('Tax','Credit','Refund','EdpDiscount','Fee','RIFee') -- AND line_item_usage_account_id = '123456789012' – If you want to filter on a specific account, you can remove this comment at the beginning of the line and specify an AWS account. GROUP BY 1 ORDER BY TotalSpend DESC, UsageType;
範例 Athena 查詢的 ,顯示 CloudWatch 功能如何產生成本

您可以使用以下查詢來顯示 UsageTypeOperation 的結果。這會顯示 CloudWatch 功能產生成本的方式。結果也會顯示 UsageQuantityTotalSpend 的值,以便您可以查看總用量成本。

提示

如需有關 UsageType 的詳細資訊,請將下列一行新增至此查詢:

line_item_line_item_description

此行會建立一個名為 Description (描述) 的資料欄。

SELECT bill_payer_account_id as Payer, line_item_usage_account_id as LinkedAccount, line_item_usage_type AS UsageType, line_item_operation AS Operation, line_item_resource_id AS ResourceID, SUM(CAST(line_item_usage_amount AS double)) AS UsageQuantity, SUM(CAST(line_item_unblended_cost AS decimal(16,8))) AS TotalSpend FROM costandusagereport WHERE product_product_name = 'AmazonCloudWatch' AND year='2022' AND month='4' AND line_item_line_item_type NOT IN ('Tax','Credit','Refund','EdpDiscount','Fee','RIFee') GROUP BY bill_payer_account_id, line_item_usage_account_id, line_item_usage_type, line_item_resource_id, line_item_operation

最佳化和降低 CloudWatch 指標的成本

許多 AWS 服務 Amazon Elastic Compute Cloud (Amazon EC2)、Amazon S3 和 Amazon Data Firehose 等 都會免費自動將指標傳送至 CloudWatch。不過,歸入以下類別的指標可能會產生額外的成本:

  • Custom metrics, detailed monitoring, and embedded metrics (自訂指標、詳細監控和內嵌指標)

  • API requests (API 請求)

  • Metric streams (指標串流)

如需詳細資訊,請參閱使用 Amazon CloudWatch 指標

自訂指標

您可以建立自訂指標,以任何順序和任何速率來組織資料點。

所有自訂指標均依小時按比例分配。只有在傳送至 CloudWatch 時,才會進行計量。如需有關指標如何定價的資訊,請參閱 Amazon CloudWatch 定價

下表列出 CloudWatch 指標的相關子功能名稱。資料表包含 UsageTypeOperation 的字串,可協助您分析和識別指標相關的成本。

注意

若要在使用 Athena 查詢成本和用量資料時,取得有關下表所列指標的詳細資訊,請使 Operation 的字串與 line_item_operation 的顯示結果相符。

CloudWatch 子功能

UsageType

Operation

用途

自訂指標

MetricMonitorUsage

MetricStorage

自訂指標

詳細監控

MetricMonitorUsage

MetricStorage:AWS/{Service}

詳細監控

內嵌指標

MetricMonitorUsage

MetricStorage:AWS/Logs-EMF

日誌內嵌指標

日誌篩選條件

MetricMonitorUsage

MetricStorage:AWS/CloudWatchLogs

日誌群組指標篩選條件

詳細監控

CloudWatch 有兩種類型的監控:

  • 基本監控

    基本監控免費,並為所有支援此功能的 AWS 服務 自動啟用。

  • 詳細監控

    詳細的監控會產生成本,並根據 新增不同的增強功能 AWS 服務。針對每個支援詳細監控的 AWS 服務 ,您可以選擇是否為該服務將其啟用。如需詳細資訊,請參閱基本和詳細監控

注意

其他 AWS 服務 支援詳細監控,且可能使用不同的名稱來參考此功能。例如,Amazon S3 的詳細監控稱為 request metrics (請求指標)。

與自訂指標類似,詳細監控會依小時按比例分配,並且只有在資料傳送至 CloudWatch 時才會計量。詳細監控會根據傳送至 CloudWatch 的指標數量產生成本。為了降低成本,請僅在必要時啟用詳細監控。如需有關詳細監控如何定價的資訊,請參閱 Amazon CloudWatch 定價

範例:Athena 查詢

您可以使用以下查詢來顯示哪些 EC2 執行個體已啟用詳細監控。

SELECT bill_payer_account_id as Payer, line_item_usage_account_id as LinkedAccount, line_item_usage_type AS UsageType, line_item_operation AS Operation, line_item_resource_id AS ResourceID, SUM(CAST(line_item_usage_amount AS double)) AS UsageQuantity, SUM(CAST(line_item_unblended_cost AS decimal(16,8))) AS TotalSpend FROM costandusagereport WHERE product_product_name = 'AmazonCloudWatch' AND year='2022' AND month='4' AND line_item_operation='MetricStorage:AWS/EC2' AND line_item_line_item_type NOT IN ('Tax','Credit','Refund','EdpDiscount','Fee','RIFee') GROUP BY bill_payer_account_id, line_item_usage_account_id, line_item_usage_type, line_item_resource_id, line_item_operation, line_item_line_item_description ORDER BY line_item_operation

內嵌指標

透過 CloudWatch 內嵌指標格式,您可以將應用程式資料擷取為日誌資料,以便產生可操作的指標。如需詳細資訊,請參閱使用 CloudWatch 內嵌指標格式擷取高基數日誌和產生指標

內嵌指標會依擷取的日誌數量、封存的日誌數量以及產生的自訂指標數量來產生成本。

下表列出 CloudWatch 內嵌指標格式的相關子功能名稱。資料表包含 UsageTypeOperation 的字串,可協助您分析和識別成本。

CloudWatch 子功能

UsageType

Operation

用途

自訂指標

MetricMonitorUsage

MetricStorage:AWS/Logs-EMF

日誌內嵌指標

日誌擷取

DataProcessing-Bytes

PutLogEvents

將批次日誌事件上傳至指定的日誌群組或日誌串流

日誌封存

TimedStorage-ByteHrs

HourlyStorageMetering

在 CloudWatch Logs 中儲存每小時日誌和每位元組日誌

若要分析成本,請將 AWS Cost and Usage Report與 Athena 搭配使用,以便識別哪些指標產生成本,並判斷如何產生成本。

為了充分利用 CloudWatch 內嵌指標格式產生的成本,請避免根據高基數維度建立指標。如此一來,CloudWatch 就不會為每個唯一的維度組合建立自訂指標。如需詳細資訊,請參閱維度

如果您使用 CloudWatch Container Insights 來利用內嵌指標格式,則可以使用 AWS Distro for Open Telemetry 作為替代方案,以充分利用指標相關成本。使用 Container Insights,您可收集、彙整和摘要您容器化的應用程式及微服務中的指標及日誌。當您啟用 Container Insights 時,CloudWatch 代理程式會將您的日誌傳送至 CloudWatch,以便使用日誌產生內嵌指標。不過,CloudWatch 代理程式只會傳送固定數量的指標至 CloudWatch,而且您需支付所有可用指標 (包括未使用的指標) 的費用。使用 AWS Distro for Open Telemetry,您可以設定和自訂哪些指標和維度會傳送至 CloudWatch。這可協助您減少 Container Insights 所產生的資料量和成本。如需詳細資訊,請參閱下列資源:

API 請求

CloudWatch 具有以下類型的 API 請求:

  • API requests (API 請求)

  • Bulk (Get) (大量 (取得))

  • Contributor Insights

  • Bitmap image snapshot (點陣圖影像快照)

API 請求會根據請求類型和請求的指標數量產生成本。

下列資料表列出了 API 請求的類型,並包含 UsageTypeOperation 的字串,可協助您分析和識別 API 相關的成本。

API 請求類型

UsageType

Operation

用途
API 請求

Requests

GetMetricStatistics

擷取指定指標的統計資料

Requests

ListMetrics

列出指定的指標

Requests

PutMetricData

將指標資料點發佈至 CloudWatch

Requests

GetDashboard

顯示指定儀表板的詳細資訊

Requests

ListDashboards

列出帳戶中的儀表板

Requests

PutDashboard

建立或更新儀表板

Requests

DeleteDashboards

刪除所有指定的儀表板

大量 (取得)

GMD-Metrics

GetMetricData

擷取 CloudWatch 指標值
Contributor Insights

GIRR-Metrics

GetInsightRuleReport

傳回 Contributor Insights 規則所收集的時間序列資料
點陣圖片快照

GMWI-Metrics

GetMetricWidgetImage

擷取一或多個 CloudWatch 指標的快照作為點陣圖影像

若要分析成本,請使用 Cost Explorer,並將結果依據 API Operation (API 操作) 分組。

API 請求的成本各不相同,當您超過 AWS 免費方案限制下提供給您的 API 呼叫數量時,會產生成本。

注意

GetMetricDataGetMetricWidgetImage 不包含在 AWS 免費方案限制下。如需詳細資訊,請參閱AWS Billing 《 使用者指南》中的使用 AWS 免費方案

通常會增加成本的 API 請求是 PutGet 請求。

PutMetricData

PutMetricData 每次呼叫時都會產生成本,並且根據使用案例可能會產生可觀的成本。如需詳細資訊,請參閱《Amazon CloudWatch API 參考》中的 PutMetricData

為了充分利用 PutMetricData 所產生的成本,請在您的 API 呼叫中批次處理更多資料。根據您的使用案例,請考慮使用 CloudWatch Logs 或 CloudWatch 內嵌指標格式來插入指標資料。如需詳細資訊,請參閱下列資源:

GetMetricData

GetMetricData 也會產生可觀的成本。增加成本的常見使用案例涉及第三方監控工具,這些工具會提取資料以產生深入解析。如需詳細資訊,請參閱《Amazon CloudWatch API 參考》中的 GetMetricData

為了降低 GetMetricData 產生的成本,請僅考慮提取受監控和使用的資料,或考慮減少提取資料的頻率。視您的使用案例而定,您可能會考慮使用指標串流 (而不是 GetMetricData),以便您以較低的成本,將資料以近乎即時的方式推播給第三方。如需詳細資訊,請參閱下列資源:

GetMetricStatistics

視您的使用案例而定,您可能會考慮使用 GetMetricStatistics 而不是 GetMetricData。透過 GetMetricData,您可以快速且大規模地擷取資料。不過, GetMetricStatistics 包含在最多 100 萬個 API 請求 AWS 的免費方案限制下,如果您不需要擷取每次呼叫的指標和資料點,這可協助您降低成本。如需詳細資訊,請參閱下列資源:

注意

外部呼叫者進行 API 呼叫。對於 CloudTrail 資料事件支援的 APIs (例如 GetMetricDataGetMetricWidgetImage),您可以使用 CloudTrail 來識別最熱門的 CloudWatch API 呼叫者,並可能緩解或識別非預期的呼叫。如需詳細資訊,請參閱如何使用 CloudTrail 分析 CloudWatch API 用量。對於 CloudTrail 不支援的其他 CloudWatch APIs,您可以向 CloudWatch 團隊開啟技術支援請求,並詢問其相關資訊。如需建立技術支援請求的相關資訊,請參閱如何從中取得技術支援 AWS?

CloudWatch 指標串流

使用 CloudWatch 指標串流,您可以持續將指標傳送至 AWS 目的地和第三方服務供應商目的地。

指標串流會根據指標更新的數量產生成本。指標更新一律包含以下統計資料的值:

  • Minimum

  • Maximum

  • Sample Count

  • Sum

如需詳細資訊,請參閱可供串流的統計資料

若要分析 CloudWatch 指標串流所產生的成本,請使用 AWS Cost and Usage Report搭配 Athena。如此一來,您就可以識別哪些指標串流會產生成本,並決定成本的產生方式。

範例:Athena 查詢

您可以使用以下查詢來依 Amazon Resource Name (ARN) 追蹤哪些指標串流會產生成本。

SELECT SPLIT_PART(line_item_resource_id,'/',2) AS "Stream Name", line_item_resource_id as ARN, SUM(CAST(line_item_unblended_cost AS decimal(16,2))) AS TotalSpend FROM costandusagereport WHERE product_product_name = 'AmazonCloudWatch' AND year='2022' AND month='4' AND line_item_line_item_type NOT IN ('Tax','Credit','Refund','EdpDiscount','Fee','RIFee') -- AND line_item_usage_account_id = '123456789012' – If you want to filter on a specific account, you can remove this comment at the beginning of the line and specify an AWS account. AND line_item_usage_type LIKE '%%MetricStreamUsage%%' GROUP BY line_item_resource_id ORDER BY TotalSpend DESC

若要降低 CloudWatch 指標串流產生的成本,請僅串流可帶來商業價值的指標。您也可以停止或暫停未使用的任何指標串流。

最佳化和降低 CloudWatch 警示的成本

使用 CloudWatch 警示,您可以根據單一指標建立警示、根據 Metrics Insights 查詢建立警示,以及建立監看其他警示的複合警示。

注意

指標和複合警示的費用按小時按比例分配。只有當警示存在時,您才會產生警示費用。若要最佳化成本,請勿留下設定錯誤或低值的警示。若要協助解決此問題,您可以自動清除不再需要的 CloudWatch 警示。如需詳細資訊,請參閱大規模自動化 Amazon CloudWatch 警示清除

指標警示

指標警示具有下列解析度設定:

  • Standard (標準) (每 60 秒評估一次)

  • High resolution (高解析度) (每 10 秒評估一次)

如果建立指標警示,費用會根據警示的解析設定和警示參考的指標數量而定。例如,指標警示每參考一個指標,每小時就會產生一個警示指標成本。如需詳細資訊,請參閱使用 Amazon CloudWatch 警示

如果建立的指標警示包含參考多個指標的指標數學表達式,則指標數學表達式中參考的每個警示指標都會產生費用。如需有關如何建立包含指標數學表達式的指標警示的詳細資訊,請參閱根據指標數學表達式建立 CloudWatch 警示

如果建立的是異常偵測警示 (警示會分析過去的指標資料來建立預期值模型),則警示中參考的每個警示指標 (以及兩個額外指標,其中一個用於異常偵測模型建立的上下限範圍指標) 都會產生費用。如需有關如何建立異常偵測警示的詳細資訊,請參閱建立以異常偵測為基礎的 CloudWatch 警示

Metrics Insights 查詢警示

Metric Insights 查詢警示是一種特定類型的指標警示,僅提供標準解析度 (每 60 秒評估一次)。

建立 Metric Insights 查詢警示時,費用會根據警示參考的查詢所分析的指標數量而定。例如,某個 Metric Insights 查詢警示所參考之查詢的篩選條件符合十個指標,那麼此查詢警示每小時會產生分析十個指標的成本。如需詳細資訊,請參閱 Amazon CloudWatch 定價

如果您建立的警示同時包含 Metrics Insights 查詢和指標數學運算式,則會將其回報為 Metrics Insights 查詢警示。如果您的警示包含一個指標數學運算式,它不僅參考 Metrics Insights 查詢分析的指標,還參考其他指標,那麼指標數學運算式中參考的每個警報指標都會產生額外費用。如需有關如何建立包含指標數學表達式的指標警示的詳細資訊,請參閱根據指標數學表達式建立 CloudWatch 警示

複合警示

複合警示包含指定如何評估其他警示狀態以判斷其自身狀態的規則表達式。複合警示會每小時產生標準費用,無論它們評估了多少個其他警示。複合警示的規則表達式參考的每個警示都會產生費用。如需詳細資訊,請參閱建立複合警示

警示使用類型

下表列出 CloudWatch 警示的相關子功能名稱。資料表包含 UsageType 的字串,可協助您分析和識別與警示相關的成本。

CloudWatch 子功能

UsageType

標準指標警示

AlarmMonitorUsage

高解析度指標警示

HighResAlarmMonitorUsage

Metrics Insights 查詢警示

MetricInsightAlarmUsage

複合警示

CompositeAlarmMonitorUsage

降低警示成本

若要充分利用彙總四個 (或更多) 指標的指標數學警示優化所產生的成本,您可以在資料傳送至 CloudWatch 之前彙總資料。如此一來,您就可以為單一指標建立警示,而不是為多個指標彙總資料的警示。如需詳細資訊,請參閱發佈自訂指標

若要最佳化 Metric Insights 查詢警示產生的成本,您可以確保用於查詢的篩選條件僅符合您要監控的指標。

降低成本的最佳方法是移除所有不必要或未使用的警示。例如,您可以刪除評估不再存在之 AWS 資源所發出指標的警示。

範例 使用 DescribeAlarms 檢查處於 INSUFFICIENT_DATA 狀態的警示

如果您刪除資源,但不刪除資源發出的指標警示,則警示會仍然存在,通常會進入 INSUFFICIENT_DATA 狀態。若要檢查 INSUFFICIENT_DATA處於 狀態的警示,請使用 following AWS Command Line Interface (AWS CLI) 命令。

aws cloudwatch describe-alarms –state-value INSUFFICIENT_DATA

如需詳細資訊,請參閱大規模自動化 Amazon CloudWatch 警示清除

其他降低成本的方法包括:

  • 請確認為正確的指標建立警示。

  • 請確認您未在您沒有運作的地區啟用任何警示。

  • 請記住,儘管複合警示可以減少雜訊,但它們也會產生額外的費用。

  • 在決定要建立標準警示或高解析度警示時,請考慮您的使用案例以及每種警示類型帶來的價值。

最佳化和降低 CloudWatch Logs 的成本

Amazon CloudWatch Logs 具有下列日誌類型:

  • 自訂日誌 (您為應用程式建立的日誌)

  • 已取代的日誌 (其他日誌 AWS 服務,例如 Amazon Virtual Private Cloud (Amazon VPC) 和 Amazon Route 53,代表您建立)

如需已結束日誌的詳細資訊,請參閱《Amazon CloudWatch Logs 使用者指南》中的啟用特定 AWS 服務的記錄

自訂和付費日誌會根據收集儲存分析的日誌數量產生成本。個別而言,已終止的日誌會產生交付至 Amazon S3 和 Firehose 的成本。

下表列出 CloudWatch Logs 功能的名稱和相關子功能的名稱。資料表包含 UsageTypeOperation 的字串,可協助您分析和識別日誌相關的成本。

CloudWatch Logs 功能 CloudWatch Logs 子功能

UsageType

Operation

用途
自訂日誌 收集 (標準日誌類別的資料擷取)

DataProcessing-Bytes

PutLogEvents

將一批日誌上傳至標準類別日誌群組中的特定日誌串流。
收集 (不常存取日誌類別的資料擷取)

DataProcessingIA-Bytes

PutLogEvents

將一批日誌上傳至不常存取類別日誌群組中的特定日誌串流。
偵測和遮罩 (資料保護)

DataProtection-Bytes

PutLogEvents

偵測和遮罩日誌事件中的受保護資料。
儲存 (封存)

TimedStorage-ByteHrs

HourlyStorageMetering

將每小時日誌和每位元組日誌存放在 CloudWatch Logs 中。
分析 (Logs Insights 查詢)

DataScanned-Bytes

StartQuery

CloudWatch Logs Insights 查詢掃描的日誌資料
分析 (記錄 Live Tail)

Logs-LiveTail

StartLiveTail

在 CloudWatch Logs Live Tail 工作階段期間分析的日誌
付費日誌 交付 (CloudWatch Logs 標準日誌類別)

VendedLog-Bytes

PutLogEvents

將一批日誌上傳至標準日誌類別中日誌群組中的特定日誌串流。
交付 (CloudWatch Logs 不常存取日誌類別)

VendedLogIA-Bytes

PutLogEvents

將一批日誌上傳至不常存取日誌類別中日誌群組中的特定日誌串流。

傳送 (Amazon S3)

S3-Egress-Bytes

LogDelivery

將一批已結束的日誌上傳至特定 S3 儲存貯體

Parquet 格式的交付 (Amazon S3)

S3-Egress-InputBytes

ParquetConversion

在交付至 Amazon S3 的日誌上執行 Parquet 轉換

交付 (Firehose)

FH-Egress-Bytes

LogDelivery

將一批已結束的日誌上傳至 Amazon Data Firehose

若要分析成本,請使用 AWS Cost and Usage Report AWS Cost Explorer Service 或 搭配 Athena。使用任一方法,您可以識別哪些日誌產生成本,並判斷如何產生成本。

使用 AWS Cost Explorer Service

選取服務篩選條件的 CloudWatch,然後選取維度的資源。當您在 Cost Explorer Service 中選取資源做為維度時,您只能看到過去 14 天的用量。

介面的 AWS Cost Explorer Service 螢幕擷取畫面,其中針對 服務欄位選取 CloudWatch,針對 Dimension 欄位選取資源。

使用 Amazon Athena 查詢來追蹤產生成本的日誌

您可以使用以下查詢來依資源 ID 追蹤哪些日誌會產生成本。

SELECT line_item_resource_id AS ResourceID, line_item_usage_type AS Operation, SUM(CAST(line_item_unblended_cost AS decimal(16,8))) AS TotalSpend, FROM costandusagereport WHERE product_product_name = 'AmazonCloudWatch' AND year='2025' AND month='1' AND line_item_operation IN ('PutLogEvents','HourlyStorageMetering','StartQuery','LogDelivery','StartLiveTail','ParquetConversion') AND line_item_line_item_type NOT IN ('Tax','Credit','Refund','EdpDiscount','Fee','RIFee') GROUP BY line_item_resource_id, line_item_operation ORDER BY TotalSpend DESC

若要充分利用 CloudWatch Logs 所產生的成本,請考慮下列事項:

  • 使用上一個查詢,依每個操作的花費來識別最熱門的日誌群組。

  • 僅記錄具有商業價值的事件,然後選擇有效的日誌語法。詳細日誌語法會驅動磁碟區,進而產生成本。這可協助您產生較低的擷取成本。

  • 變更您的日誌保留設定,以便產生較低的儲存成本。如需詳細資訊,請參閱《Amazon CloudWatch Logs 使用者指南》中的變更 CloudWatch 日誌中的日誌資料保留期間

  • 在適當的情況下,請考慮使用不常存取日誌類別。不常存取日誌的功能比標準類別少。判斷您是否需要標準日誌類別的其他功能,並了解這兩個類別之間的差異。如需詳細資訊,請參閱部落格文章 New CloudWatch Logs 日誌類別,了解不常存取的日誌。雖然不常存取類別支援的功能較少,但適用於大多數的使用案例。

  • 執行 CloudWatch Logs Insights 自動儲存在您的歷史記錄中的查詢。如此一來,您產生的分析成本就會減少。如需詳細資訊,請參閱《Amazon CloudWatch Logs 使用者指南》中的檢視執行中的查詢或查詢歷史記錄

  • CloudWatch 代理程式可用來收集系統和應用程式日誌,並將其傳送至 CloudWatch。如此一來,您就可以只收集符合條件的日誌事件。如需詳細資訊,請參閱 Amazon CloudWatch Agent adds Support for Log Filter Expressions (Amazon CloudWatch 代理程式新增對日誌篩選條件表達式的支援)。

若要降低付費日誌的成本,請考慮您的使用案例,然後判斷是否應將您的日誌傳送至 CloudWatch 或 Amazon S3。如需詳細資訊,請參閱《Amazon CloudWatch Logs 使用者指南》中的傳送至 Amazon S3 的日誌

提示

如果您想要使用指標篩選條件、訂閱篩選條件、CloudWatch Logs Insights 和 Contributor Insights,請將付費日誌傳送至 CloudWatch。

或者,如果您正在使用 VPC 流量日誌並將其用於稽核和合規目的,請將付費日誌傳送至 Amazon S3。

如需如何追蹤將 VPC 流程日誌發佈至 S3 儲存貯體所產生的費用的資訊,請參閱使用 AWS Cost and Usage Report和成本分配標籤來了解 Amazon S3 中的 VPC FLow Logs 資料擷取

如需有關如何充分利用 CloudWatch Logs 產生的成本的其他資訊,請參閱 Which log group is causing a sudden increase in my CloudWatch Logs bill? (哪個日誌群組導致我的 CloudWatch 日誌帳單突然增加?)。