프로파일(Profiles) 도입: 알림과 프로브 관리의 새로운 패러다임
작성자: Shubam Tondare (2025년 12월 17일)
엔지니어링의 도전 과제: 데이터보다 무서운 ‘설정 관리’
분산 모니터링 시스템에서 확장성(Scalability)을 논할 때, 보통은 “초당 얼마나 많은 메트릭을 수집할 수 있는가?”라는 데이터 수집 능력에 초점을 맞춥니다. 하지만 실제 운영 환경에서 더 큰 병목으로 다가오는 것은 바로 ‘설정 관리(Configuration Management)’입니다.
최고의 성능을 내는 모니터링 도구라도 수백 대의 서버 설정을 일일이 만져야 한다면 운영팀의 생산성은 급격히 떨어집니다. EDB PEM 팀은 최근 에이전트와 서버에 프로브(Probes) 및 알림(Alerts)을 할당하는 방식에서 발생하는 구조적인 불편함을 해결했습니다.
‘템플릿’ 방식이 가졌던 한계 (The Template Bottleneck)
기존의 PEM은 프로브와 알림을 관리할 때 서로 다른 두 가지 방식을 사용했습니다.
- 프로브(Probes): 상속 모델을 따릅니다. (글로벌 기본값 -> 로컬 오버라이드)
- 알림(Alerts): 개별 할당(Instantiation) 모델을 따릅니다.
여기서 문제가 발생합니다. ‘알림 템플릿’은 존재했지만, 실제로 이를 활성화하려면 관리자가 특정 서버 ID마다 알림을 개별적으로 생성해야 했습니다.
이 방식은 $O(N)$의 복잡도를 가집니다. 즉, 100대의 새로운 DB 서버를 모니터링하려면 100번의 ‘알림 생성’ 작업(또는 알림 복사 작업)이 필요했습니다. 이는 단순히 UI상의 번거로움을 넘어, 알림의 정의가 서버의 신원(Identity)에 종속되는 유연하지 못한 데이터 모델링의 문제였습니다.
아키텍처의 혁신: ‘프로파일(Profiles)’의 등장
이 문제를 해결하기 위해, 우리는 서버/에이전트에 직접 설정을 할당하는 방식에서 벗어나 ‘프로파일(Profiles)’이라는 추상화 계층을 도입했습니다.
기술적으로 프로파일은 글로벌 정의와 서버/에이전트 인스턴스 사이를 연결하는 ‘설정 컨테이너’ 역할을 합니다.
- 프로브 오버라이드 통합: 단순한 글로벌/로컬 이분법에서 벗어나 프로파일 단위로 설정을 묶어 관리합니다.
- 알림 래퍼(Wrapper) 생성: 알림을 서버마다 개별적으로 생성하는 대신, 프로파일 내에서 단 한 번만 정의하면 됩니다.
‘구성 드리프트(Configuration Drift)’ 문제 해결
알림 관리 구조가 [알림 -> 개별 서버]에서 [알림 -> 프로파일 -> 서버 그룹]으로 바뀌면서, 구성 드리프트(설정 편차) 문제를 근본적으로 해결했습니다.
이제 프로파일 하나만 업데이트하면, 해당 프로파일과 연결된 모든 서버와 에이전트에 변경 사항이 즉시 전파됩니다. 이는 운영 모델이 ‘개별 서버 관리’에서 ‘서버 역할(Role) 관리’로 진화했음을 의미합니다.
결론: 단순한 버튼 그 이상의 변화
사용자에게 ‘프로파일’은 단순한 UI 드롭다운 메뉴처럼 보일 수 있습니다. 하지만 그 내부에서는 PEM이 설정 상태를 처리하는 방식에 대한 근본적인 리팩토링이 이루어졌습니다.
선형적인 설정 모델에서 객체 지향적(Object-oriented) 접근 방식으로 전환함으로써, 이제 고객들은 10대의 서버를 관리할 때와 똑같은 노력으로 수천 대의 서버를 관리할 수 있게 되었습니다.
메일: salesinquiry@enterprisedb.com

