이 글은 최근 옵저버빌리티 비용이 증가하는 배경과 이 비용을 절감하는 방법을 정리했습니다. 앞서 저는 Grafana Labs, Splunk, Dynatrace, Chronosphere 등 옵저버빌리티 기업과 Dimensional Research 등 시장조사기관이 제시한 2024년 옵저버빌리티 트렌드를 소개한 바 있는데요. 그중 하나로 옵저버빌리티 비용 절감 노력을 다뤘습니다.

오늘날 옵저버빌리티 데이터가 증가하면서 데이터 수집·저장 비용도 많이 들어가는데요. 기업이 멀티 클라우드나 클라우드 네이티브 환경으로 전환하면서 생성되는 데이터양이 늘고, 관련 비용이 커졌고요. 또 기업이 소비자의 서비스 만족도를 향상하고자 시스템 상태를 면밀히 모니터링하다 보니 이 또한 옵저버빌리티 비용에 영향을 줍니다. 앞으로 디지털 환경이 확산하고 더 복잡해지면서, 이 비용은 더 커질 걸로 예상되는데요. 조직 차원에서 옵저버빌리티 비용을 최적화하는 노력이 필요합니다.

옵저버빌리티 비용에는 도구 비용, 사용 메트릭, 리소스 활용, 데이터 관리, 공급업체 가격 모델 등 다양한 요소가 영향을 미치는데요. 지금부터 옵저버빌리티 비용이 늘어나는 배경과 이 비용을 줄이는 방법을 다각도로 살펴보겠습니다.

옵저버빌리티 비용 증가 배경

출처=픽사베이 | 인포그랩 GitLab
출처=픽사베이

옵저버빌리티 비용이 증가하는 이유는 복합적입니다. 클라우드 네이티브 환경, 임시 서버, SRE(사이트 신뢰성 엔지니어링)와 카오스 엔지니어링 영향으로 관련 데이터가 늘어나면서 옵저버빌리티 비용이 더 들기도 하고요. 데이터를 인덱싱하고, 이를 핫 스토리지에 저장하면서 옵저버빌리티 비용이 증가하기도 하죠. 아울러 CPU, 메모리 소비에 따른 인프라 비용 상승, 복잡한 옵저버빌리티 비용 구조도 영향을 줍니다.

업계 전문가들은 옵저버빌리티 비용 증가 배경을 여러 측면에서 분석하는데요. 미국 옵저버빌리티 기업 Chronosphere의 시니어 매니저인 Amanda Mitchell, 또 다른 미국 옵저버빌리티 기업 Coralogix의 Developer Advocate인 Chris Cooney, 미국 클라우드 모니터링 기업 MetricFire의 비즈니스 운영 매니저인 Elliot Langston의 분석을 종합하면 다음과 같습니다.

1. 클라우드 네이티브 환경

오늘날 클라우드 네이티브 환경은 방대한 양의 모니터링 데이터를 생성하죠. 이 양은 기존 가상 머신(VM) 기반 환경보다 10~100배 더 많다고 합니다. 이는 모든 컨테이너/마이크로서비스가 단일 VM만큼 많은 데이터를 생성하기 때문이라고 하죠. 아울러 서비스 소유자는 메트릭을 추가해 더 세부적으로 측정하고 추적하려 하는데요. 컨테이너를 수천 개로 확장하고, 복잡한 데이터를 수집하면 데이터양을 관리하기 어렵다고 합니다.

생성되는 메트릭 데이터양이 늘어남에 따라 비용과 복잡성은 증가하는데요. 심지어 개발자 한 명이 새로운 코드를 배포하는 것만으로도 비용은 예기치 않게 급증할 수 있다고 하고요. 이에 옵저버빌리티 데이터 비용이 기본 인프라 비용을 초과할 수 있습니다.

2. 임시 서버 보편화

과거에는 서버 한 대를 몇 년 동안 운영하기도 했습니다. 그러나 오늘날 클라우드 중심 환경에서는 서버를 필요에 따라 가동하고, 스팟 인스턴스 사용도 늘었는데요. 이로써 마이크로서비스와 컨테이너화 특성에 따라 임시 서버가 아주 흔해졌죠. 이 또한 인프라의 복잡성과 데이터양을 늘립니다.

3. SRE와 카오스 엔지니어링

SRE는 일반적으로 카오스 엔지니어링을 사용해 애플리케이션을 테스트하고, 의도적으로 장애를 도입해 복원력을 검증합니다. 예를 들어, SRE는 시스템의 반응 방식을 확인하기 위해 서버를 파괴하기도 하죠. 그 결과로 나타나는 장애는 일상적인 시스템 동작에는 나타나지 않는데요. 이러한 테스트 모드와 시나리오를 다루려다 보니 옵저버빌리티 데이터가 증가합니다.

4. 데이터 인덱싱과 핫 스토리지

옵저버빌리티 도구가 방대한 양의 데이터를 수집하고 처리하면, 기업이 문제가 있는 곳을 파악하고 애플리케이션과 웹사이트 상태를 잘 관리할 수 있는데요. 그러려면 검색과 쿼리 작업 속도를 높이도록 데이터를 인덱싱하고요. 자주, 빨리 검색하도록 데이터를 핫 스토리지에 저장해야 합니다. 그러나 핫 스토리지가 매우 비싸 옵저버빌리티 비용은 늘어나죠.

5. CPU, 메모리 소비

기존 옵저버빌리티 도구는 에이전트에 기반한 데이터 수집기에 의존하는데요. 이는 상당한 양의 CPU와 메모리를 소비하고요. 그 결과, 인프라 비용이 많이 증가합니다.

6. 복잡한 옵저버빌리티 비용 구조

대부분 옵저버빌리티 도구의 비용 구조는 복잡한데요. 이들의 옵저버빌리티 비용은 수집하는 데이터양, 에이전트 수, 사용자 수에 따라 달라집니다. 이러한 요소가 하나라도 늘어나면 옵저버빌리티 비용도 함께 커질 수 있죠.

옵저버빌리티 비용 절감 방법

출처=픽사베이 | 인포그랩 GitLab
출처=픽사베이

옵저버빌리티 비용이 증가하는 이유가 다양한 만큼 비용 절감 방안도 다각도로 모색할 수 있습니다. 데이터 분류, 인덱싱, 라우팅, 변환, 보관, 필터링 등 여러 단계에서 데이터를 적절히 관리하면 옵저버빌리티 비용을 최적화하는 데 도움이 되죠. 미국 옵저버빌리티 기업인 Logz.io와 또 다른 미국 옵저버빌리티 기업 Coralogix의 Developer Advocate인 Chris Cooney는 옵저버빌리티 비용 절감 방안으로 다음을 제안합니다.

1. 데이터 파악과 분류

데이터를 정확히 파악하고 분류하는 건 텔레메트리 데이터의 컴퓨팅 공간과 비용을 줄이는 첫걸음입니다. 먼저 데이터의 다양한 사용 사례를 이해하고요. 즉시 액세스가 필요한 데이터, 변환할 수 있는 데이터, 콜드 스토리지에 보관할 수 있는 데이터, 완전히 필터링할 수 있는 데이터로 구분합니다. 또는 매일 검색하는 데이터, 대시보드와 알림에 사용하지만 자주 검색하지 않는 데이터, 컴플라이언스 목적으로만 보관하는 데이터로 분류할 수도 있죠. 이는 기본적인 데이터 분류로 이해하면 됩니다.

2. 모든 데이터 인덱싱 X

인덱싱은 비용이 매우 많이 드는데요. 이는 자주 검색하는 데이터로 제한하는 게 적절합니다. 옵저버빌리티 도구는 일반적으로 OpenSearch와 같은 도구에서 수집된 모든 데이터를 인덱싱하고요. 시간이 지나면서 이를 S3처럼 덜 비싼 스토리지 옵션으로 옮깁니다. 모든 데이터를 인덱싱하는 건 경제적이지도, 효율적이지도 않은데요. 수집된 모든 데이터가 빠른 검색에 사용되지는 않고요. 데이터의 30%는 전혀 쓰이지 않기 때문입니다.

3. 적절한 스토리지로 라우팅

데이터를 분류하면 빨리 쿼리해야 할 데이터, 전혀 쿼리하지 않을 데이터 등을 파악할 수 있죠. 이러한 카테고리에 따라 데이터를 보관하거나, 핫 스토리지 SSD에 저장하도록 라우팅하면 비용 관리에 도움이 됩니다. 예를 들어, 매우 중요하고 자주 검색하는 데이터만 인덱싱하고, 비싼 SSD에 저장하고요. 운영 가치를 더하지 않는 컴플라이언스 데이터는 비싸지 않은 아카이브 스토리지로 전송하는 거죠.

4. 로그→메트릭 변환

데이터 변환은 데이터의 컴퓨팅 공간을 줄여 옵저버빌리티 비용을 감축하는 데 도움이 됩니다. 로그를 메트릭으로 변환하는 것도 한 방법인데요. 로그는 크기 때문에 저장하려면 비싸고요. 로그 데이터의 모든 필드가 유용한 것도 아닙니다. 로그에 유용한 필드가 제한적이면, 이를 시계열 메트릭으로 변환하고 원본 로그를 스토리지에서 삭제하는 게 좋다고 하죠. 메트릭은 비교적 작고, 저장하기에 비싸지 않다는데요. 이 데이터는 여전히 인덱싱할 수 있기에 여기서도 동일한 인사이트를 얻을 수 있죠. 인덱싱할 데이터가 훨씬 더 적다 보니 비용도 최적화할 수 있고요.

아울러 많은 로그를 인덱싱하고 쿼리해야 하지만, 어떤 로그는 모니터링만 하면 된다는데요. 특히 HTTP 로그는 애플리케이션 로그와 동일한 디버깅 정보를 포함하지 않고요. 이에 동일한 방식으로 검색하고 쿼리하지 않아도 된다고 합니다. HTTP 로그를 시각화하면, 프로덕션 이슈를 보여주는 급등, 급락 현황을 모니터링할 수 있는데요. 이처럼 로그를 모니터링 사용 사례에 활용할 때, 이는 경량 메트릭으로 변환할 수 있고요. 그 결과, 필요한 컴퓨팅 파워와 비용을 크게 절약할 수 있습니다.

5. 데이터 보존 관리

데이터 유형에 따라 보존 요건이 다르기에 모든 데이터를 무기한 저장할 필요는 없는데요. 예를 들어, 보안 관련 로그는 짧은 기간에만 관련 있는 디버그 로그와 비교해 더 오랜 기간 보관해야 할 수 있죠. 데이터 유형에 맞춰 데이터를 보관하면, 컴플라이언스나 트러블슈팅 기능을 저하하지 않고 스토리지 비용을 낮출 수 있습니다.

6. 쓸모없는 데이터 제거 프로세스 간소화

쓸모없는 데이터를 없애는 프로세스를 간소화하면 불필요한 데이터를 효과적으로 필터링할 수 있고요. 이로써 데이터양을 줄이고, 옵저버빌리티 비용을 절감하도록 이끌 수 있습니다. 옵저버빌리티 실무자들은 실제 전혀 사용되지 않는, 방대한 양의 데이터를 수집하는데요. Logz.io는 ‘전체 데이터양의 3분의 1이 유용한 인사이트를 제공하지 않는다’는 점을 발견했다고 합니다.

이는 쓸모없는 데이터를 확인하고 제거하는 과정이 복잡해 불필요한 데이터를 미리 필터링하지 못한 영향으로 분석되는데요. 엔지니어링팀은 데이터를 수동으로 찾아 중요한 정보와 노이즈를 분리하고요. 그다음, 관련 데이터 수집 구성요소를 재구성해 데이터를 필터링한다고 합니다. 수신 데이터의 목록을 만들고, 정크 데이터를 필터링하는 도구가 있으면 이 프로세스를 간소화할 수 있다는데요. 이로써 정크 데이터를 더 쉽게 확인하고 제거해 데이터양을 줄일 수 있고요. 시스템의 가시성을 약화하지 않으면서 컴퓨팅 공간과 관련 비용도 절약할 수 있습니다.

맺음말

지금까지 옵저버빌리티 비용이 증가하는 배경과 이 비용을 절감하는 방법을 살펴봤습니다. 이 글의 요점은 다음과 같은데요.

  1. 클라우드 네이티브 환경, 임시 서버, SRE와 카오스 엔지니어링 영향으로 옵저버빌리티 데이터가 늘어나면서 옵저버빌리티 비용이 커지고 있습니다.
  2. 데이터를 인덱싱하고, 이를 핫 스토리지에 저장하면서 옵저버빌리티 비용이 증가하기도 합니다.
  3. CPU, 메모리 소비에 따른 인프라 비용 상승, 복잡한 옵저버빌리티 비용 구조도 영향을 줍니다.
  4. 이 비용을 줄이려면 먼저 데이터를 정확히 파악하고 분류합니다.
  5. 인덱싱은 비용이 매우 많이 들기에 자주 검색하는 데이터로 제한합니다.
  6. 데이터를 카테고리에 따라 적절한 스토리지로 라우팅합니다.
  7. 필요에 따라 로그를 메트릭으로 변환합니다.
  8. 데이터 유형에 맞춰 데이터를 보관하고, 모든 데이터를 무기한 저장하지 않습니다.
  9. 쓸모없는 데이터를 없애는 프로세스를 간소화해 불필요한 데이터를 효과적으로 필터링합니다.

참고 자료

  1. 10 critical observability cost factors
  2. Top Ways to Reduce Your Observability Costs: Part 1
  3. Top Ways to Reduce Your Observability Costs: Part 2
  4. How To Save Money On Your Observability Costs
  5. How to Tackle Spiraling Observability Costs
  6. 4 Tips to Reduce Your Observability Costs
  7. A DIY Framework for Optimizing Observability Costs
  8. Optimize Your Observability Spending in 5 Steps
  9. 지금 주목해야 할 옵저버빌리티 트렌드 5가지

지금 이 기술이 더 궁금하세요? DevOps 액셀러레이터 인포그랩에 문의하세요.