관측성과 모니터링에 대한 심층 이해

날아올라돼지야·2024년 8월 29일
0

이번 강의에서는 관측성(Observability)모니터링(Monitoring) 에 대해 깊이 있게 다루겠습니다. 이 두 개념은 마이크로서비스 시스템의 내부 상태를 이해하고 문제를 해결하는 데 매우 중요한 역할을 합니다.

관측성(Observability)란 무엇인가?

관측성은 시스템의 내부 상태를 외부로 드러나는 데이터를 통해 이해하는 능력을 의미합니다. 마이크로서비스의 관점에서 관측성은 메트릭스, 로그, 추적 데이터 등을 수집하고 분석하여 시스템 내부가 어떻게 작동하고 있는지 파악하는 것을 목표로 합니다.

예를 들어, 관측성을 통해 특정 마이크로서비스가 들어오는 요청을 얼마나 잘 처리하고 있는지, 얼마나 많은 오류를 발생시키고 있는지를 파악할 수 있습니다. 관측성의 기본이 되는 세 가지 주요 요소는 다음과 같습니다:

  1. 메트릭(Metrics): 시스템의 건강 상태를 나타내는 정량적 측정값입니다. CPU 사용량, 메모리 사용량, 응답 시간 등을 추적할 수 있으며, 이를 통해 시스템 성능을 평가하고 건강 상태를 모니터링할 수 있습니다.

  2. 로그(Logs): 시스템 내부에서 발생하는 이벤트의 기록입니다. 로그는 메서드 호출 시 실행된 이벤트를 기록하며, 오류, 예외 및 기타 예기치 않은 이벤트를 추적하는 데 사용됩니다. 로그는 문제를 디버깅할 때 매우 중요한 역할을 합니다.

  3. 추적(Traces): 시스템 내에서 요청이 이동한 경로를 기록합니다. 마이크로서비스 네트워크에서는 하나의 요청이 여러 마이크로서비스를 거치는데, 추적을 통해 이 경로를 파악하고 각 서비스 또는 메서드에서의 성능을 분석할 수 있습니다.

이 세 가지 데이터를 수집하고 분석함으로써 마이크로서비스의 내부 상태를 이해할 수 있으며, 이를 통해 성능 병목현상을 식별하고 문제를 해결할 수 있습니다.

모니터링(Monitoring)이란 무엇인가?

모니터링 은 마이크로서비스 환경에서 애플리케이션의 상태를 확인하고, 알려진 장애 상태에 대해 알림을 설정하는 것을 의미합니다. 모니터링을 통해 대시보드와 알림 시스템을 구축하고, 시스템이 문제를 일으키기 전에 이를 파악할 수 있습니다.

예를 들어, 특정 컨테이너의 CPU 사용량이 80%를 초과할 경우, 알림을 설정하여 이를 즉시 파악하고 추가적인 인스턴스를 배포함으로써 장애를 예방할 수 있습니다.

모니터링은 마이크로서비스의 성능 및 건강 상태를 추적하고 문제를 식별하며, 이를 통해 시스템의 가용성과 안정성을 유지하는 데 필수적입니다.

관측성과 모니터링의 차이점

관측성과 모니터링은 동일한 유형의 데이터를 사용하여 마이크로서비스에 대한 통찰력을 제공합니다. 하지만 그 접근 방식에는 차이가 있습니다:

  • 목적: 모니터링은 문제를 식별하고 해결하는 것을 목적으로 하며, 관측성은 시스템의 내부 상태를 이해하는 것을 목적으로 합니다.
  • 접근 방식: 모니터링은 반응적(reactive)인 접근 방식을 취하며, 문제가 발생한 후에 이를 탐지하고 대응합니다. 반면 관측성은 선제적(proactive)인 접근 방식을 취하여, 문제 발생 이전에 시스템의 내부 상태를 분석하고 잠재적인 문제를 파악합니다.
  • 데이터 활용: 모니터링은 주로 메트릭스, 로그, 추적 데이터를 활용하며, 관측성은 이들 데이터에 더해 시스템의 동작을 이해하기 위한 추가적인 데이터를 포함합니다.

관측성과 모니터링의 관계

관측성과 모니터링은 상호 보완적인 관계를 가지며, 함께 사용하여 마이크로서비스의 안정성과 성능을 개선할 수 있습니다. 모니터링이 데이터를 수집하는 것에 중점을 둔다면, 관측성은 수집된 데이터를 통해 시스템의 동작을 이해하는 데 중점을 둡니다.

요약:

  • 모니터링 은 시스템에서 발생하는 문제를 식별하고, 이를 해결하기 위해 반응적으로 대응합니다.
  • 관측성 은 시스템의 동작을 선제적으로 이해하고, 이를 통해 문제를 예방하고 시스템 성능을 최적화합니다.

이번 강의에서는 관측성과 모니터링의 기본 개념과 그 차이점을 알아보았습니다. 두 개념은 마이크로서비스 환경에서 모두 중요한 역할을 하며, 이를 효과적으로 활용함으로써 시스템의 안정성과 성능을 개선할 수 있습니다. 다음 강의에서는 이를 어떻게 구현하고 사용하는지에 대해 더 깊이 알아보겠습니다. 감사합니다!

profile
무슨 생각하며 사니

0개의 댓글