본문 바로가기
IT/Cloud

[Cloud] Datadog 비용 폭탄 피하기: 실전 최적화 전략과 절감 사례

by 수누다 2026. 6. 18.

Datadog 비용 폭탄 피하기: 실전 최적화 전략과 절감 사례

안녕하세요, 13년차 서버실 지킴이입니다. 오늘은 많은 분들이 사랑하지만, 때로는 뼈아픈(?) 경험을 안겨주는 Datadog(데이터독) 비용 최적화에 대한 이야기를 해볼까 합니다. 클라우드 환경에서 옵저버빌리티(Observability)를 구축할 때 Datadog만큼 강력한 도구도 드물죠. 메트릭(Metric), 로그(Log), 트레이스(Trace)를 한눈에 볼 수 있어서 저도 참 애용하고 있습니다.

근데 말이죠, 처음 Datadog을 도입했을 때, 사용량 예측을 제대로 못 해서 월말 청구서를 보고 깜짝 놀랐던 경험이 있습니다. '이게 대체 무슨 일이지?' 싶더라고요. 저만 그런 건 아니겠죠? Datadog은 기능이 워낙 많고 유연하다 보니, 제대로 관리하지 않으면 예상치 못한 비용이 나갈 수 있거든요. 그래서 오늘은 제가 직접 삽질하며 얻은 노하우와 실전 최적화 전략을 공유해드리려고 합니다. Datadog 비용 폭탄을 피하고 싶은 분들이라면 이 글이 분명 도움이 될 거예요! ✅

Datadog 요금 부과 방식 개요 다이어그램: 호스트, 커스텀 메트릭, 로그, 트레이스, 서버리스 모니터링 비용 요소

Datadog의 요금 부과 방식을 한눈에 파악하면 Datadog 비용 최적화 전략을 세우는 데 큰 도움이 됩니다.

Datadog 요금, 어떻게 부과될까요?

Datadog의 요금 구조를 정확히 이해하는 것이 Datadog 비용 절감의 첫걸음입니다. 주요 부과 항목은 다음과 같습니다.

  • Hosts (호스트): Datadog Agent(에이전트)가 설치되어 메트릭을 수집하는 서버, VM(가상 머신), 컨테이너 등의 컴퓨팅 자원 수에 따라 과금됩니다.
  • Custom Metrics (커스텀 메트릭): 기본 제공 메트릭 외에 사용자가 직접 수집하는 메트릭의 수와 카디널리티(Cardinality, 고유한 값의 다양성)에 따라 과금됩니다. 이 부분이 생각보다 비용 폭탄의 주범이 되는 경우가 많습니다.
  • Log Management (로그 관리): 수집하는 로그의 양(GB 단위)과 보존 기간(Retention Policy)에 따라 과금됩니다. 로그 볼륨이 엄청나면 이 역시 만만치 않죠.
  • APM (Application Performance Monitoring) / Tracing (트레이싱): 애플리케이션의 성능 모니터링을 위해 수집하는 트레이스 데이터의 양(GB 단위)에 따라 과금됩니다.
  • Serverless (서버리스) Monitoring: AWS Lambda(람다) 같은 서버리스 함수 호출 횟수에 따라 과금됩니다.

각 항목이 어떻게 비용으로 연결되는지 감이 오시죠? 그럼 이제 이 항목들을 어떻게 줄일 수 있을지 실전 전략을 살펴봅시다!

실전 최적화 전략: Datadog 비용 절감 노하우

1. 불필요한 호스트, 미리미리 걸러내기 📉

가장 기본적이면서도 중요한 부분입니다. Datadog Agent를 설치했지만 실제 모니터링이 필요 없는 개발/테스트 서버나, 일시적으로 스케일 아웃(Scale-out) 되었다가 사라지는 컨테이너 등에 불필요하게 Agent가 배포되어 요금이 나가는 경우가 많습니다. 제가 겪었던 경험으로는, CI/CD 파이프라인에서 테스트용으로 잠시 띄워지는 컨테이너들이 Agent를 물고 사라지면서 비용이 계속 나갔던 적도 있었어요. ⚠️

  • Agent 배포 전략 재검토: 모든 인스턴스에 무조건 Agent를 설치하기보다는, 정말 모니터링이 필요한 프로덕션(Production) 환경에만 집중적으로 배포하는 것을 고려해보세요.
  • 태그(Tag) 활용: Datadog은 태그를 이용해 인스턴스를 분류하고 필터링할 수 있습니다. 예를 들어, env:dev 태그가 붙은 호스트는 Agent에서 데이터를 수집하지 않도록 설정하거나, Datadog UI에서 제외할 수 있어요. datadog.yaml 파일에 DD_HOSTNAME 환경 변수나 tags 설정을 활용하는 거죠.
  • # datadog.yaml 예시 init_config: instances: tags: - environment:production - team:backend # Datadog Agent가 특정 호스트를 모니터링하지 않도록 설정 # 이는 Datadog UI에서 호스트를 비활성화하는 것과 유사합니다. # 실제 Agent 동작을 멈추는 것은 아닙니다. # 특정 태그를 가진 호스트의 메트릭 수집을 막고 싶다면, # 아래 metrics_collection_enabled를 false로 설정하거나, # Datadog에서 메트릭 필터를 활용해야 합니다.

2. 고비용 커스텀 메트릭, 제대로 관리하기 💸

Datadog 비용 최적화의 핵심 중 하나가 바로 커스텀 메트릭 관리입니다. 특히 카디널리티(Cardinality)가 높은 메트릭은 폭탄을 안겨줄 수 있어요. 카디널리티는 메트릭의 태그 조합이 얼마나 다양한지를 의미합니다. 예를 들어, 사용자 ID나 요청 ID와 같은 고유한 값을 태그로 붙이면 카디널리티가 기하급수적으로 늘어나 비용이 급증할 수 있습니다.

제가 겪었던 일 중 하나는, 개발자가 디버깅용으로 각 요청마다 고유한 ID를 태그로 붙여서 메트릭을 전송했었는데, 이걸 몇 시간 방치했다가 다음 달 청구서에 수백 달러가 추가된 것을 보고 식겁했던 기억이 있습니다. 😱

  • DogStatsD(독스탯츠디) 신중하게 사용: 애플리케이션에서 직접 메트릭을 전송할 때 사용하는 DogStatsD는 매우 유용하지만, 태그 사용에 주의해야 합니다. 고유한 값을 태그로 사용하지 않도록 애플리케이션 코드를 검토하세요.
  • 메트릭 필터링: datadog.yaml 파일에서 필요 없는 메트릭을 제외하거나, 특정 태그가 붙은 메트릭만 수집하도록 설정할 수 있어요. 이 방법으로 불필요한 고카디널리티 메트릭은 원천 차단하는 거죠. 💡
  • # datadog.yaml 예시 listeners: - port: 8125 protocol: udp metrics: # 특정 메트릭을 제외하거나 포함시키는 필터링 규칙 # exclude_metrics: ['my_app.debug_metric.*'] # include_metrics: ['my_app.important_metric'] # 와일드카드(*)를 사용하여 특정 패턴을 가진 메트릭을 제외할 수 있습니다. exclude_metrics: - 'my_app.request.id.*' # 고유한 요청 ID가 포함된 메트릭 제외 - 'my_app.debug.temp_counter' # 임시 디버그용 메트릭 제외
  • Datadog UI에서 메트릭 비활성화: Datadog 웹 UI의 'Metric Summary (메트릭 요약)' 페이지에서 불필요한 메트릭을 비활성화할 수도 있어요. 이건 Agent 레벨에서 막는 것보다 우선순위는 낮지만, 빠르게 대응할 수 있는 방법입니다.
Datadog Agent 설정 및 데이터 흐름 다이어그램: datadog.yaml 파일을 통한 메트릭, 로그, 트레이스 필터링

Datadog Agent의 설정 파일(datadog.yaml)을 통해 메트릭, 로그, 트레이스 데이터 수집 방식을 세밀하게 제어하여 Datadog 비용을 최적화하는 과정을 보여줍니다.

3. 로그는 똑똑하게 수집하고 보관하기 🪵

로그는 시스템의 심장 박동과 같아서 중요하지만, 양이 엄청나게 많아지면 Datadog 비용의 큰 부분을 차지합니다. 특히 개발 초기에 모든 로그를 무작정 Datadog으로 보내다가 낭패를 보는 경우가 많습니다.

  • 로그 프로세싱 파이프라인(Log Processing Pipelines) 활용: Datadog은 로그를 수집하기 전에 필터링하고 파싱(Parsing)할 수 있는 강력한 파이프라인 기능을 제공합니다. 여기서 불필요한 로그는 드롭(Drop) 시키고, 중요한 로그만 수집하도록 설정할 수 있어요.
  • 제외 필터(Exclusion Filters) 설정: 특정 패턴을 가진 로그(예: 헬스 체크 로그, 디버그 로그)는 아예 Datadog으로 보내지 않도록 Agent 레벨에서 제외 필터를 설정할 수 있습니다. 이는 비용 절감에 직접적인 영향을 줍니다.
  • # datadog.yaml 예시 logs: - type: file path: /var/log/my-app/*.log service: my-app source: my-app log_processing_rules: - type: exclude_at_match name: 'exclude_health_checks' pattern: 'GET /healthz' - type: exclude_at_match name: 'exclude_debug_logs' pattern: '\[DEBUG\].*'
  • 보존 정책(Retention Policy) 최적화: 모든 로그를 1년씩 보관할 필요는 없습니다. 규제 준수(Compliance)나 감사(Audit) 목적으로 필요한 로그는 장기 보존하고, 운영에 필요한 로그는 7일, 30일 등으로 짧게 보존하는 전략을 세워보세요. Datadog Log Rehydration(로그 재수화) 기능을 통해 저비용 스토리지에 보관된 로그를 필요할 때 다시 불러올 수도 있어요.

4. APM/Tracing 데이터, 필요한 만큼만! 🚀

APM과 트레이싱은 애플리케이션의 병목 지점을 찾고 성능 문제를 해결하는 데 필수적입니다. 하지만 모든 요청을 트레이싱하면 역시 비용이 많이 들 수 있어요.

  • 샘플링(Sampling) 설정: Datadog APM Agent는 트레이스를 수집할 때 샘플링 비율을 설정할 수 있습니다. 예를 들어, 10%만 수집하도록 설정하면 비용을 크게 절감할 수 있어요. 프로덕션 환경에서는 100% 트레이싱이 필요할 수도 있지만, 개발/테스트 환경에서는 훨씬 낮은 비율로 충분합니다. DD_TRACE_SAMPLE_RATE 환경 변수를 활용해보세요.
  • # 환경 변수 설정 예시 export DD_TRACE_SAMPLE_RATE=0.1 # 10%의 트레이스만 수집
  • 데이터 보존 기간 조정: 로그와 마찬가지로 트레이스 데이터도 보존 기간을 조정하여 비용을 절감할 수 있어요.

5. 서버리스 환경, 놓치지 않는 최적화 ☁️

AWS Lambda 같은 서버리스 환경은 짧은 시간 동안 많은 호출이 발생할 수 있어서 Datadog 비용 관리가 중요합니다. Datadog은 서버리스 모니터링 기능을 제공하지만, 이 역시 잘 설정해야 합니다.

  • Lambda Layer(람다 레이어) 활용: Datadog Lambda Layer를 사용하면 Agent를 직접 설치할 필요 없이 쉽게 모니터링을 설정할 수 있어요. 하지만 이 레이어 설정 시 불필요한 데이터를 보내지 않도록 주의해야 합니다.
  • 로그 기반 수집: Lambda 함수의 CloudWatch Logs(클라우드워치 로그)를 통해 메트릭을 수집하도록 설정하면, 별도의 Datadog Lambda Invocation(호출) 기반 과금 대신 로그 과금으로 통합할 수 있어서 비용 효율적이거든요. DD_FLUSH_TO_LOG 환경 변수를 true로 설정하여 Agent의 메트릭을 로그로 출력하게 할 수 있습니다.
  • 페이로드(Payload) 캡처 제어: DD_CAPTURE_LAMBDA_PAYLOAD 환경 변수를 통해 Lambda 함수의 입력/출력 페이로드 캡처 여부를 제어할 수 있어요. 민감하거나 불필요한 페이로드를 캡처하지 않도록 설정하여 비용을 절감하세요.

최적화 효과, 직접 확인하기 🎉

이렇게 여러 가지 전략을 적용했다면, 이제 그 효과를 확인해야겠죠? Datadog은 사용량과 관련된 정보를 투명하게 제공합니다. 제가 직접 최적화 작업을 한 후에는 항상 이 페이지를 먼저 확인합니다.

  • Datadog Usage 페이지: Datadog 웹 UI의 'Usage (사용량)' 페이지에 접속하면 호스트, 커스텀 메트릭, 로그, APM 등 각 컴포넌트별 사용량을 일별, 월별로 상세하게 확인할 수 있습니다. Datadog 비용 최적화 작업을 진행한 후 이 페이지에서 변화를 모니터링하면서 실제 절감 효과를 눈으로 확인할 수 있어요. 그래프가 아래로 꺾이는 걸 보면 그렇게 뿌듯할 수가 없습니다! ✅
  • 클라우드 비용 탐색기(Cost Explorer) 연동: 클라우드 환경(AWS, Azure, GCP 등)의 비용 탐색기와 Datadog 비용을 함께 분석하여 전체적인 클라우드 지출에서 Datadog이 차지하는 비중과 변화를 파악하는 것도 좋은 방법입니다.
  • 비용 알림(Cost Alerts) 설정: 예기치 않은 비용 증가를 방지하기 위해 특정 임계값을 초과하면 알림을 받도록 설정해두는 것을 강력히 추천합니다. '이 정도면 괜찮겠지?' 하다가 뒷통수 맞는 경우가 종종 있거든요. 😅
Datadog 사용량 대시보드 스크린샷: 최적화 후 비용 절감 효과를 보여주는 그래프와 각 컴포넌트별 사용량

Datadog Usage 대시보드를 통해 Datadog 비용 최적화 노력의 결과를 시각적으로 확인하고, 비용 절감 효과를 분석합니다.

마무리하며: 지속적인 관심과 최적화 💡

Datadog 비용 최적화는 한 번의 노력으로 끝나는 것이 아닙니다. 시스템은 계속 변화하고, 애플리케이션은 발전하며, 새로운 기능이 추가될 때마다 비용 구조도 달라질 수 있어요. 지속적인 관심과 주기적인 검토가 중요합니다.

제가 13년 동안 인프라 엔지니어로 일하면서 느낀 점은, 모니터링은 단순히 문제가 생겼을 때 경고를 보내는 것을 넘어, 시스템을 이해하고 더 나아가 비용 효율적인 운영을 가능하게 하는 핵심 도구라는 것입니다. Datadog을 잘 활용하면 정말 강력한 옵저버빌리티를 구축할 수 있지만, 그만큼 현명하게 관리해야 합니다. 오늘 제가 공유해드린 팁들이 여러분의 Datadog 비용 절감에 조금이나마 도움이 되었기를 바랍니다.

다음 글에서는 Datadog의 특정 기능인 Synthetic Monitoring(합성 모니터링)을 활용하여 외부 API 의존성 문제를 해결하는 방법에 대해 다뤄볼까 합니다. 기대해주세요! 👋

Datadog 비용 최적화를 위한 핵심 전략들을 요약한 체크리스트 인포그래픽입니다.