본문 바로가기

APM, 아티클

팬마음, 150만 사용자에게 안정적 서비스를 제공하게 되다. _제니퍼 PHP 도입사례 인터뷰


팬마음은 두 개의 서비스를 제공하고 있으며 150 만 사용자가 사용하고 있다. 올해 초 두번째 서비스가 공개되기 이전에는 일 최대 TPS 가 60 정도 발생했으며, 신규 서비스 런칭 이후 2017년 10 월 현재 일 최대 262 TPS 까지 발생하고 있다. 매월 이벤트를 진행하고 있으며, 이벤트 진행 시 최대 1338 TPS 이상의 호출이 발생하고 있다. 웹서버는 4~5 개가 운용되고 있으며 이벤트 기간에는 평균 동시 접속자수가 최대 8 천 명에서 1 만 명이 넘게 사용하고 있는 서비스다.


제니퍼 사용 시작일 : 2017년 6월 12일 부터                                       

무엇을 모니터링 했는가? : WAS와 DB를 모니터링했다.  

왜 제니퍼인가?: 다른 PHP 모니터링 솔루션을 몇 개 찾아보고 검토했으나, GUI 지원의 불편함, 서버 자체가 국내에 있는데 해외 솔루션을 쓰기엔 다소 느려지는 부분 등 여러 가지 문제가 발생했다. 하여 국내에서 서비스하는 제니퍼를 사용하게 되었다. 지속적으로 사용하다 보니, 정말 여러가지로 마음에 드는 솔루션이었다.

주로 개선된 점은 무엇인가? : 도입 이전에는 서버 장애 발생 시 평균 대응 시간이 2-3 시간이었다면, 제니퍼를 도입한 이후 대응 시간은 10 분 이내로 줄어들었다. 팬마음은 서버 장애를 제니퍼 화면 통해 바로 확인하여 수정할 수 있게 되었고 개발자의 직관에 의지해서 처리하던 부하 지점을 찾는 것 또한 실제 문제 있는 지점을 찾아 수치적으로 수정하게 되어 훨씬 더 실질적인 서비스를 제공할 수 있게 되었다.

팬마음의 모니터링 대상 서비스: 팬마음의 모니터링 대상 서비스는 연예인들을 좋아하는 팬들을 위한 연예인의 사진을 볼 수 있는 애플리케이션의 API 서비스이다. 이 서비스에는 현재 특별한 수익구조가 존재하지 않기에 광고를 통한 수익 창출이 매우 중요하다. 현재 개발 인력이 부족으로 현재 MSA 를 도입하지 못하고 있기에 웹서버 내에 모든 API 가 작동되고 있다. 그렇기 때문에 만일API 하나가 문제가 생겨 멈추기 시작하면 금방 스택이 쌓이고, 스택이 쌓이면 웹서버가 증가하며 동시에 DB 서버에 부하를 주면서 순식간에 웹 서버 장애 + DB 서버 장애 + 캐시 서버 장애 까지 발생하는 연쇄 반응을 일으킬 수 있는 위험한 상황이 발생할 수 있는 환경이다. 서버 장애가 발생하여 사용자들이 광고를 볼 수 있는 페이지로 연결되지 못한다면 결국 서버 장애(비용 상승)가 곧 수익 저하로 이어질 수 있다. 예를 들어 API 서비스 하나가 문제가 생겨 웹서버가 5대까지 늘어난다면 장애 시간 동안 사용되는 데이터베이스 비용 + 웹서버 5 대가 늘어난 비용 + 사용자들의 접속불가로 광고 수익 미발생이라는 큰 손실이 발생할 수 있다.



제니퍼의 구체적인 사용 방법과 제니퍼를 통해 해결된 사항: 제니퍼를 사용하는 방법은 아주 간단했다. 원격 에이전트를 설치하고 AMI 를 생성한 후 Auto Scale 그룹에 추가했으며, 이후 모니터링은 머신이 런칭되면 자동으로 연결되어 서비스 이용이 가능했으니 매우 심플하고 편리했다. 여러 가지 로그 분석툴을 사용해 봤으나 제니퍼의 간편한 설치와 사용은 최고라고 말할수 있다. 또한, 실시간으로 발생하는 장애 지점의 확인, 자주 호출하는 파일의 확인, 트랜잭션당 소요 시간을 기준으로 정렬해서 볼 수 있는 방법은 우리에게 정말 많은 도움이 되었다.    

     

제니퍼 사용 후 변화된 업무 처리 방법: 제니퍼를 도입하기 이전에는 ‘도대체 서버를 얼마나 쓰는가?’와 ‘이 비용을 내고 서버를 운영하는 것이 맞는가?’에 대한 질문을 많이 받고 있었다. 제니퍼를 도입하며 가장 먼저 한 일은 경영진에게 제니퍼 대시보드를 공유하고, 일일 시스템 성능 페이지를 매일 출력해 전달함으로써 서비스의 비용적인 부분과 효율적인 사용에 대해서 커뮤니케이션을 할 수 있게 되었다는 것이다. 또한, 직관적인 문제 확인이 가능하게 되어 장애가 발생하면 운영팀에서 바로 대시보드 확인 후 개발팀에 연락하면서 지연되는 API 를 말해주도록 커뮤니케이션 방침을 세우면서 개발팀은 보다 빨리 문제를 찾아(기존에는 전화/문자로 ‘서버가 안 돼요’라고 전달했다면 ‘ㅇㅇㅇ API 가 빨갛게 떠 있고, 없어지지도 않으며 몇 초 동안 켜져있고, 다른 호출이 작동하지 않아요’라고만 말했었다.) 디테일하게 전달 할 수 있게 되었다.



더 자세한 팬마음의 성능 개선 효과가 궁금하시다면 PDF를 다운받으세요.  >> 팬마음, 제니퍼 도입 사례 리포트 다운로드 링크 ]