CloudWatch 비용 분석, 최적화 및 절감 - Amazon CloudWatch

CloudWatch 비용 분석, 최적화 및 절감

이 섹션에서는 Amazon CloudWatch 기능 사용 시 발생하는 비용을 설명합니다. 또한 CloudWatch 비용을 분석하고 최적화하고 줄이는 데 도움이 되는 방법도 제시합니다. 이 섹션에서 CloudWatch 기능을 설명할 때 요금을 언급하기도 합니다. 요금에 대한 자세한 내용은 Amazon CloudWatch 요금을 참조하세요.

Cost Explorer로 CloudWatch 비용 및 사용량 데이터 분석

AWS Cost Explorer를 사용하면 CloudWatch를 비롯한 AWS 서비스의 시간 경과에 따른 비용 및 사용량 데이터를 시각화하고 분석할 수 있습니다. 자세한 내용은 AWS Cost Explorer 시작하기를 참조하십시오.

다음 절차에서는 Cost Explorer를 사용하여 CloudWatch 비용 및 사용량 데이터를 시각화하고 분석하는 방법을 설명합니다.

CloudWatch 비용 및 사용량 데이터를 시각화하고 분석하려면

  1. https://console.aws.amazon.com/cost-management/home#/custom에서 Cost Explorer 콘솔에 로그인합니다.

  2. FILTERS(필터) 아래의 Service(서비스)에서 CloudWatch를 선택합니다.

  3. Group by(그룹화 기준)에서 Usage Type(사용 유형)을 선택합니다. 다음과 같은 다른 범주를 기준으로 결과를 그룹화할 수도 있습니다.

    • API Operation(API 작업) - 가장 많은 비용을 유발한 API 작업을 확인할 수 있습니다.

    • Region(리전) - 비용이 가장 많이 발생한 리전을 확인할 수 있습니다.

다음 이미지는 6개월 동안 CloudWatch 기능 사용으로 발생한 비용의 예를 보여줍니다.

Usage Type(사용 유형) 비용이 막대 그래프 형식으로 표시된 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-MetricsGMD-Metrics로 축약됩니다.

다음 표에는 각 CloudWatch 기능의 이름, 각 하위 기능의 이름 및 UsageType의 문자열이 나열되어 있습니다.

CloudWatch 기능 CloudWatch 하위 기능

UsageType

CloudWatch 지표 사용자 지정 지표

MetricMonitorUsage

세부 모니터링

MetricMonitorUsage

임베디드 지표

MetricMonitorUsage

CloudWatch API 요청 API 요청

Requests

대량(Get)

GMD-Metrics

Contributor Insights

GIRR-Metrics

비트맵 이미지 스냅샷

GMWI-Metrics

CloudWatch 지표 스트림 지표 스트림

MetricStreamUsage

CloudWatch 대시보드 지표가 50개 이하인 대시보드

DashboardsUsageHour-Basic

50개를 초과하는 지표가 있는 대시보드

DashboardsUsageHour

CloudWatch 경보 표준(지표 경보)

AlarmMonitorUsage

고분해능(지표 경보)

HighResAlarmMonitorUsage

Metrics Insights query alarm(Metrics Insights 쿼리 경보)

MetricInsightAlarmUsage

Composite (aggregated alarm)(복합(집계된 경보))

CompositeAlarmMonitorUsage

CloudWatch Application Signals Application Signals

Application-Signals

CloudWatch 사용자 지정 로그 수집(표준 로그 클래스의 데이터 모으기)

DataProcessing-Bytes

수집(비정기 액세스 로그 클래스의 데이터 모으기)

DataProcessingIA-Bytes

분석(query)

DataScanned-Bytes

분석(Live Tail)

Logs-LiveTail

저장(archive)

TimedStorage-ByteHrs

탐지 및 마스킹(데이터 보호)

DataProtection-Bytes

CloudWatch 벤딩 로그 전송(Amazon CloudWatch Logs Standard 로그 클래스)

VendedLog-Bytes

전송(CloudWatch Logs Infrequent Access 로그 클래스)

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

Canary(Synthetics) 실행

Canary-runs

Evidently 이벤트

Evidently-event

분석 단위

Evidently-eau

RUM 이벤트

RUM-event

AWS Cost and Usage Report와 Athena로 CloudWatch 비용 및 사용량 데이터 분석

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(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라는 데이터베이스에 해당하며, 4월 한 달과 2022년 한 해 동안의 결과를 보여줍니다. 이 정보를 변경할 수 있습니다. 단, 쿼리를 실행하기 전에 데이터베이스 이름이 쿼리의 데이터베이스 이름과 일치하는지 확인하세요.

AWS Cost and Usage Report 및 Athena로 CloudWatch 비용 및 사용량 데이터를 분석하려면

  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. 비용 및 사용 보고서를 쿼리합니다.

예 CloudWatch 월별 비용을 보여주는 Athena 쿼리

다음 쿼리를 사용하여 특정 월에 가장 많은 비용을 유발한 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' -- 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-Bytes%%') THEN 'Vended Logs (Delivered to S3)' -- 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;
예 CloudWatch 기능이 비용을 생성하는 방식을 보여주는 Athena 쿼리

다음 쿼리를 사용하여 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,y line_item_resource_id, line_item_operation

CloudWatch 지표의 비용 최적화 및 절감

Amazon Elastic Compute Cloud(Amazon EC2), Amazon S3, Amazon Data Firehose 등 다수의 AWS 서비스는 무료로 CloudWatch에 지표를 자동 전송합니다. 하지만 다음 범주로 분류된 지표의 경우 추가 비용이 발생할 수 있습니다.

  • 사용자 지정 지표, 세부 모니터링 및 임베디드 지표

  • API 요청

  • 지표 스트림

자세한 내용은 Amazon CloudWatch 지표 사용을 참조하세요.

사용자 지정 지표

사용자 지정 지표를 만들어 원하는 순서와 속도로 데이터 포인트를 구성할 수 있습니다.

모든 사용자 지정 지표는 시간을 기준으로 비례 배분됩니다. 이러한 지표는 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의 경우 세부 모니터링 기능을 요청 지표라고 합니다.

사용자 지정 지표와 마찬가지로 세부 모니터링은 시간을 기준으로 비례 배분되고 데이터가 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 요청

  • 대량(Get)

  • Contributor Insights

  • 비트맵 이미지 스냅샷

API 요청은 요청 유형과 요청된 지표 수에 따라 비용이 발생합니다.

다음 표에는 API 요청 유형이 나열되어 있으며, API 관련 비용을 분석하고 식별하는 데 유용한 UsageTypeOperation의 문자열이 포함되어 있습니다.

API 요청 유형

UsageType

Operation

용도
API 요청

Requests

GetMetricStatistics

지정된 지표에 대한 통계를 가져옵니다.

Requests

ListMetrics

지정된 지표를 나열합니다.

Requests

PutMetricData

CloudWatch에 지표 데이터 포인트를 게시합니다.

Requests

GetDashboard

지정된 대시보드에 대한 세부 정보를 표시합니다.

Requests

ListDashboards

계정의 대시보드를 나열합니다.

Requests

PutDashboard

대시보드를 생성 또는 업데이트합니다.

Requests

DeleteDashboards

지정된 대시보드를 모두 삭제합니다.

대량(Get)

GMD-Metrics

GetMetricData

CloudWatch 지표 값을 가져옵니다.
Contributor Insights

GIRR-Metrics

GetInsightRuleReport

Contributor Insights에 의해 수집된 시계열 데이터를 반환합니다.
비트맵 이미지 스냅샷

GMWI-Metrics

GetMetricWidgetImage

CloudWatch 지표 1개 이상의 스냅샷을 비트맵 이미지로 가져옵니다.

비용을 분석하려면 Cost Explorer를 사용하고 API Operation(API 작업)별로 결과를 그룹화합니다.

API 요청별로 비용이 다르며, AWS 프리 티어 한도에 따라 제공된 API 호출 수를 초과하면 비용이 발생합니다.

참고

GetMetricDataGetMetricWidgetImage는 AWS 프리 티어 한도에 포함되지 않습니다. 자세한 내용은 AWS Billing 사용 설명서에서 AWS 프리 티어 사용을 참조하세요.

일반적으로 비용이 많이 발생하는 API 요청은 Put 요청과 Get 요청입니다.

PutMetricData

PutMetricData는 호출할 때마다 비용이 발생하며 사용 사례에 따라 상당한 비용이 발생할 수 있습니다. 자세한 내용은 Amazon CloudWatch API 참조에서 PutMetricData를 참조하세요.

PutMetricData로 인해 발생하는 비용을 최적화하려면 API 호출에서 데이터를 배치 처리하세요. 사용 사례에 따라, CloudWatch Logs 또는 CloudWatch 임베디드 지표 형식을 사용하여 지표 데이터를 주입하는 것이 좋습니다. 자세한 정보는 다음 자료를 참조하십시오.

GetMetricData

GetMetricData도 상당한 비용을 유발할 수 있습니다. 비용을 유발하는 일반적인 사용 사례 중 하나로, 데이터를 가져와 인사이트를 생성하는 서드 파티 모니터링 도구가 있습니다. 자세한 내용은 Amazon CloudWatch API 참조에서 GetMetricData를 참조하세요.

GetMetricData로 인해 발생하는 비용을 줄이려면, 모니터링되고 사용되는 데이터만 가져오거나 데이터 가져오기 빈도를 줄이는 것이 좋습니다. 사용 사례에 따라, GetMetricData 대신 지표 스트림을 사용하여 저렴한 비용으로 데이터를 서드 파티에게 거의 실시간으로 푸시할 수 있습니다. 자세한 정보는 다음 자료를 참조하십시오.

GetMetricStatistics

사용 사례에 따라 GetMetricData 대신 GetMetricStatistics를 사용하는 것이 효율적일 수 있습니다. GetMetricData를 사용하면 데이터를 대규모로 신속하게 가져올 수 있습니다. 단, GetMetricStatistics는 최대 API 요청 100만 건이라는 AWS 프리 티어 한도에 포함되므로, 호출당 많은 수의 지표와 데이터 포인트를 가져올 필요가 없는 경우 비용을 줄이는 데 도움이 될 수 있습니다. 자세한 정보는 다음 자료를 참조하십시오.

참고

외부 호출자들은 API를 통해 호출합니다. CloudTrail 데이터 이벤트 (예: GetMetricDataGetMetricWidgetImage)에서 지원하는 API의 경우 CloudTrail을 사용하여 상위 CloudWatch API 호출자를 식별하고 잠재적으로 예상치 못한 호출을 줄이거나 식별할 수 있습니다. 자세한 내용은 CloudTrail을 사용하여 CloudWatch API 사용량을 분석하는 방법을 참조하세요. CloudTrail에서 지원하지 않는 다른 CloudWatch API의 경우 CloudWatch 팀에 대한 기술 지원 요청을 개설하고 관련 정보를 요청할 수 있습니다. 기술 지원 요청 생성에 대한 자세한 내용은 AWS에서 기술 지원을 받으려면 어떻게 해야 하나요?를 참조하세요.

CloudWatch 지표 스트림

CloudWatch 지표 스트림을 사용하면 AWS 대상과 서드 파티 제공업체 대상에 지표를 지속적으로 전송할 수 있습니다.

지표 스트림은 지표 업데이트 수를 기준으로 비용이 발생합니다. 지표 업데이트에는 항상 다음 통계의 값이 포함됩니다.

  • Minimum

  • Maximum

  • Sample Count

  • Sum

자세한 내용은 스트리밍할 수 있는 통계를 참조하세요.

CloudWatch 지표 스트림에서 발생하는 비용을 분석하려면 AWS Cost and Usage Report를 Athena와 함께 사용합니다. 이렇게 하면 비용이 발생하는 지표 스트림을 식별하고 비용이 어떻게 발생하는지 확인할 수 있습니다.

예: Athena 쿼리

다음 쿼리를 사용하여 비용이 발생하는 지표 스트림을 Amazon 리소스 이름(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 쿼리 경보를 생성할 때 비용은 경보가 참조하는 쿼리에서 분석한 지표 수를 기반으로 합니다. 예를 들어, 필터가 10개의 지표와 일치하는 쿼리를 참조하는 Metric Insights 쿼리 경보는 시간당 10개의 지표 분석 비용을 발생시킵니다. 자세한 내용은 Amazon CloudWatch Pricing(Amazon CloudWatch 요금)의 요금 예를 참조하세요.

Metrics Insights 쿼리와 지표 수학 표현식이 모두 포함된 경보를 생성하면 Metrics Insights 쿼리 경보로 보고됩니다. 경보에 Metrics Insights 쿼리에서 분석한 지표 외에 다른 지표를 참조하는 지표 수학 표현식이 포함된 경우 지표 수학 표현식에서 참조하는 각 경보 지표에 대해 추가 비용이 발생합니다. 지표 수학 표현식이 포함된 지표 경보를 생성하는 방법은 지표 수학 표현식을 기반으로 CloudWatch 경보 생성을 참조하세요.

복합 경보

복합 경보에는 자체 상태를 확인하기 위해 다른 경보의 상태를 평가하는 방법을 지정하는 규칙 표현식이 포함되어 있습니다. 복합 알람은 평가하는 다른 알람 수에 관계없이 시간당 표준 비용이 발생합니다. 규칙 표현식에서 복합 경보가 참조하는 경보는 별도의 비용이 발생합니다. 자세한 내용은 복합 경보 생성을 참조하세요.

경보 사용 유형

다음 표에는 CloudWatch 경보와 관련한 하위 기능의 이름이 나와 있습니다. 이 표에는 경보 관련 비용을 분석하고 식별하는 데 유용한 UsageType의 문자열이 포함되어 있습니다.

CloudWatch 하위 기능

UsageType

표준 지표 경보

AlarmMonitorUsage

고분해능 지표 경보

HighResAlarmMonitorUsage

Metrics Insights query alarm(Metrics Insights 쿼리 경보)

MetricInsightAlarmUsage

복합 경보

CompositeAlarmMonitorUsage

복합 경보에는 자체 상태를 확인하기 위해 다른 경보의 상태를 평가하는 방법을 지정하는 규칙 표현식이 포함되어 있습니다. 복합 알람은 평가하는 다른 알람 수에 관계없이 시간당 표준 비용이 발생합니다. 규칙 표현식에서 복합 경보가 참조하는 경보는 별도의 비용이 발생합니다. 자세한 내용은 복합 경보 생성을 참조하세요.

경보 사용 유형

다음 표에는 CloudWatch 경보와 관련한 하위 기능의 이름이 나와 있습니다. 이 표에는 경보 관련 비용을 분석하고 식별하는 데 유용한 UsageType의 문자열이 포함되어 있습니다.

CloudWatch 하위 기능

UsageType

표준 지표 경보

AlarmMonitorUsage

고분해능 지표 경보

HighResAlarmMonitorUsage

Metrics Insights query alarm(Metrics Insights 쿼리 경보)

MetricInsightAlarmUsage

복합 경보

CompositeAlarmMonitorUsage

경보 비용 절감

4개 이상의 지표를 집계하는 지표 수식 경보에서 발생하는 비용을 최적화하기 위해 데이터가 CloudWatch로 전송되기 전에 데이터를 집계할 수 있습니다. 이렇게 하면 여러 지표에 대한 데이터를 집계하는 경보 대신, 단일 지표에 대한 경보를 만들 수 있습니다. 자세한 내용은 사용자 지정 지표 게시를 참조하세요.

Metrics Insights 쿼리 경보에서 생성된 비용을 최적화하기 위해 쿼리에 사용된 필터가 모니터링하려는 지표와만 일치하는지 확인할 수 있습니다.

비용을 절감하는 가장 좋은 방법은 불필요하거나 사용하지 않는 경보를 모두 제거하는 것입니다. 예를 들어, 더 이상 존재하지 않는 AWS 리소스가 내보낸 지표를 평가하는 경보를 삭제할 수 있습니다.

DescribeAlarms를 사용하여 INSUFFICIENT_DATA 상태의 경보 확인

리소스는 삭제하지만 리소스에서 내보내는 지표 경보는 삭제하지 않은 경우 경보가 계속 존재하며 일반적으로 INSUFFICIENT_DATA 상태가 됩니다. INSUFFICIENT_DATA 상태의 경보를 확인하려면 다음 AWS Command Line Interface(AWS CLI) 명령을 사용합니다.

aws cloudwatch describe-alarms –state-value INSUFFICIENT_DATA

자세한 내용은 Amazon CloudWatch 경보 자동 대규모 정리를 참조하세요.

다음 방법으로도 비용을 절감할 수 있습니다.

  • 올바른 지표에 대한 경보를 생성합니다.

  • 작업하지 않는 리전에 경보가 활성화되어 있지 않은지 확인합니다.

  • 복합 알람은 소음을 줄여주지만 추가 비용도 발생합니다.

  • 표준 경보를 생성할지 아니면 고분해능 경보를 생성할지 결정할 때는 사용 사례와 각 경보 유형이 제공하는 가치를 고려하세요.

CloudWatch Log의 비용 최적화 및 절감

Amazon CloudWatch Logs의 로그 유형은 다음과 같습니다.

  • 사용자 지정 로그(애플리케이션용으로 생성한 로그)

  • 벤딩 로그(Amazon Virtual Private Cloud(VPC), Amazon Route 53 등의 다른 AWS 서비스에서 자동으로 생성되는 로그)

벤딩 로그에 대한 자세한 내용은 Amazon CloudWatch Logs 사용 설명서특정 AWS 서비스에서 로깅 활성화를 참조하세요.

사용자 지정 로그와 벤딩 로그는 수집되고, 저장되고, 분석되는 로그 수에 따라 비용이 발생합니다. 반면, 벤딩 로그의 경우 Amazon S3와 Firehose로 전송하는 데 대한 비용이 발생합니다.

다음 표에는 CloudWatch Logs 기능의 이름과 관련 하위 기능의 이름이 나와 있습니다. 이 표에는 로그 관련 비용을 분석하고 식별하는 데 유용한 UsageTypeOperation의 문자열이 포함되어 있습니다.

CloudWatch Logs 기능 CloudWatch Logs 하위 기능

UsageType

Operation

용도
사용자 지정 로그 수집(표준 로그 클래스의 데이터 모으기)

DataProcessing-Bytes

PutLogEvents

표준 클래스 로그 그룹의 특정 로그 스트림에 로그의 배치를 업로드합니다.
수집(비정기 액세스 로그 클래스의 데이터 모으기)

DataProcessingIA-Bytes

PutLogEvents

Infrequent Access 클래스 로그 그룹의 특정 로그 스트림에 로그의 배치를 업로드합니다.
탐지 및 마스킹(데이터 보호)

DataProtection-Bytes

PutLogEvents

로그 이벤트에서 보호된 데이터를 탐지하고 마스킹합니다.
저장(archive)

TimedStorage-ByteHrs

HourlyStorageMetering

CloudWatch Logs에 시간당 로그와 바이트당 로그를 저장합니다.
분석(Logs Insights 쿼리)

DataScanned-Bytes

StartQuery

CloudWatch Logs Insights 쿼리에 의해 스캔된 데이터를 로깅합니다.
분석(Logs Live Tail)

Logs-LiveTail

StartLiveTail

CloudWatch Logs Live Tail 세션 중에 분석된 로그
벤딩 로그 전송(CloudWatch Logs 표준 로그 클래스)

VendedLog-Bytes

PutLogEvents

표준 로그 클래스의 로그 그룹에 특정 로그 스트림에 대한 로그의 배치를 업로드합니다.
전송(CloudWatch Logs Infrequent Access 로그 클래스)

VendedLogIA-Bytes

PutLogEvents

Infrequent Access 로그 클래스의 로그 그룹에 특정 로그 스트림에 대한 로그의 배치를 업로드합니다.

전송(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에 벤딩 로그의 배치 업로드

비용을 분석하려면 Athena에서 AWS Cost Explorer Service 또는 AWS Cost and Usage Report을(를) 사용합니다. 두 방법 중 하나를 사용하면 비용이 발생하는 로그를 식별하고 비용이 어떻게 발생하는지 확인할 수 있습니다.

AWS Cost Explorer Service 사용

서비스 필터에서 CloudWatch를 선택하고 차원에서 리소스를 선택합니다. Cost Explorer 서비스에서 리소스를 차원으로 선택하면 지난 14일 동안의 사용량만 볼 수 있습니다.

서비스 필드에 CloudWatch를 선택하고 차원 필드에 리소스를 선택한 AWS Cost Explorer Service 인터페이스의 스크린샷입니다.

Amazon Athena 쿼리를 사용하여 비용을 생성하는 로그 추적

다음 쿼리를 사용하여 비용이 발생하는 로그를 리소스 ID로 추적할 수 있습니다.

SELECT bill_payer_account_id as Payer, line_item_usage_account_id as LinkedAccount, line_item_resource_id AS ResourceID, line_item_usage_type AS UsageType, SUM(CAST(line_item_unblended_cost AS decimal(16,8))) AS TotalSpend, SUM(CAST(line_item_usage_amount AS double)) AS UsageQuantity FROM costandusagereport WHERE product_product_name = 'AmazonCloudWatch' AND year='2022' AND month='4' 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 bill_payer_account_id, line_item_usage_account_id, line_item_usage_type, line_item_resource_id, line_item_operation ORDER BY TotalSpend DESC

CloudWatch Logs에서 발생하는 비용을 최적화하려면 다음을 고려하세요.

벤딩 로그의 비용을 줄이려면, 사용 사례를 고려하여 로그를 CloudWatch로 전송할지 Amazon S3 S3로 전송할지 결정하세요. 자세한 내용은 Amazon CloudWatch Logs 사용 설명서Amazon S3로 전송된 로그를 참조하세요.

작은 정보

지표 필터, 구독 필터, CloudWatch Logs Insights 및 Contributor Insights를 사용하려면 벤딩 로그를 CloudWatch로 전송하세요.

또는 VPC 흐름 로그를 감사 및 규정 준수 목적으로 사용하는 경우, 벤딩 로그를 Amazon S3로 전송하세요.

VPC 흐름 로그를 S3 버킷에 게시할 때 발생하는 요금을 추적하는 방법은 Amazon S3에서 AWS Cost and Usage Report 및 비용 할당 태그를 사용하여 VPC 흐름 로그 데이터 모으기 파악(Using s and cost allocation tags to understand VPC FLow Logs data ingestion in Amazon S3)을 참조하세요.

CloudWatch Logs에서 발생하는 비용을 최적화하는 방법은 CloudWatch Logs 요금이 갑자기 증가하는 것은 어떤 로그 그룹 때문인가요?(Which log group is causing a sudden increase in my CloudWatch Logs bill?)를 참조하세요.