옵저버빌리티란 무엇인가?

 옵저버빌리티란 외부 출력만을 이용해 내부 상태를 측정할 수 있는 기능을 말합니다. 기존 모니터링이 '무엇인 언제 일어났는가'에 초점을 둔다면, 옵저버빌리티는 '왜 어떻게 일어났는가'까지 파악할 수 있도록 도움을 주는 것입니다. 즉 예상하지 못했던 숨겨진 이슈까지 발견해 주는게 모니터링과 가장 큰 차이점이며, 이러한 옵저버빌리티는 복잡한 IT 인프라에 대한 포괄적이고 통합된 가시정을 제공해 주고 심층적인 분석까지 가능하게 해주는 것이죠.

 

 좀 더 쉽게 말하자면 기업의 IT 인프라와 그 인프라 위에서 운영되는 어플리케이션, 그리고 이 어플리케이션에 접속하는 사용자들을 전방위적으로 모니터링하고 장애가 발생했을 때, 원인은 무엇이며, 어떻게 대처해야하는지 알려주는 기술이 옵저버빌리티입니다. 현재의 복잡해진 클라우드 기반의 어플리케이션의 장애 원인을 파악하는 데 있어서 모니터링만으로는 어려움이 있기에 어플리케이션의 구성 요소뿐만 아니라 구동하는 인프라의 상태, 최종 사용자 기기, 사용자 행동애 대한 로그를 분석해서 정확한 문제를 파악하고 개선하기 위한 해결책을 알려주는 옵저버빌리티가 나온 것이죠.

 

 이러한 옵저버빌리티는 위에서 언급한 것처럼 로그(Log) , 상대 정보(Metrics), 이벤트(Event), 추적 정보(Traces) 등의 여러 관점에서 인프라를 파악하고 분석하게 되는데, 이를 위해서는 곳곳에 흩어진 다른 정보들을 단순 데이터가 아닌 자산의 형태로 한 곳에 모으는 작업을 먼저 해야합니다. 이를 바탕으로 그 정보들의 맥락과 연관성을 파악할 수 있어야 하며, 이렇게 시스템을 한 눈에 파악할 수 있는 능력을 갖추었을 떄 자산에 대한 가시성을 확보했다고 할 수 있습니다.

 

 옵저버빌리티를 구축한다면, 클라우드 환경에서의 자신 및 취약점 관리 또한 한층 효과적으로 수행 가능해집니다. 운영하고 있는 자산 대상 및 범위를 정확하게 파악할 수 있기에 관리가 수월해지고, 이후 위협탐지시스템을 활용한 위협에 대한 정확도 평가 및 중요도 분류 작업도 수행할 수 있게 됩니다. 서비스 가용성, 사용 빈도, 편의성, 기존 공격에 유효성 이력 등 여러 요소를 종합적으로 평가해 대응 우선순위와 방법에 관한 선제적인 전략 수립이 가능해지기 때문에 효과적인 위협탐지 프로세스를 정립할 수 있습니다.

 

 이러한 옵저버빌리티의 가치를 제대로 파악하기 위해선 단순히 복잡해진 오늘날의 IT 인프라 환경을 너머 그간 IT 시스템이 어떻게 변화했는지에 대한 흐름을 이해하는 것이 좋습니다. IT 서비스는 매우 빠르고 크게 확장되어 왔으며, 이러한 규모는 고정된 환경으로는 감당할 수 없게 되었습니다. 즉 처리해야하는 트랜잭션 사용자 수가 과거와 비교가 안될 정도로 증가했기 때문에 이를 감당하기 위해서 새로운 시스템을 도입해야했던 것이죠. 이러한 문제의 해결책으로 등장한 것이 바로 클라우드입니다. 클라우드는 컴퓨터 리소스를 필요에 따라 사용할 만큼만 할당 받아 쓸 수 있는 방식을 이용하여 달라지는수요에 유연하게 대응할 수 있는 구조를 가졌기에 위의 문제를 해결할 수 있었습니다.

 하지만 기존 온 프레미스 시스템들을 클라우드로 이전하는 과정에 어려움이 있었습니다. 모놀리식 아키텍처(단일 코드 베이스 어플리케이션)를 통째로 클라우드로 전환하는 것은 구조적으로 쉽지 않았기에 하나의 큰 어플리케이션을 작게 분리할 필요가 생겼습니다. 이런 목적으로 생겨난 것이 바로 하나의 시스템을 작은 마이크로 단위로 나눠 개발하는 마이크로ㅅ비스 아키텍터(MSA)입니다. 이렇게 클라우드 기반의 서비스로 기존 서비스들이 전환되면서 모니터링해야 하는 구성이 자연스럽게 변화된 것입니다. 

 이렇게 가속화되는 클라우드 전환과 MSA의 확산으로 훨씬 복잡해진 IT 및 개발 환경 내에서 인프라 전체를 확인해야하는 것은 필수가 되었고, 동시에 옵저버빌리티가 각광받게 된것이죠.

 

옵저버빌리티와 모니터링

 하지만 옵저버빌리티가 있다고 모니터링이 필요하지 않은 것은 아닙니다. 모니터링은 옵저버빌리티를 달성하는 데 사용하는 기법 중 하나가 되었습니다. 옵저버빌리티는 복잡한 시스템을 얼마나 잘 이해할 수 있는지에 대한 접근 방식이고 모니터링은 이 접근 방식을 돕기위해 취하는 조치인 것이죠.

 

 모니터링에 대해 간단히 알아보자면 상태 정보(Metrics)를 기반으로 현재 측정된 위험요소를 기반으로 잘못될 가능성이 있나 없나 파악하여 알려주는 것입니다. 즉, 시스템 상의 상태 변화를 지속적으로 감시, 처리, 분석, 표현하여 어플리케이션 운영자가 해당 어플리케이션에 발생한 장애를 빠르게 파악하고 대처하는 데 도움을 주는 기능인 것입니다.

 

간단하게 옵저버빌리티에 대해 공부한 내용을 정리해 봤습니다. 글 읽어주셔서 감사합니다 :)

 

 

+ Recent posts