본문으로 건너뛰기

37signals의 오픈 소스 합성 모니터링 시스템 'Upright' 소개

37signals Dev — Introducing Upright: An Open Source Synthetic Monitoring System

작성자
Ruby on Rails 소식지
발행일
2026년 02월 16일
https://dev.37signals.com/introducing-upright/

핵심 요약

  • 1 37signals는 Basecamp와 HEY 등의 서비스 운영에 사용하던 Rails 엔진 기반의 오픈 소스 합성 모니터링 시스템인 Upright를 공개했습니다.
  • 2 Upright는 Playwright를 활용한 브라우저 시뮬레이션, HTTP, SMTP, Traceroute 등 다양한 프로브를 통해 전 세계 여러 지점에서 서비스 상태를 정밀하게 감시합니다.
  • 3 Kamal과 SQLite, Prometheus 등 현대적인 오픈 소스 스택을 활용하여 저렴한 비용으로 독립적이고 확장이 용이한 모니터링 인프라를 구축할 수 있게 해줍니다.

도입

37signals는 그동안 Basecamp, HEY 등 자사 서비스를 안정적으로 운영하기 위해 내부적으로 사용해 온 합성 모니터링(Synthetic Monitoring) 시스템인 'Upright'를 오픈 소스로 공개했습니다. 기존에 사용하던 Pingdom과 같은 상용 서비스의 블랙박스적 한계와 커스터마이징 제약을 극복하고자 개발된 Upright는, 개발자가 직접 소유하고 확장할 수 있는 오픈 소스 관측성(Observability) 스택을 지향합니다. 전 세계 여러 위치에서 상태 체크를 수행하여 실제 장애와 지역적 네트워크 문제를 구분할 수 있는 기능을 제공합니다.

Upright 개요 및 주요 특징

Upright는 37signals에서 개발한 Rails 엔진 기반의 합성 모니터링 시스템입니다. 이 시스템은 전 세계 여러 지리적 위치에서 서비스의 가용성을 확인하고 문제가 발생했을 때 즉각적으로 알림을 제공합니다. 특히 상용 서비스의 제약에서 벗어나 개발자가 직접 모니터링 로직을 제어하고 확장할 수 있도록 설계되었습니다.

지원하는 4가지 프로브(Probe) 유형

Upright는 단순한 가용성 체크를 넘어 다양한 방식의 진단을 지원합니다. - Playwright 프로브: 가장 핵심적인 기능으로, 실제 브라우저를 사용하여 로그인, 워크플로우 탐색 등 엔드 투 엔드(E2E) 테스트를 수행합니다. Ruby 클래스로 작성하며, 실패 시 비디오 녹화와 로그를 캡처하여 원인 파악을 돕습니다. - HTTP 프로브: 지정된 URL에 대해 30초마다 상태 코드를 확인하는 기본적인 헬스 체크입니다. 로그는 익숙한 cURL 형식으로 기록됩니다. - SMTP 프로브: 메일 서버의 EHLO 응답성, STARTTLS 지원 여부 및 SSL 인증서 유효성을 검증합니다. - Traceroute 프로브: MTR 리포트를 활용하여 서비스로 이어지는 네트워크 경로의 홉별 지연 시간을 추적합니다.

다중 지점 모니터링 및 장애 판단

Upright는 여러 VPS 노드에 배포되어 독립적으로 프로브를 실행합니다. 이를 통해 특정 지역의 일시적인 네트워크 문제(Regional Blip)와 실제 전체 서비스 장애(Full Outage)를 명확히 구분할 수 있습니다. 예를 들어, 암스테르담 노드에서만 접속이 안 되고 다른 4개 지역에서 정상이라면 이는 지역적 이슈로 판단하여 불필요한 호출(Paging)을 방지합니다.

기술 스택 및 아키텍처

Upright는 현대적이고 효율적인 오픈 소스 기술들을 조합하여 구축되었습니다. - Rails Engine: 기존 Rails 앱에 Gem으로 추가하여 간편하게 통합 가능합니다. - SQLite & Solid Queue: 결과 저장과 백그라운드 작업 처리를 위해 사용됩니다. - Kamal: 전 세계 여러 서버로의 멀티 서버 배포를 관리합니다. - Prometheus & AlertManager: 메트릭 수집 및 알림 송출을 담당합니다. - OpenTelemetry: 트레이싱 및 로그 수집의 표준을 따릅니다. - Grafana: 수집된 데이터를 시각화하여 대시보드를 구성합니다.

비용 효율적인 운영

37signals는 DigitalOcean과 Hetzner의 저렴한 VPS를 활용하여 5개 지역에서 월 약 110달러의 비용으로 시스템을 운영 중입니다. 최소 구성인 2개 지점 운영 시 월 20달러 미만으로도 구축이 가능하여, 고가의 상용 솔루션 대비 뛰어난 가성비를 제공합니다.

시작하기 및 확장성

rails new로 생성한 앱에 upright Gem을 추가하고 설치 제너레이터를 실행하는 것만으로 기본적인 설정이 완료됩니다. 제너레이터는 Prometheus, AlertManager 설정 파일부터 Kamal 배포 템플릿까지 필요한 모든 인프라 구성 요소를 생성해 줍니다. 개발자는 Ruby 코드로 복잡한 시나리오를 작성하거나 YAML 파일로 간단한 HTTP 체크를 정의하기만 하면 됩니다.

결론

Upright는 상용 모니터링 서비스의 높은 비용과 폐쇄성을 대체할 수 있는 강력한 대안으로, 특히 Rails 생태계에 익숙한 팀에게 최적의 선택지를 제공합니다. 37signals가 이미 실무에서 검증한 도구인 만큼 안정성이 높으며, Kamal과 같은 현대적인 배포 도구와의 궁합도 뛰어납니다. 직접 소유하고 제어할 수 있는 모니터링 환경을 구축함으로써 인프라에 대한 이해도를 높이고, 장애 발생 시 원인을 더욱 빠르고 정확하게 파악할 수 있는 기반을 마련해 준다는 점이 Upright의 가장 큰 가치라고 할 수 있습니다.

댓글0

댓글 작성

댓글 삭제 시 비밀번호가 필요합니다.

이미 계정이 있으신가요? 로그인 후 댓글을 작성하세요.

0/1000
정중하고 건설적인 댓글을 작성해 주세요.