🌳 고급 devops
Observability가 뭔가요?
쉽게 이해하기
자동차 계기판을 생각해보세요. 속도계, 연료 게이지, 엔진 경고등 등을 통해 차의 상태를 실시간으로 파악할 수 있죠. Observability도 마찬가지로 시스템의 '계기판'을 만들어 내부에서 무슨 일이 일어나는지 실시간으로 파악할 수 있게 해줍니다.
핵심 정리
시스템 내부 상태를 외부에서 로그, 메트릭, 트레이스를 통해 관찰하고 이해할 수 있는 능력입니다.
자세히 알아보기
Observability(관찰 가능성)는 모니터링을 넘어선 개념입니다. 단순히 '서버가 살아있는가?'를 확인하는 것이 아니라, '왜 느린가?', '어디서 에러가 발생했는가?', '어떤 사용자가 영향을 받았는가?' 같은 질문에 답할 수 있어야 합니다.
Observability는 세 가지 핵심 요소로 구성됩니다. 첫째, 로그(Logs)는 특정 시점에 발생한 이벤트 기록입니다. '사용자 A가 로그인했다', '결제가 실패했다' 같은 정보를 담습니다. 둘째, 메트릭(Metrics)은 시간에 따른 수치 데이터입니다. CPU 사용률, 요청 수, 응답 시간 등을 그래프로 시각화합니다. 셋째, 트레이스(Traces)는 요청이 여러 서비스를 거치는 전체 경로를 추적합니다. 마이크로서비스 환경에서 특히 중요합니다.
실무에서는 Elastic Stack(ELK), Prometheus + Grafana, Jaeger, Datadog, New Relic 같은 도구를 조합하여 Observability를 구현합니다. 예를 들어 '결제 성공률이 갑자기 떨어졌다'는 알림을 받으면, 메트릭에서 어느 시점부터 문제가 시작되었는지 확인하고, 트레이스로 어느 서비스에서 지연이 발생하는지 추적하고, 로그에서 구체적인 에러 메시지를 찾아볼 수 있습니다.
Observability가 잘 구축되어 있으면 장애 대응 시간을 크게 단축할 수 있습니다. '뭔가 이상한데 원인을 모르겠다'는 상황을 최소화하고, 데이터 기반으로 빠르게 문제를 파악하고 해결할 수 있습니다.