비용 관리(Cost Management)

[!tldr] 한줄 요약 Datadog 비용은 커스텀 메트릭, 로그, 트레이스 세 축에서 발생하며, 각각 Metrics without Limits, Logging without Limits, Ingestion Controls로 수집과 인덱싱을 분리해 최적화한다.

핵심 내용

Datadog 비용 관리는 크게 Datadog 자체 사용 비용 최적화클라우드 인프라 비용 가시성(Cloud Cost Management) 두 축으로 나뉜다.

3대 비용 동인(Cost Driver)

Datadog 과금에서 비용이 급증하는 주요 원인은 커스텀 메트릭, 로그, 트레이스 세 가지이며, 각각 Metrics without Limits, Logging without Limits, Ingestion Controls로 최적화한다.

1. 커스텀 메트릭(Custom Metrics)

Datadog 기본 통합(1,000+개)에서 오는 메트릭 외에 직접 전송하는 모든 메트릭이 커스텀 메트릭으로 과금된다. OpenTelemetry(OTel)로 전송하는 메트릭도 모두 커스텀으로 취급된다.

과금 방식: 메트릭 이름 + 태그 조합마다 별도 timeseries로 카운트하여 월 평균을 산출한다.

[!warning] 고카디널리티 태그 주의 user_id, session_id 같은 고유값 태그는 timeseries 수를 폭증시킨다. 메트릭 하나에 태그 조합이 10,000개면 10,000개 timeseries로 과금된다.

Metrics without Limits: 수집(ingestion)과 인덱싱(indexing)을 분리하는 핵심 기능이다.

[!example] 실제 절감 사례 수집 10,000 timeseries → 인덱싱 400 timeseries로 줄여 월 $500에서 대폭 절감

커스텀 메트릭 거버넌스 3요소:

  1. 가시성과 귀속(Visibility & Attribution): 어떤 팀/서비스가 메트릭을 생성하는지 파악
  2. 실행 가능한 거버넌스(Actionable Governance): 쿼리되지 않는 메트릭을 식별하고 빈 태그 설정 적용
  3. 모니터링과 예방(Monitoring & Prevention): 사용량 급증을 사전 감지

2. 로그(Logs)

로그 관리 비용은 수집과 인덱싱 두 단계에서 발생한다.

단계비용
수집(Ingestion)$0.10/GB
인덱싱 3일 보존$1.06/GB
인덱싱 30일 보존$2.50/GB
Flex Storage$0.05/백만 이벤트

Logging without Limits: 수집과 인덱싱을 분리한다.

최적화 전략:

3. 트레이스(Traces)

APM 트레이스 비용은 수집량 기반이다.

Ingestion Controls: 서비스별, 엔드포인트별 샘플링 비율을 조정한다.

[!tip] APM 메트릭은 샘플링의 영향을 받지 않는다 요청 수, 에러율, 레이턴시 등 APM 메트릭은 100% 트래픽 기반으로 계산되므로, 트레이스 샘플링 비율을 낮춰도 메트릭 정확도는 유지된다.

Cloud Cost Management

Datadog이 제공하는 클라우드 인프라 비용 가시성 기능으로, AWS/Azure/GCP 비용 데이터를 Datadog에 연동하여 옵저버빌리티 데이터와 함께 분석한다.

AWS/Azure/GCP 비용 데이터를 인프라 메트릭, APM/로그와 함께 Datadog으로 연동하여 비용 분석, 모니터링, 팀/서비스별 귀속을 수행한다.

사용량 모니터링

도구용도
Estimated Usage Metrics실시간에 가까운 사용량 추정 (실제 청구 대비 10~20% 오차)
Plan & Usage 페이지제품별 사용량 상세 확인
Usage Attribution태그별(팀, env 등) 비용 귀속 분석
사용량 대시보드기본 제공 대시보드로 사용량 트렌드 모니터링

예시

Metrics without Limits 설정 시나리오

# 원래 메트릭: request.duration
# 태그: service, endpoint, method, user_id, session_id, region, host
# → timeseries 수: 수만 개 (고카디널리티 태그 때문)

# Allowlist 적용: service, endpoint, region만 유지
# → timeseries 수: 수백 개로 감소
# → 나머지 태그는 수집되지만 인덱싱(쿼리)은 불가

로그 인덱싱 최적화 시나리오

# 인덱스 설정 예시
Index: production-errors
  Filter: status:error
  Retention: 30일

Index: production-info
  Filter: status:info AND NOT (source:healthcheck OR source:heartbeat)
  Retention: 7일
  Daily Quota: 50GB/일

Index: debug-logs
  Filter: status:debug
  Retention: 3일
  Daily Quota: 10GB/일

# 인덱싱하지 않는 로그 → S3 아카이브 또는 Flex Storage

[!tip] 비용 최적화 체크리스트

  1. 쿼리되지 않는 커스텀 메트릭을 식별하고 Metrics without Limits 적용
  2. 로그 인덱스를 필터/쿼터로 최적화하고 저가치 로그를 Flex Storage로 전환
  3. 트레이스 Ingestion Controls로 서비스별 샘플링 비율 조정
  4. Cloud Cost Management로 인프라 유휴 리소스 식별
  5. Estimated Usage Metrics로 사용량 추이 모니터링

참고 자료

관련 노트