신세틱 트랜잭션 모니터링이란? (Synthetic Transaction)

Sanghwi Kim·2024년 2월 13일
0

Synthetic Transaction Monitoring (STM)

Synthetic Transaction 모니터링은 웹 애플리케이션/서비스의 성능, 기능 동작여부, 유저의 웹 인터액션(ex. 로그인, 티켓팅) 성능을 측정하는 Proactive한 모니터링 기법입니다.

기존 모니터링에서 실제 사용자의 데이터를 분석하는 것과 달리, STM은 웹 페이지/애플리케이션 사용 시 유저의 행동을 모방하여 가상의 트랜잭션을 생성하고 테스트합니다.

STM은 에이전트(Agent)라고 부르는 자동화된 스크립트, 즉 애플리케이션을 통해 로그인, 검색, 장바구니 사용, 결제 등 실제 사용자가 수행할 수 있는 일련의 행동을 시뮬레이션합니다.

STM은 주로 웹 애플리케이션/서비스의 성능/기능 이슈를 정확히 찾아내거나, 글로벌 유저의 디지털 경험을 파악하거나, 트래픽 피크 시간이 아닐 때에도 웹 애플리케이션의 성능을 24시간 모니터링할 때 사용됩니다.

Synthetic 모니터링 vs Synthetic Transaction 모니터링

기업은 브랜드 가치를 보호하면서 비즈니스를 더 성장시키기 위해 애플리케이션의 성능을 관리합니다.

Synthetic 모니터링은 가용성, Response time과 같은 서비스 성능을 테스트하기 위해 클라이언트의 네트워크 트래픽을 시뮬레이션하는 Active한 프로세스입니다.

이 Synthetic 테스트는 네트워크, BGP 라우팅, 애플리케이션 레이어까지 모든 스택에 적용 가능합니다.

예를 들어, 우리 회사 홈페이지에 접속하는 트래픽을 생성한 뒤, 홈페이지 내 모든 HTML, 이미지, Javascript, CSS 요소들의 로딩 성능을 측정하는 페이지 로드 테스트를 진행할 수 있습니다.

그럼 페이지 로드 테스트 결과는 DOM(Document Object Model) 모든 요소의 로드 순서와 로드 시간을 Waterfall 그래프로 표시해줍니다.

DOM은 F12를 눌러서, Waterfall 그래프는 아래 이미지에서

그런데... 단순 페이지 로드가 아니라, 해당 사이트와 특정 사용자 간의 Interaction 측면에서 웹 애플리케이션의 성능을 이해하려면 어떻게 해야 할까요?
이때 Synthetic Transaction Monitoring, STM이 등장합니다.

"Synthetic Monitoring"과 "Synthetic Transaction Monitoring" 두 용어가 같은 의미로 사용되기도 합니다.

하지만 STM은 클라이언트와 호스트 간의 Interaction(웹 서버, 백엔드 DB, 클라우드서비스, 마이크로서비스, API Endpoint 등), 즉 Web Transaction을 모니터링하는 것을 말합니다.

그래서 STM은 웹 서비스 유저의 실제 디지털 경험이 어떠한 지 확인하는 데 사용됩니다.

예를 들어, 모든 전자상거래 사이트에는 로그인, 검색, 추천, 결제, 배송 옵션 선택 등 쇼핑에 필요한 수 많은 웹 서비스들이 탑재되어 있습니다.

위 단계 중 하나의 서비스라도 에러를 일으키거나 높은 Latency를 유발할 경우, 고객 경험에 영향을 미치고 매출 손실로 이어질 수 있습니다. 그래서 STM은 웹 애플리케이션 개발자들이 모든 Transaction 요소의 성능을 벤치마킹하고, 이슈 발생 시 빠르게 트러블슈팅할 수 있도록 가이드합니다.

왜 Synthetic Transaction Monitoring을 사용해야 하지?

STM은 네트워크, 그리고 네트워크 위의 서비스와 애플리케이션을 Proactive하게 테스트하고 모니터링하는 것입니다.

Active, Passive 모니터링 이야기가 또 나오네요.
다들 이해하고 계시겠지만.. 골목길에서 길을 가로막고 통행료를 갈취한 깡패가 있다고 해보죠.
이 때 사건이 벌어진 곳의 CCTV를 돌려보는 것이 Passive한 모니터링입니다.
반대로 사건을 미연에 방지하기 위해 골목길을 주기적으로 순찰하는 것은 Active 모니터링입니다.

즉, 실제 유저의 트래픽 대신 시뮬레이팅된 테스트 트래픽을 통해 서비스 가용성, DNS, 웹 애플리케이션 페이지 로딩, BGP 경로 등 최종 사용자에게 영향을 끼칠 수 있는 네트워크, 애플리케이션 모든 계층의 요소들을 테스트합니다. 이로써 STM은 클라이언트가 웹 서비스를 사용하는 모든 과정을 주기적으로 시뮬레이션하여 웹 서비스의 성능을 모니터링합니다.

우리가 자주 사용하는 글로벌 이커머스 사이트(ex. Booking.com)가 다수의 클라우드에서 호스팅된다고 상상해 보세요.

고객은 전 세계에서 이 사이트에 접속하여 로그인, 검색, 항공편 예약, 렌트카 예약, 호텔 예약, 리뷰 작성 등의 작업을 수행합니다.
이 웹 애플리케이션 구성 요소 중 하나라도 오작동하거나, 다운되거나, 로딩 속도가 느려지게 되면 고객 신뢰도 저하, 유저 수 하락, 매출 하락으로 이어질 수 있습니다.
그리고 내일 장이 열리면 주식 가격도 떨어지겠죠?

STM은 사이트에 로그인하고, 웹 페이지의 다양한 요소들을 클릭하고, 장바구니에 무언가 추가하는 등의 과정을 Active하게 모니터링할 수 있습니다.
웹사이트 내 고객의 웹 애플리케이션 사용 여정의 모든 단계를 시뮬레이션할 수 있으므로 VoC/티켓이 들어올 때까지 기다리지 않고도 유저의 디지털 경험을 모니터링할 수 있습니다.

이러한 최종 사용자 수준의 Interaction을 시뮬레이션하는 것은 실제 유저에게 영향을 미치기 전에,
결국 기업의 비즈니스에 영향을 미치기 전에 의도한 대로 Transaction이 이뤄지는지, 그렇지 않다면 어떤 구간이 문제인지 발견하는 데 매우 중요한 역할을 합니다.

Synthetic Transaction Monitoring Use cases (사용사례)

STM의 사용 사례는 대부분 아래 두 가지 범주로 나눌 수 있습니다.

  • 글로벌 서비스 애플리리케이션의 Transaction 단계별 성능을 테스트하는 경우
    글로벌 이커머스 스토어의 고객 경험을 시뮬레이션하려는 경우가 있습니다.
    다양한 위치에서 특정 애플리케이션의 Step-by-step Transaction을 테스트할 수 있겠죠.
  • 다수의 글로벌 오피스들을 운영하는 기업의 경우
    전 세계의 직원들이 사용하는 Zoom, MS Teams와 같은 애플리케이션의 Transaction을 직원들이 상주하고 있는 모든 국가, 도시, 나아가 ISP/CSP와 같은 동일한 네트워크 환경에서 모니터링합니다.

Synthetic Transaction Monitoring이 어떤식으로 구현되고, 어떻게 Transaction 문제를 해결하고 있는지 아래 비디오에서 확인해보세요. "Synthetic Transaction Monitoring with Kentik"

Synthetic Transaction Monitoring 예시 - Kentik

이제 실전입니다. Synthetic 모니터링 솔루션 Kentik에서는 STM 기능을 어떻게 구현하는지 알아보죠.

  1. Chrome 브라우저에서 Chrome 개발자 도구(F12)를 사용하여 Web Transaction을 기록하고 이를 Puppeteer 스크립트로 출력
  2. Puppeteer 스크립트를 Kentik Transaction 테스트 설정에 Ctrl+C/V
  3. 원하는 모든 Kentik Synthetic 에이전트에서 스크립트 실행
  4. 총 Transaction 시간 측정, 모니터링 지표와 Baselining, Alert 프로세스 제공
  5. 테스트 Transaction 실행 중 스크린샷 캡처
  6. 방문한 모든 페이지의 모든 DOM 개체에 대한 Waterfall 그래프 분석

백번 읽는 것보다 한번 보는게 낫다고 하죠.
아래 이미지는 Kentik 플랫폼에서 NSL (미식축구) 웹사이트의 Transaction 테스트를 설정하는 페이지입니다.
이 테스트에선 미국 Ashburn, Chicago, Dallas, LA 총 4개의 지역에 배포해둔 에이전트를 활용해서 NSL 사이트에 접속하여 모든 페이지 DOM 요소들의 로드 성능을 측정하고, 실제 유저의 화면은 어떠 했을지 확인하고자 Transaction 단계별 스크린샷을 캡처하도록 구성하고 있습니다.

Synthetic 테스트는 일정한 시간에 따라 실행되도록 설정할 수 있습니다. Kentik 사용자는 글로벌하게 분포된 수백 개의 Public 에이전트를 활용하여 테스트를 설정할 수 있으며, 사용자에게 적합한 로컬 네트워크에 설치할 수 있는 Private 에이전트 또한 쉽게 배포하여 사용할 수 있습니다.

Synthetic Transaction Monitoring 결과 분석 - Kentik

Kentik은 STM 테스트 결과를 시간 흐름에 따라 표시해줍니다.

  • 테스트 결과는 사용자가 선택한 기간으로 표시됩니다.
    일주일 전, 어제, 오늘, 나아가 실시간으로 Transaction 성능을 모니터링할 수 있습니다.

  • 성능 저하(Latency)는 색깔로 표시됩니다.
    주황색은 경고, 빨간색은 위험한 성능 수치를 의미하며, 통계적 기법(표준편차)를 활용하여 기준 수치에서 얼마나 벗어났는지를 측정하여 성능 이상여부를 판단합니다.

  • 그래프에는 총 Transaction 완료 시간이 표시됩니다.
    특정 시간을 선택하면 당시의 Transaction 소요 시간과 성능 지표에 대한 통계적 신뢰구간이 표시됩니다.

  • Transaction 프로세스 중에 캡처한 스크린샷이 포함됩니다.

  • Waterfall 탭에는 방문한 모든 페이지의 DOM 요소들의 로드 순서와 로드 시간이 표시됩니다.


네트워크 옵저버빌리티와 STM

수 많은 산업에서 IT 인프라와 서비스는 필수 요소가 되었습니다.

그래서 고객에게, 때로는 사내 직원들에게 최고의 디지털 경험을 제공하는 것이 비즈니스의 성공과 직결되는 경우가 많아졌습니다.
Synthetic Transaction 모니터링은 실제 유저의 지리적/네트워크적 특성을 반영하여 Transaction의 단계별 소요시간을 모두 측정함으로써 디지털 경험을 정확하게 모니터링할 수 있도록 도와줍니다.

모든 Transaction이 네트워크 스택 위에서 진행되기 때문에, 과거와 달리 STM은 네트워크 옵저버빌리티의 주요 기능으로 자리하게 되었습니다.

마치며

읽어주셔서 감사합니다.

네트워킹 기술과 시장에 대한 소통, 언제나 환영합니다! 🙌
Coffee chat 신청하기
메모 남겨주시면 간단한 커피챗을 통해 저희 팀의 경험을 공유해드릴게요 😊

에어키는 네트워크 옵저버빌리티 플랫폼, kentik의 파트너로 활동하고 있습니다.
문의처 - 에어키 MSP팀 김상휘 프로 (shkim0730@airquay.com, +82-10-2914-9400)

이 글은 kentik의 kentipedia 문서의 번역/수정본이며 오역이 있을 수 있습니다. (출처)

profile
에어키 MSP팀에서 네트워킹, 보안, 옵저버빌리티를 지원하고 있습니다 :)

0개의 댓글