본문 바로가기

 

오픈소스 APM 핀포인트 도입을 활용한 사례 소개

 

 

- Open UP -

 

 

오픈소스 APM 핀포인트(PinPoint)는 대규모 분산 시스템의 성능을 분석하고 문제를 진단, 추적하는 플랫폼이며, 네이버에서 개발했다. 내부적으로 서버맵, 실시간 활성 스레드 차트, 요청/응답 차트, API의 호출 상세 이력, 서버의 상태를 실시간으로 시각화하여 볼 수 있는 기능 등을 제공한다. 핀포인트는 Java, PHP, Python을 지원하며, 또한 AWS 환경에서 다른 AWS 서비스와 연동하여 사용할 수 있다.

 

핀포인트의 특징으로는 대규모 시스템의 분산 트랜잭션 추적 및 시각화, 코드 수정없이 자동으로 트랜잭션 추적, 효율적인 대용량 데이터 전송/처리, 다양한 Agent 활용 및 지속적인 확장으로 크게 4가지이다.
핀포인트는 시스템 복잡도가 높은 N계층 애플리케이션의 메시지를 추적하여 분산 트랜잭션 정보를 파악할 수 있다. 또한 이를 통해 애플리케이션의 구성을 파악하고 애플리케이션 토폴로지를 시각적으로 제공한다.


자동화된 시스템을 활용하여 사용자의 서비스 코드를 수정 없이 다양하고 정밀한 진단 및 추적 데이터를 수집할 수 있으며, 추상화된 인터셉터(Interceptor)로 생산성을 높이고, 성능 및 트랜잭션 정보를 주입할 수 있다.


반복되는 API 정보와 SQL, 문자열을 상수 테이블로 치환하고, Agent의 대용량 요청은 샘플링 전송 방법을 사용하여 네트워크 및 서버의 클라우드 리소스를 최적화하여 서비스를 제공한다.
Pinpoint 서비스는 40여 종의 Plug-in 기능을 제공하고, 지속적으로 서비스에 활용 가능한 애플리케이션의 기능을 추가 및 확장하고 있으며, 다양한 Back-End 애플리케이션 서비스를 지원하고 있다.

 


1. 패션 테크 기업, 트렌비
전 세계 모든 명품의 세일 가격을 찾아내고 최저가를 분석하여, 최적의 쇼핑 루트를 찾아주는 ‘트렌봇’의 개발사 트렌비는 서비스의 병목 지점을 해결하기 위해 성능 개선을 진행하였고, 그 과정에서 모니터링 도구인 Pinpoint를 도입하였다고 2022년 2월 밝혔다. 

 

평상시에는 정상적으로 제공되던 서비스가 마케팅 푸시나 문자 알림 등의 영향으로 사이트에 트래픽이 몰리게 되는 경우 서버 지연이나 장애가 발생해 고객들이 서비스 이용에 불편을 겪게 되는 문제들이 종종 발생하여 성능 개선을 시작했다. 

 

트렌비가 모니터링 도구 중 핀포인트를 선택한 이유는 문제 발생 지점 및 병목 구간을 쉽게 발견할 수 있고, 코드 수준의 가시성을 제공하며, 분산 시스템 내 서버 간 관계성을 시각화해서 제공하기 때문이다. 오픈소스로서 지속적으로 관리가 되고 지원이 이루어지고 있으며, 서버의 트래픽, 응답 시간, Load Average 등 구체적인 상태 확인이 가능한 것뿐만 아니라 소스 코드를 수정하지 않고 손쉽게 적용하고 제거할 수 있는 등 여러 장점으로 인해 핀포인트를 선택했다고 트렌비는 밝혔다. 

 

핀포인트 도입 후, Server Map을 통해서 서버 간의 상호 관계를 한눈에 파악할 수 있게 되었다.

주문 서비스의 Server Map 예시
출처 : 트렌비 기술 블로그

 

Inspector를 통해서는 CPU 사용량, 메모리 사용량, 스레드 개수 등 서버의 실시간 운영 환경 정보를 확인할 수 있다.

 

주문 서비스의 Inspector 예시
출처 : 트렌비 기술 블로그

 

구매한 상품의 리뷰 작성 및 다른 고객이 작성한 리뷰 확인이 가능한 트렌비 리뷰 API에서 병목이 심하게 발생하였고 느린 응답 시간 때문에 트래픽이 몰리게 되면 오류가 발생하기도 하였으나, Pinpoint 도입으로 리뷰 API에서 병목이 발생하는 구간을 쉽게 파악할 수 있었고 수정을 통해 성능을 개선할 수 있었다.

 

다음 왼쪽 그림은 리뷰 API를 개선하기 전의 요청/응답 차트의 모습이며, 평균 응답 시간이 2초 정도로 다른 API에 비해 상대적으로 느린 응답 시간을 가지는 것을 확인할 수 있다. Call Stack을 통해 원인 파악 후 개선을 진행한 요청/응답 차트의 모습은 다음 오른쪽 그림이다.
 

  

Pinpoint를 활용한 병목 구간 개선
출처 : 트렌비 기술 블로그

 

Call Stack을 통해서는 모든 트랜잭션에 대한 코드 수준의 정보를 볼 수 있으며 구체적인 병목 구간과 오류 발생지점을 확인할 수 있다. 리뷰 API는 외부 서비스의 호출이 N번 반복되고 있다는 것을 파악할 수 있었고 이에 대해 외부 서비스를 한 번만 호출하도록 개선하였다.

 

  

병목 구간과 오류 발생지점
출처 : 트렌비 기술 블로그

 

2. 신선식품 쇼핑몰, 우리생협

우유, 계란, 정육, 채소 등의 신선식품을 유통하는 우리생협 쇼핑몰은 Shopping, Gateway, CMS 서버가 하나의 Tomcat으로 구동되고 있어서 매우 불안정한 상태로 운영 중이었다. 트래픽이 높지 않아 장애 상황이 표면화되지는 않았지만, 쇼핑몰의 안정화가 필요하여 서버 증설은 하지 않고 서비스만 분리하는 작업과 핀포인트의 도입으로 쇼핑몰 개선을 진행하였다.

 

강력하고 유명한 국내 솔루션 제니퍼(Jennifer) 대신 핀포인트를 도입한 이유는, 구입비용을 고려하면 오픈소스 소프트웨어 APM인 핀포인트가 현실적이기 때문이다.
물론 핀포인트는 구입비용 이외에도 애플리케이션 소스를 수정 없이 적용 가능하며, 오픈소스이지만 계속적인 릴리즈를 진행하고 있고, 응답속도나 에러에 대한 알람을 설정하여 이메일이나 SMS로 알림을 받을 수 있다는 장점이 있다. 또한, 트랜잭션 단위별로 소스 레벨까지 추적이 가능하여 문제를 빠르게 진단할 수 있다.

 

우리생협 쇼핑몰 개선 대상은 고객이 접속하는 Shopping 서버와 Gateway 서버로 지정하고 핀포인트를 적용했다. Shopping 서버와 Gateway 서버에 Agent를 설치하고 별도의 서버에 Collector, Web UI, HBase를 설치하여 웹브라우저로 Web UI에 접속해 애플리케이션 모니터링이 가능하게 되었다.

 

    

핀포인트 적용 전(왼쪽), 후(오른쪽) 우리생협 쇼핑몰 시스템 구성도
출처 : 지어소프트

 

우리생협 쇼핑몰에 핀포인트를 적용한 후, 과거에는 발견하지 못했던 문제를 발견할 수 있었고, 문제를 쉽고 빠르게 해결하여 문제 진단과 수정시간이 대폭 단축되었으며 모니터링 View와 알람을 통해 애플리케이션 상태를 실시간으로 감지가 가능하게 되었다. 


애플리케이션의 응답 시간 지연시간 및 지연율, 응답 에러 수 및 에러율, 힙메모리 사용률, CPU 사용량 등에 대한 임계치를 설정하면 이메일이나 SMS를 통해 실시간으로 알람을 받을 수 있어 더욱 빠른 대처가 가능해졌다. 

 

    

핀포인트 이메일 알람
출처 : 지어소프트

 

위의 두 가지 사례 이외에도, 배달의 민족(우아한형제들), 네이버 클라우드 등에서도 오픈소스 APM인 핀포인트를 활용하고 있다. 핀포인트는 유료 APM 플랫폼과 비교해도 성능이 떨어지지 않는 기능들을 제공하며, 오픈소스 기반으로 개발되었기 때문에 다양한 기업들과의 협력이 용이하다. 이러한 협력을 통해 핀포인트는 더욱 발전하며, 기업들은 더욱 쉽게 핀포인트를 도입할 수 있다.

 

또한, 다른 오픈소스 기술들과 융합하여 사용될 수 있다. 예를 들어, 핀포인트는 오픈소스 프레임워크 Spring과 함께 사용하여 로그 분석과 성능 모니터링을 함께 할 때 더욱 유용하다.


오픈소스 APM은 핀포인트 이외에도 ‘스카우터엑스’가 있으며, 서울시 ‘행정 데이터 통합 및 열린 데이터 광장 확장 사업’에 적용하는 등의 다양한 사례도 있다. 
서비스 안정화의 필요성이 점차 중요해짐에 따라, 오픈소스 APM의 도입이 증가할 것으로 보인다.

 

 


※ 참고자료


 1) https://guide-fin.ncloud-docs.com/docs/pinpoint-pinpoint-1-2
 2) http://developer.gaeasoft.co.kr/development-guide/knowledge/apm/pinpoint/pinpoint-practice/#2
 3) https://www.datanet.co.kr/news/articleView.html?idxno=107637
 4) https://www.fin-ncloud.com/product/applicationService/pinpoint
 5) https://scshim.tistory.com/445
 6) https://tech.trenbe.com/2022/02/22/pinpoint.html


 

.
.
2023
공개SW 가이드/보고서 - 번호, 제목, 작성자, 조회수, 작성
번호 제목 작성자 조회수 작성
공지 [2024년] 오픈소스SW 라이선스 가이드 개정판 발간 file support 12550 2024-01-03
공지 [2024년] 기업 오픈소스SW 거버넌스 가이드 개정판 발간 file support 10067 2024-01-03
공지 [2024년] 공공 오픈소스SW 거버넌스 가이드 개정판 발간 file support 9961 2024-01-03
공지 공개 소프트웨어 연구개발(R&D) 실무 가이드라인 배포 file support 22458 2022-07-28
공지 공개소프트웨어 연구개발 수행 가이드라인 file OSS 20805 2018-04-26
458 [기획기사] 생성형 AI 시대, 새로운 전략 도구 오픈소스 support 7571 2023-06-26
457 [기고] 생성형AI 개발도구 Copilot의 오픈소스 라이선스 위반과 저작권 분쟁 support 4666 2023-06-26
456 [기획기사] APM 시각화 기술에 유용한 오픈소스 JUI support 1859 2023-05-25
455 [기획] 오픈소스 APM 핀포인트 도입을 활용한 사례 소개 support 3476 2023-05-25
454 [5월 월간브리핑] 서비스 운영관리에 필수적인 성능관리 오픈소스 솔루션 support 2016 2023-05-25
453 [기획] 암호화폐와는 다른 오픈소스 NFT의 잠재력과 가능성 support 6405 2023-04-24
452 [기획기사] NFT 업계의 오픈소스 활용 support 2522 2023-04-24
451 [4월 월간브리핑] 오픈소스 NFT 최근 산업 동향 support 6943 2023-04-24
450 [기획] 3D 프린팅을 위한 오픈소스 소프트웨어 support 4457 2023-03-27
449 [기획기사] 3D 프린터의 보안 위협과 오픈소스 해결책 support 1771 2023-03-27
맨 위로
맨 위로