애플리케이션 성능 모니터링이란 무엇인가요?
애플리케이션 성능 모니터링이란?
애플리케이션 성능 모니터링인 APM은 조직이 애플리케이션 및 코드의 성능 문제를 신속하게 식별하고 해결하기 위한 프로세스입니다.
APM 솔루션은 웹사이트, 소프트웨어 애플리케이션 및 서비스에서 원격 측정 데이터를 수집, 모니터링 및 분석합니다. 팀은 애플리케이션 전반에 걸쳐 엔드 투 엔드 가시성을 확보하여 애플리케이션 및 서비스 종속성을 파악하고 오류나 속도 저하를 해결할 수 있습니다. 또한 APM 솔루션은 추세를 표면화하기 위해 과거 데이터를 저장하고 활용하며, 비즈니스 KPI뿐만 아니라 대기 시간 및 처리량과 같은 주요 성능 지표에 대한 이상값을 탐지합니다.
애플리케이션 성능 모니터링의 역할은 무엇인가요?
애플리케이션 성능 모니터링은 애플리케이션의 성능에 대한 지속적이고 상세한 인사이트를 제공합니다. 팀은 이러한 인사이트를 활용하여 고객의 불만 사항을 기다리는 대신 보다 사전 예방적으로 대처할 수 있습니다. APM에는 여러 가지 용도가 있습니다. 예를 들어, 팀은 사용자 경험의 저하에 대한 경보 기능을 설정하고, 최신 릴리즈의 영향을 측정하고, 개선해야 할 부분에 대해 정보에 입각한 결정을 내릴 수 있습니다. 또한 근본 원인 분석을 지원하고 평균 탐지 시간(MTTD) 및 평균 해결 시간(MTTR)을 낮추는 데에도 사용할 수 있습니다.
APM이 중요한 이유는 무엇인가요?
애플리케이션은 현대 조직에서 필수불가결한 요소입니다. 애플리케이션은 사람들이 매일 사용하는 제품, 서비스 및 도구의 관문이며, 또한 점점 더 복잡해지고 있습니다. 클라우드 네이티브 기술 및 마이크로서비스와 같은 분산 애플리케이션이 증가함에 따라, 팀은 스트리밍되는 원격 측정 데이터의 양을 따라잡을 수 없습니다. 탁월한 사용자 경험을 제공하기 위해 모든 것을 모니터링하는 방법이 필요합니다.
APM은 애플리케이션이 예상대로 작동하도록 보장합니다. 고객의 신뢰를 유지하기 위해, APM 도구는 팀에게 잠재적인 문제에 대한 경보를 보내 문제를 신속하게 해결할 수 있습니다.
APM의 역사
1990년대에 만들어진 이래로, APM은 IT 팀에게 이전에는 전혀 가시성이 없던 애플리케이션에 대한 가시성을 제공해 왔습니다. 수년에 걸쳐, 여러 회사가 분산 추적을 실험했지만 2010년대가 되어서야 보다 강력한 APM 솔루션이 출시되었습니다. 이러한 플랫폼 솔루션은 보다 높은 수준의 추적과 엔드 투 엔드 모니터링 기능을 제공합니다.
APM과 Observability 비교
표면적으로는 Observability와 APM이 유사합니다. 둘 다 텔레메트리를 사용하여 데이터를 수집하고 성능에 대한 인사이트를 제공합니다. APM은 트랜잭션 추적과 모니터링 등 보다 애플리케이션 중심적인 반면, Observability는 애플리케이션 및 인프라 성능 양쪽 모두에 적용됩니다. Observability를 통해 시스템에 대한 이해도를 높이기 위해 기술 세부 정보를 심층적으로 파악할 수 있습니다. Observability는 로그, 메트릭 및 추적 간의 상관 관계를 통해 팀이 성능 문제의 컨텍스트와 근본 원인을 파악할 수 있도록 지원합니다.
애플리케이션 성능 모니터링은 어떻게 작동하나요?
APM은 일련의 도구와 방법론을 사용하여 소프트웨어 애플리케이션의 성능을 모니터링하고 관리합니다. APM 도구에는 일반적으로 응답 시간, 처리량 및 오류율과 같은 주요 메트릭의 모니터링이 포함되어 성능 병목 현상 및 문제를 식별하고 진단합니다.
APM 도구는 또한 개발자들이 코드의 문제를 이해하고 해결하는 데 도움이 되는 상세한 추적 및 디버깅 정보를 제공할 수 있습니다. 여기에는 이해관계자에게 애플리케이션의 성능을 지속적으로 알리기 위한 경보 및 보고 기능이 포함되는 경우가 많습니다.
APM 에이전트
에이전트는 일반적으로 애플리케이션에서 계측되는 소프트웨어입니다. 에이전트는 추적 및 원격 측정 데이터를 모니터링하고 APM 서버 및/또는 기타 모니터링 도구로 전송합니다. 에이전트를 사용하여 광범위한 시스템 및 애플리케이션을 모니터링할 수 있으며, 성능의 특정 측면에 대한 데이터를 수집하도록 에이전트를 구성할 수 있습니다.
APM 계측
계측은 성능 데이터를 수집하기 위해 애플리케이션에 모니터링 코드를 추가하는 프로세스입니다. 응답 시간, 오류율, 리소스 활용률, 로그 및 기타 애플리케이션 상태와 성능의 주요 지표에 대한 메트릭을 수집하는 데 사용할 수 있습니다.
계측은 공급업체별 APM SDK(소프트웨어 개발 키트)를 사용하거나 또는 스팬을 사용해 추적이 시작되고 중지되는 OpenTelemetry와 같은 개방형 표준을 사용하여 수동으로 수행할 수 있습니다.
또는 코드를 자동으로 계측하는 에이전트를 사용하여 수행할 수도 있습니다. 에이전트를 설치한 후, 팀은 분석을 위해 애플리케이션 또는 트랜잭션의 특정 부분을 계측한 다음 데이터를 엔드포인트(일반적으로 APM 플랫폼)로 전송할 수 있습니다. 계측은 보통 도구의 UI에서 또는 API를 통해 설정됩니다. 구성의 예로는 환경 이름, 샘플링 속도 및 기타 메트릭이 있습니다.
APM 분석 및 경보
성능 데이터가 수집되면 분석을 할 수 있습니다. 도구를 선택할 때는 사용자의 경험을 쉽게 추적하고 오류 및 문제를 한눈에 파악할 수 있는 대시보드와 보기가 포함되어 있어야 합니다. 대부분의 팀은 보고된 문제에 대한 조사를 시작한 다음, 근본 원인을 파악하기 위해 노력합니다. APM에 대한 플랫폼 접근 방식을 갖게 되면, 이 단계에서 도구 전환을 방지할 수 있습니다. 향후 문제를 방지하기 위해 경보를 설정할 수도 있습니다.
APM은 무엇을 측정하나요?
APM 도구는 다음을 측정할 수 있습니다.
- 서버 상태: 서버 CPU 사용량, 메모리 요구량 및 읽기/쓰기 속도 모니터링
- 오류율: 성능 저하 추적 및 문제 식별
- 응답 시간: 애플리케이션 성능에 영향을 미치고 있는지 여부 확인
- 인스턴스: 효율적으로 확장하고 전체 비용을 관리하기 위해 실행 중인 서버 또는 앱 인스턴스 수 파악. 이 메트릭은 클라우드 기반 애플리케이션에 매우 중요합니다.
- 요청 속도: 사용자 트래픽을 평가하여 급증이 발생하거나 사용자가 비활성화되는 이유 파악
- 가용성: 애플리케이션의 가동 시간 추적
APM의 이점은 무엇인가요?
애플리케이션이 작동을 멈추면, 사용자에게 부정적인 경험을 주기 전에 미리 아는 것이 좋습니다. APM을 통해 팀은 문제를 신속하게 파악하고 해결할 수 있으며, 향후에도 문제를 방지할 수 있습니다. 포괄적인 APM 도구를 통해, 팀은 다음과 같은 이점을 얻을 수 있습니다.
- 안정성 및 가동 시간 향상
- 인시던트 감소
- 문제를 보다 신속하게 해결
- 고품질 소프트웨어 출시
- 인프라 개선 사항 파악
- 생산성 향상
- 더 나은 사용자 경험 만들기
- 매출 증대
APM의 어려움은 무엇인가요?
APM 도구에는 어려움이 따르게 마련입니다. 팀들은 실시간으로 방대한 양의 데이터 스트리밍을 처리하는 중입니다. 복잡하고 분산된 애플리케이션, 특히 클라우드 네이티브 기술을 사용하는 애플리케이션은 APM 계측을 어렵게 만들 수 있습니다. 환경 전반에 걸쳐 문제가 있거나 복잡한 근본 원인 분석 사례가 있는 경우, 많은 도구가 어려움을 겪을 수 있습니다.
APM 솔루션은 엔드 투 엔드 트랜잭션, 애플리케이션 및 코드 레벨 성능을 모니터링하여 조직에 포괄적인 적용 범위를 제공해야 합니다. 단일 플랫폼을 사용하면 가장 포괄적인 적용 범위를 제공하고, 워크플로우를 단순화하고, 문제 해결 속도를 높일 수 있습니다. 비즈니스 목표를 달성하기 위해 여러 모니터링 방법을 조합하여 사용할 수 있는 적절한 APM 솔루션을 선택하는 것이 중요합니다.
APM 도구의 주요 기능
적절한 APM 도구를 선택할 때 어떤 점을 고려해야 하나요? 엔드 투 엔드 트랜잭션, 애플리케이션 및 코드 레벨 성능을 모니터링할 수 있는 다양한 APM 솔루션이 있지만, 현재와 미래의 기술적 필요에 맞는 솔루션을 선택하는 것이 중요합니다.
기술적 역량
조직에 대한 체크리스트를 작성합니다. 그런 다음, 필요에 따라 도구 기능을 비교할 수 있습니다. APM 기술적 역량의 예를 몇 가지 소개하면 다음과 같습니다.
- 웹사이트 및/또는 애플리케이션 성능 추적
- 애플리케이션 및 서비스 종속성 매핑 및 관리
- 엔드 투 엔드 가시성을 위해 분산 추적 수집
- 실시간 사용자 모니터링(클라이언트 및 서버) 제공
- 앱 성능을 비즈니스 목표에 연결
- 머신 러닝 및 AI 기반 분석 활용
- 다양한 데이터 유형, 데이터 소스 및 언어 지원
엔드 투 엔드 가시성
APM 데이터는 애플리케이션에서 실제로 어떤 일이 일어나고 있는지를 조직에 알릴 수 있는 기능을 가지고 있습니다. 그러나 모든 것을 잘 모니터링할 수 있어야 어떻게 작동하고 있는지에 대한 명확한 비전을 얻을 수 있습니다.
개별 추적은 이 스토리의 일부만 보여주기 때문에, APM 도구는 한 단계 더 나아가 트랜잭션을 전체 과정에서 모니터링해야 합니다. 그런 다음, 여러 추적을 함께 연결하여 개괄적인 전체 보기에서 코드 레벨 문제로 전환할 수 있습니다.
엔드 투 엔드 가시성도 AIOps의 중요한 요소입니다.
통합
서드파티 서비스 및 애플리케이션과의 통합을 통해 APM 도구는 조직의 보다 규모가 큰 에코시스템에 원활하게 꼭 들어맞을 수 있습니다. 인증에서 CI/CD 프레임워크에 이르기까지, 이러한 통합을 사전에 조사하는 것이 중요합니다.
사용 용이성
조직 내에는 APM 기능에 액세스해야 하는 다양한 사용자가 있습니다. 직관적인 UI를 통해 각 사용자의 필요에 맞추세요. 또한 APM 솔루션의 배포, 관리 및 확장이 얼마나 쉬운지 확인해 보세요.
배포 옵션
운영 및 관리 비용을 절감하려는 경우 ,클라우드 기반 SaaS 옵션을 고려해 볼 수 있습니다. 그러나 고려해야 할 다른 배포 옵션이 있습니다. 일부 APM 도구는 멀티 클라우드 또는 하이브리드 전략을 지원할 수 있지만, 다른 도구는 선호하는 클라우드 서비스 제공자에 따라 제한이 있을 수 있습니다.
개방형 표준/개방형 데이터 지원
Observability 공간은 끊임없이 진화하고 있습니다. 새로운 도구와 표준이 시장에 진입함에 따라, 적응할 수 있는 유연한 플랫폼이 필요합니다. 또한 OpenTelemetry와 같은 개방형 표준 및 기술을 사용하면 도구 집합의 미래를 보장하는 데 도움이 될 수 있습니다.
보안
도구를 평가할 때는 보안에 대한 공급업체의 노력을 고려해야 합니다. APM 도구가 구축되고 제공되는 방식은 기존 보안 프레임워크를 강화하거나 약화시킬 수 있습니다. 구성 요소 간의 트래픽은 암호화되어야 합니다. 서드파티 확장도 보안 문제에 해당할 수 있습니다. 또한 APM 도구가 세분화된 권한으로 기존 ID 액세스 관리 솔루션을 지원하는지 확인하세요.
Elastic을 이용한 애플리케이션 성능 모니터링
Elastic은 2023년 Gartner® Magic Quadrant™ for APM and Observability에서 3년 연속으로 비저너리(Visionary)로 선정되었습니다. Elastic은 기업들에게 APM 모니터링 기능이 기본 제공되는 풀스택 방식의 통합 가시성을 제공합니다. 팀은 제품에 대한 360도 뷰를 얻기 위해 여러 도구를 사용할 필요가 없습니다. Elastic은 팀에게 다음을 제공합니다.
- 하이브리드 및 멀티 클라우드 전반에 걸친 가시성: Kubernetes 및 서버리스와 같은 클라우드 네이티브 기술에 대한 통합 가시성을 통해 디지털 혁신을 가속화하세요. Elastic은 또한 OpenTelemetry에 대한 기본 지원을 제공합니다.
- 향상된 문제 해결 및 효율성: 조직 전체의 사일로를 제거하고 메트릭, 로그 및 추적을 환경에 단일 뷰로 통합하세요.
- 강력한 머신 러닝 및 분석: APM 상관 관계 및 이상 징후 탐색과 같은 혁신적인 AIOps 기능을 통해 팀의 근본 원인 분석을 자동화하세요.
- 사용자 경험 모니터링: 실제 사용자 모니터링(RUM)을 통해 사용자가 사이트와 상호 작용하는 방식을 자세히 살펴보세요. 가상 모니터링을 통해 고객이 문제를 느끼기 전에 웹 성능 문제를 사전에 파악하세요.
APM 용어집
분산 추적 | 분산 추적은 프론트엔드에서 백엔드 서비스로 애플리케이션을 통해 요청 및 응답 흐름을 추적하고 분석하는 방법입니다. 분산 추적은 애플리케이션의 여러 부분이 서로 상호 작용하는 방식을 팀이 이해하고 잠재적인 병목 현상이나 문제를 식별하는 데 도움이 됩니다. |
스팬 | 스팬은 워크플로우의 각 조각입니다. 스팬은 활동의 시작부터 끝까지 측정하고 실행 정보를 포함합니다. 일반적인 스팬 속성은 다음과 같습니다.
|
트랜잭션 | 트랜잭션은 작업의 논리 단위에 해당하는 이벤트입니다. 트랜잭션은 종종 모니터링되는 서비스에 대한 들어오는 요청이나 이와 유사한 작업과 연결됩니다. 트랜잭션에는 이벤트가 기록되는 환경에 대한 데이터와 같은 추가 속성뿐만 아니라 여러 스팬이 포함될 수 있습니다. 트랜잭션의 예를 몇 가지 들면 다음과 같습니다.
APM 솔루션에서, 트랜잭션은 일반적으로 웹 트랜잭션을 말하며 요청이 제출된 시점부터 응답이 수신된 시점까지의 모든 활동을 포함합니다. |
추적 | 추적은 애플리케이션이 수행한 작업에 대한 상세한 코드 레벨 레코드입니다. 추적은 애플리케이션 요청과 관련하여 이루어진 방법 또는 기능 호출의 상태와 기간을 측정합니다. |
서비스 | 서비스는 특정 작업 또는 일련의 작업을 수행하는 독립적인 소프트웨어입니다. 서비스는 느슨하게 결합되고 재사용 가능성이 높도록 설계되었으며 마이크로서비스 아키텍처에서 종종 사용됩니다. Docker와 Kubernetes와 같은 컨테이너 기술을 사용하여 배포되는 경우가 많습니다. |
OpenTelemetry | OpenTelemetry는 애플리케이션, 서비스, 라이브러리에서 원격 측정 데이터를 수집하고 내보내기 위한 오픈 소스 프레임워크입니다. 코드를 계측하고 데이터를 수집하기 위한 라이브러리와 API뿐 아니라 데이터를 분석, 시각화 및 저장하기 위한 도구와 통합 기능을 제공합니다. OpenTelemetry는 벤더 중립적이며 확장 가능합니다. 텔레메트리 데이터를 수집하고 내보내는 표준으로 간주됩니다. |