#DevOps

대규모 환경에서의 신뢰성 있는 모니터링 구축

대규모 환경에서의 신뢰성 있는 모니터링 구축
01

Summary

장애 상황에서도 꺼지지 않는 등대: 에어비앤비가 모니터링 순환 의존성을 해결한 방법

인프라가 무너져도 관찰 가능성은 살아남아야 한다, 에어비앤비의 고가용성 메트릭 플랫폼 설계기

본 아티클은 에어비앤비가 대규모 인프라 운영 중 직면한 모니터링 시스템의 '순환 의존성' 문제를 어떻게 해결했는지 상세히 다룹니다. 관찰 대상과 관찰 도구를 물리적/논리적으로 격리하고, 메타 모니터링을 통해 시스템 자체의 신뢰성을 확보한 엔지니어링 접근법을 공유합니다.

  • 01모니터링 시스템의 가용성이 관찰 대상 시스템보다 높아야 한다는 핵심 원칙 제시
  • 02공유 쿠버네티스 클러스터의 위험성을 피하기 위한 전용(Dedicated) 클러스터 도입
  • 03Istio 서비스 메시의 한계를 극복하기 위한 커스텀 Envoy L7 수집 계층 구축
  • 04텔레메트리 트래픽 폭증이 비즈니스 트래픽에 영향을 주지 않도록 네트워크 경로 격리
  • 05Prometheus와 AWS CloudWatch를 결합한 데드 맨 스위치 기반의 메타 모니터링 구현

RECOMMENDATION

대규모 마이크로서비스 아키텍처를 운영하며 인프라 장애 시 모니터링 먹통 현상을 경험해 본 플랫폼 엔지니어 및 SRE에게 이 설계 패턴을 강력히 권장합니다.

The Problem

에어비앤비의 모니터링 시스템이 관찰 대상인 공유 쿠버네티스 인프라와 서비스 메시(Istio)에 의존하는 순환 의존성 문제가 발생했습니다. 이로 인해 인프라 장애 발생 시 모니터링 도구까지 함께 중단되어 장애 진단이 불가능해지는 리스크가 존재했습니다.

The Solution

모니터링 부하를 전용 관리형 쿠버네티스 클러스터로 격리하고, 서비스 메시 대신 Envoy 기반의 독립적인 L7 네트워크 계층을 구축했습니다. 또한, 모니터링 시스템 자체를 감시하기 위해 별도의 프로메테우스 인스턴스와 데드 맨 스위치(Dead Man's Switch) 메커니즘을 도입한 메타 모니터링 체계를 구축했습니다.

The Result

인프라와 모니터링 간의 의존성을 성공적으로 분리하여 장애 상황에서도 안정적인 가시성을 확보했습니다. 1,000개 이상의 서비스에서 발생하는 대규모 텔레메트리 트래픽을 비즈니스 트래픽과 격리함으로써 네트워크 혼잡에 따른 성능 저하 문제를 해결했습니다.

Trade-off

독자적인 네트워크 프록시 계층을 운영함에 따라 서비스 메시를 사용할 때보다 관리 포인트가 증가했습니다. 컴퓨팅 계층에서는 격리를 위해 전용 클러스터를 유지해야 하므로 공유 자원 활용 측면에서의 효율성이 일부 희생되었습니다.

03

Key Concepts

Concept · 01

Circular Dependency (순환 의존성)

시스템 A가 시스템 B에 의존하고, 동시에 시스템 B도 시스템 A에 의존하는 구조를 의미합니다.

  • 모니터링 도구가 자신이 감시하는 쿠버네티스 인프라 위에서 실행될 때 발생하는 리스크로 지목되었습니다.
Concept · 02

Meta-monitoring (메타 모니터링)

모니터링 시스템 자체의 상태와 가용성을 감시하기 위해 구축된 상위 레벨의 모니터링 체계입니다.

  • 별도의 고가용성 프로메테우스 클러스터를 사용하여 메트릭 파이프라인의 이상 유무를 감시합니다.
Concept · 03

Dead Man's Switch (데드 맨 스위치)

정상 신호가 주기적으로 도달하지 않을 때 자동으로 경보를 작동시키는 안전 장치입니다.

  • 프로메테우스에서 외부 SNS 및 CloudWatch로 주기적 신호를 보내, 모니터링 시스템 전체가 다운된 상황을 감지합니다.