Datadog을 AWS와 통합할 경우 Datadog에서는 주기적으로 AWS CloudWatch Metrics API를 호출하게 됩니다.
이 경우에 미비하지만 CloudWatch Metrics API 비용이 발생됩니다. Datadog AWS 크롤러의 기본 주기는 10분입니다.
이번 포스팅은 Datadog 사용 시 AWS CloudWatch Metrics API 비용을 어떻게 절약할 수 있는지 알아봅니다.
CloudWatch API 비용 구조
CloudWatch는 메트릭 데이터 요청에 대해 비용을 부과합니다. 기본적으로 1,000개의 메트릭 요청당 $0.01가 청구되며, 이는 Datadog이 AWS 통합에서 얼마나 많은 메트릭을 요청하는지에 따라 달라집니다. 비용을 절감하기 위해서는 수집하는 메트릭 수를 줄여야 하며, 이는 AWS 통합 타일에서 불필요한 네임스페이스를 비활성화하는 방법으로 가능합니다.
먼저 아래와 같이 CloudWatch에서 수집하는 Metrics의 개수를 확인합니다.
그리고 아래 공식에 대입하면 CloudWatch 비용을 계산할 수 있습니다.
cost_to_crawl_once = (num_of_metrics / 1000) * 0.01
cost_to_crawl_hour = cost_to_crawl_once * crawls_per_hour(Default 6)
cost_to_crawl_month = cost_to_crawl_hour * 24 * 30
예를 들어 위와 같이 615 개의 메트릭이 존재하면 약 $25 정도 비용이 지출됩니다. 그러나 Datadog에서도 실제로 발생되는 메트릭만 조회하기 때문에 위 비용보다는 적습니다.
비용 절감을 위한 주요 방법
1. 리전 필터링: 첫 번째 방법은 AWS 통합 시 General에서 사용하는 리전만 필터링 하는 방안입니다. 현재 사용하는 리전만 선택하여 CloudWatch 비용을 절약할 수 있습니다.
2. 서비스 필터링: AWS 계정에서 특정 서비스가 많은 메트릭을 생성하는지 파악한 후, 불필요한 서비스의 경우 비활성화해 메트릭 수를 줄일 수 있습니다. 예를 들어, Auto Scaling 등에서 다량의 메트릭을 수집하는 경우, 해당 비활성화할 수 있습니다.
3. 태그 필터링: EC2, Lambda 등의 특정 서비스에서 태그를 기반으로 필터링을 적용해 필요한 메트릭만 수집할 수 있습니다. 예를 들어 monitoring:true 입력 시에 해당 메타 태그가 있는 리소스만 메트릭을 수집합니다.
4. 크롤러 빈도 조정: 기본적으로 Datadog은 10분 간격으로 메트릭을 수집하지만, 이를 30분 간격으로 조정하면 메트릭 수집 주기가 줄어들어 비용을 약 1/3로 절감할 수 있습니다. 이는 Datadog의 서포트티켓을 통해 요청하면 가능합니다.
위와 같은 전략을 사용해 Datadog을 통해 AWS 통합 시 AWS CloudWatch 비용을 줄일 수 있습니다.