가상 모니터링과 RUM
웹 서비스의 모니터링에는 크게 가상 모니터링(Synthetic Monitoring)과 실제 사용자 모니터링(Real User Monitoring)으로 나누어 분류할 수 있습니다.
가상 모니터링이란 ?
가상 모니터링은 사용자 작업을 시뮬레이션하여 웹 사이트 및 애플리케이션을 모니터링하는 방법입니다. 그 목적은 주어진 서비스의 가용성, 성능, 기능을 테스트하는 것입니다.
가상 모니터링은 사전 정의된 빈도로 자동화된 테스트를 실행하므로 활성 또는 사전 모니터링 솔루션이라고 합니다. 이에 비해 실제 사용자 모니터링(RUM)은 수동적 모니터링 솔루션으로 간주되며 테스트를 시작하기 위해 실제 사용자를 필요로 합니다.
일반적인 사용 사례는 연중무휴 웹 방문자가 홈페이지에 액세스할 수 있는지 확인하려는 경우입니다. 이를 확인하기 위해 x분마다 자동으로 테스트하는 가동 시간 모니터라는 자동화된 스크립트를 사용할 수 있습니다.
실제로 이 모니터는 지정된 간격(예: 1분)으로 GET 요청을 홈페이지에 자동으로 보냅니다. 만약 해당 웹사이트가 응답하지 않는 경우 시스템 관리자 및 엔지니어에게 이를 메일, 텔레그램 및 구축한 알림서비스를 통해서 전달됩니다.
가상 모니터링에는 가용성, 성능, 기능을 모니터링하는 데 사용되는 다양한 유형의 모니터링이 포함되며 유형은 다음과 같습니다.
Availability Monitoring
가용성 모니터링은 주어진 서비스의 가용성(접근성)을 확인합니다. 가용성 모니터링의 주요 형태는 다음과 같습니다.
가동 시간 모니터링은 위의 예와 같이 지정된 URL의 가용성을 확인합니다.
- Ping 모니터링은 간단한 Ping 요청을 전송하여 특정 엔드포인트의 가용성을 확인합니다. 예를 들어 Ping을 보내 서버에 연결할 수 있는지 확인합니다.
- SSL 인증서 모니터링은 웹사이트 보안 인증서의 유효성을 확인하며 Google이 유효한 SSL 인증서 없이 사이트에 액세스하는 사용자에게 보안 경고를 표시하는 상황을 방지합니다.
- 도메인 만료 모니터링은 지정된 도메인의 만료 날짜를 확인하여 도메인 손실을 방지합니다.
- API 모니터링은 요청을 보내고 올바른 응답(성공 코드 또는 특정 데이터)이 제공되는지 여부를 테스트하여 API 기능을 확인합니다.
- DNS 모니터링은 도메인 이름 시스템(DNS)이 올바르게 구성되었는지 확인합니다. 이것은 종종 많은 해커 공격을 조기에 발견하는 데 도움이 됩니다.
웹 성능 모니터링 또는 페이지 속도 모니터링은 특정 웹사이트, 특정 기기 또는 특정 웹브라우저에서 인지된 사용자 경험에 대한 가시성을 제공합니다. 성능 모니터링의 두 가지 주요 유형은 다음과 같습니다.
RBM(Real Browser Monitoring)은 실제 브라우저 창을 사용하여 웹사이트의 성능을 확인합니다. 실제 사용자가 웹사이트를 보는 방식과 정호가히 일치하는 모든 요소로 웹사이트를 로드합니다.
모바일 웹사이트 모니터링은 RBM처럼 성능을 확인하지만 특정 휴대기기의 화면 크기와 해상도도 시뮬레이션합니다. 이를 통해 iOS 및 Android 기기의 성능에 대한 더 많은 퍼포먼스를 향상할 수 있습니다.
트랜잭션 모니터링은 사용자가 웹사이트에서 일반적으로 사용하는 경로가 올바르게 작동하는지 확인합니다. 이러한 경로에는 일반적으로 가입, 사용자 로그인, 검색, 결제 확인 등과 같은 다단계 프로세스가 포함됩니다. 트랜잭션 모니터링은 실제 브라우저 모니터링과 이상적으로 결합되어 실제 사용자가 웹사이트에서 할 수 있고 접할 수 있는 모든 것을 시뮬레이션하여 가장 정확한 그림을 제공합니다.
가상 모니터링의 장점
정기적인 빈도로 자동화
종합 모니터링은 1년 내내 매분, 매시간, 하루 24시간 내내 실행할 수 있습니다. 완전히 자동화된 스크립트이며 일단 설정되면 유지 관리가 거의 또는 전혀 필요하지 않습니다.
폭넓은 사용성
다양한 모니터 유형을 통해 홈페이지의 대기 시간부터 사용자 가입 흐름의 특정 단계 로드 시간까지 모든 것을 테스트할 수 있습니다. 이것은 많은 응용 프로그램에 공간을 제공하고 개발자가 필요한 모든 것을 모니터링하는 데 도움이 됩니다.
글로벌 테스트
전 세계에 기반을 둔 모니터를 통해 전 세계 여러 위치에서 가용성, 성능 및 기능을 확인할 수 있습니다. 이를 통해 모든 사용자에게 영향을 미치는 사건과 지역적 오류를 구별할 수 있으며 전세계 사용자를 위해 최적화할 수 있습니다.
가상 모니터링을 통해 신속한 사고 대응과 사고를 확인하는 데 걸리는 시간(MTTA)과 사고를 해결하는 데 걸리는 시간(MTTR)을 크게 개선할 수 있습니다.
RUM(실제 사용자 모니터링)은 가상 모니터링과 달리 실제 사용자 활동에 의해 시작되는 능동적 모니터링 방법입니다. RUM은 사용자가 실시간으로 웹 사이트와 상호 작용하는 방식을 보여주며 Google 또는 Cloudflare Analytics와 같은 고급 웹사이트 분석으로 추천 채널이나 전환이 아닌 웹사이트 성능에 중점을 둡니다. RUM은 크게 4가지로 요약할 수 있습니다.
실사용자 기준
RUM 모니터링은 실제 사용자가 웹사이트와 실시간으로 상호 작용하는 방식을 보여줍니다. 방문, 로드 시간, 다양한 지리적 위치, 장치 및 브라우저의 성능과 같은 데이터를 추적합니다.
가상 모니터링을 사용하여 여러 위치에서 브라우저를 시뮬레이션할 수도 있지만 RUM 없이는 수천명의 사용자가 서비스를 어떻게 경험하고 있는지 알 수 없습니다.
모든 사용자 작업 추적
RUM은 예약된 사전 정의된 테스트만 실행하는 가상 모니터링과 비교하여 실시간으로 발생하는 모든 것을 추적합니다. 실제 사용자 행동을 추적하면 존재하는지도 몰랐던 추세와 문제를 식별할 수 있습니다.
트래픽 필요
RUM으로 모니터링을 하기 위해서는 먼저 사용자가 웹사이트를 방문하여 발생된 트래픽이 있어야 합니다. 트래픽이 없으면 분석을 하기에 충분한 데이터가 존재하지 않기 때문입니다. 일반적으로 RUM은 가상 모니터링을 먼저 구축한 뒤에 구축합니다.