전체 AWS Marketplace 제품
S4 Metrics
옵저버빌리티

S4 Metrics

CloudWatch metric cardinality 제어

메트릭 카디널리티 비용 제어 대체 대상 AWS 서비스: CloudWatch custom metrics
AWS Marketplace에서 받기

CloudWatch custom-metric 청구액을 절감합니다: ingest edge에서 metric cardinality를 제어한 뒤, 전체 AWS Organization에 걸쳐 자동 baseline화하고 절감액을 roll up합니다.

S4 Metrics는 ingest edge에서 CloudWatch custom-metric cardinality를 제어합니다 — PutMetricData 전에 high-cardinality dimension을 제거하고, 숫자 dimension을 bucket화하며, window를 aggregate해 무제한 series 폭증 대신 필요한 series에 대해서만 비용을 지불하게 합니다. 오픈소스 metricsd collector(StatsD/DogStatsD + OTLP/EMF/PutMetricData intake)가 제어를 수행하고 CloudWatch로 내보내며, 선택적으로 full-resolution S3/Prometheus tee도 제공합니다. Commercial 계층은 auto-baseline과 AWS Organizations 통합 rollup을 추가합니다.

해결하고자 하는 과제

CloudWatch는 고유 시계열(네임스페이스 + 메트릭 이름 + 디멘션 값 조합)당 커스텀 메트릭을 청구하며, 첫 10,000개 계열은 누진 요율에 따라 개당 월 $0.30가 부과됩니다. user_id, request_id, path, instance_id 등 카디널리티가 높은 소수의 디멘션들이 조합되면서 수천에서 수만 개의 계열로 확장됩니다. 청구 비용을 폭발적으로 증가시키는 것은 바이트 수나 요청량이 아니라, 이러한 무제한적인 고유 계열의 급증입니다.

작동 원리

  1. 1

    텔레메트리 대상을 metricsd로 지정

    애플리케이션 코드를 수정하지 않고 StatsD/DogStatsD, OTLP, EMF 또는 PutMetricData 전송자의 엔드포인트를 metricsd 수집기(collector)로 재정의하기만 하면 됩니다.

  2. 2

    가장 비용이 많이 드는 디멘션 기준 설정

    Auto-baseline은 ListMetrics를 통해 사용자의 계정을 읽기 전용으로 스캔하고, 청구 가능한 계열 수에 기여하는 정도에 따라 디멘션 순위를 매긴 후, 예상 가격이 포함된 거버넌스 규칙 세트를 제안합니다.

  3. 3

    PutMetricData 이전에 거버넌스 적용

    전송(emit) 전에 디멘션을 drop, roll up, bucket, window-aggregate하는 규칙을 적용하여, 비용을 지불할 가치가 있는 계열만 CloudWatch의 청구 경로에 도달하도록 합니다.

주요 특징

ingest 시점의 cardinality governance: PutMetricData 전에 drop / bucket / aggregate.

Auto-baseline은 비용이 가장 큰 dimension을 랭킹하고 가격이 반영된 rule set을 제안합니다.

READ-ONLY(ListMetrics-only) cross-account role을 통한 AWS Organizations 통합 rollup.

포함 사항

  • metricsd 오픈 소스 수집기 — StatsD/DogStatsD, OTLP, EMF 및 PutMetricData를 수집한 후 govern, aggregate 및 CloudWatch로 emit을 수행합니다.
  • 거버넌스 엔진 — 디멘션에 대한 결정론적인 keep / drop / rollup / bucket / sample 처리를 수행하고, 60초 윈도우 집계(window aggregation) 및 DDSketch 분위수를 적용하여 요청당 하나의 계열을 전송하는 것을 방지합니다.
  • 계층 인지형 달러 드라이런 — 무엇이든 적용하기 전에 파일이나 라이브 읽기 전용 ListMetrics 스캔을 바탕으로 CloudWatch 요금 계층에 맞춘 전/후/절감액 추정치를 제공합니다.
  • Auto-baseline 규칙 제안(상용) — 가장 비용이 많이 드는 디멘션의 순위를 매기고, 요금이 반영된 규칙 세트를 일반 오픈 소스(OSS) YAML 형식으로 작성합니다.
  • AWS Organizations 통합 절감액 롤업(상용) — 읽기 전용 및 요금 계층이 반영된 계정별 및 조직 총계 추정치입니다.
  • 선택적 풀 해상도 분기(tee) — drop된 디멘션을 S3 또는 Prometheus remote-write로 미러링하여 아무것도 버리지 않고 계열당 요금 청구 경로에서만 제외시킵니다.
  • 일반 오픈 소스(OSS) YAML 규칙 — 오픈 소스 metricsd가 이를 그대로 읽기 때문에 종속(lock-in)이 없습니다.

주요 활용 사례

user_id, request_id 또는 path 등이 메트릭에 포함되어 수천 개의 계열로 폭발적으로 늘어나면서 커스텀 메트릭 비용이 걷잡을 수 없이 커진 팀.

카디널리티 비용이 어디에서 발생하는지 요금 계층이 반영된 단일 통합 뷰로 한눈에 파악하고자 하는 멀티 계정 조직.

지출 전 비용 검토 — 어떤 것도 변경하기 전에 드라이런을 통해 후보 규칙 세트의 요금을 매겨보고 예상 절감액을 AMI 요율과 비교합니다.

조사를 위해 풀 해상도 상세 내역을 유지해야 하지만 계열당 요금 청구 경로에서는 제외하고자 하는 팀(S3 / Prometheus 분기(tee)).

자주 묻는 질문

제외(drop)한 데이터는 손실되나요?

아닙니다. 제외된 디멘션은 풀 해상도로 S3 또는 Prometheus remote-write에 분기(tee)할 수 있습니다. 상세 정보는 삭제되지 않고 계열별로 요금이 청구되지 않는 스토리지로 이동할 뿐이므로, 조사 시 분기(tee) 대상에서 user_id 등을 다시 읽어올 수 있습니다.

제품에 종속(lock-in)되나요?

아닙니다. 모든 규칙은 오픈 소스 metricsd가 그대로 읽는 일반 오픈 소(OSS) YAML이며, 제안 사항은 표시되기 전에 오픈 소스 엔진을 통해 왕복 검증(round-trip validation)을 거칩니다. 구독을 취소하더라도 수집기와 규칙은 변경 없이 그대로 계속 작동합니다.

계정에 어떻게 안전하게 액세스하며 어디에서 실행되나요?

상용 CLI는 철저히 읽기 전용(cloudwatch:ListMetrics, organizations:ListAccounts, sts:AssumeRole)이며, 메트릭을 발송(emit)하거나 사용자의 계정을 변경(mutate)하지 않습니다. 교차 계정 스캔은 CloudTrail 감사를 위한 고정 세션 이름과 함께 ListMetrics 권한만 부여된 사용자가 직접 생성한 역할을 AssumeRole합니다. 모든 것은 사용자 자체 VPC 내부의 AMI에서 실행됩니다.

어떤 입력이 지원되나요?

metricsd는 StatsD/DogStatsD(UDP)와 HTTP상에서의 OTLP 메트릭, EMF 및 PutMetricData를 수집합니다. 마이그레이션은 엔드포인트 재정의(override)만으로 가능합니다.

오픈 소스와 상용 버전의 차이점은 무엇인가요?

수집기(ingest/govern/aggregate/emit) 및 계층 인식 dry-run은 오픈 소스 Apache-2.0 metricsd입니다. 상용 레이어는 자동으로 규칙을 작성해 주는 ListMetrics auto-baseline, AWS Organizations 통합 롤업, 비용 절감 대시보드, 클릭 한 번으로 가능한 AMI/CloudFormation 배포를 추가합니다 — 포크가 아닌 OSS 코어 위에 구축되었습니다.

요금제 모델

시간당 소프트웨어 요금 + EC2(t3 / m5급). 인스턴스 유형별 종량 과금, 연간 옵션 제공.

AWS Marketplace에서 받기