[Whatap APM] 서버와 어플리케이션 상태를 모니터링하기

Seok·2021년 1월 3일
1

EZSET

목록 보기
7/7
post-thumbnail

서비스를 개발하고 직접 서버를 운영하면서 내가 개발한 기능들 혹은 팀원들이 개발한 부분들이 효율이나, 문제는 없는지 그리고 현재 서버에 주어진 자원으로 서비스를 운영하는데 얼마나 많은 자원이 들고, 부족해지는 때는 없는지에 대해 항상 궁금증과 호기심이 있었다. 이 부분을 해결해 보고자 apm을 직접 적용해보고, 실제로 서버와 어플리케이션의 상태를 모니터링 해보려한다.


1. APM 이란

APM은 Application Performance Management의 약자로 말 그대로 어플리케이션의 성능을 관리하는 서비스이다. 현재 어플리케이션의 모니터링 및 장애 관리까지 할 수 있다.

여러 서비스가있지만 찾아본것은 Whatap APM, elastic APM등이 있다. 대부분 유료로 서비스가 제공되지만 elastic APM의 경우 무료로 제공된다. 하지만 elatic stack에 대한 경험이 없어 적용에 어려움을 겪고서 Whatap APM서비스를 선택했다.. Whatap은 서버의 경우 24시간 기록저장 제한으로, 어플리케이션은 14일동안 제한된 기능으로 서비스를 체험할 수 있다. 물론 지속적으로 사용이 가능한 elastic apm을 선택하는게 조금 더 적절하지만, EZSET 서비스 특성상 14일 동안 현재 서비스가 운영되고 있는 상태를 모니터링하고 문제를 파악하기엔 충분하다고 생각해서 적용이 쉬운 Whatap서비스를 선택했다.


2. 환경

  • AWS EC2 t2.micro Ubuntu 18.04
  • node.js
  • vue.js
  • mongodb
  • nginx
    현재 EZSET 서비스는 AWS 에서 프리티어가 제공하는 무료 인스턴스로 운영되고 있다. 서버에 대한 자원 모니터링 및 어플리케이션 모니터링이 필요하구나 라고 생각했던 부분은 개발이 진행되며 코드의 덩치가 커지게 되니 프론트 빌드시 메모리 부족으로 137code를 리턴하며 중단되며 빌드조차 하지 못하는 상태가되어 상당히 곤란했던 기억이있다. 이때 모니터링을 통해 서버나 어플리케이션이 자원을 얼마나 사용하는지 꼭 확인해야겠다 라고 생각했다.

3. 서버 모니터링

3-1. 서버 모니터링 프로젝트 생성


whatap 사이트 가입후 프로젝트 생성을 클릭하고 server선택 후, 프로젝트 이름을 적어주고 데이터 서버 지역을 선택 후 저장을 클릭한다.

3-2. 서버 모니터링 적용

라이선스 확인 부분은 클릭 후 2.와탭 리포지토리 추가로 넘어간다.

해당 명령어를 어플리케이션이 돌아갈 서버에서 입력해 준다.


다음으로 와탭 서버 모니터링 패키지를 설치해 주고 다음으로 넘어가 4. 서버 모니터링 시작하기에 나오는 명령을 복사 붙여넣기로 실행시켜 준다.

3-3. 결과 확인

바로 서버 모니터링을 시작하는 것을 확인할 수 있다.


4. 어플리케이션 모니터링

4-1. 어플리케이션 모니터링 프로젝트 생성


모니터링할 어플리케이션의 플랫폼을 선택해주고, 프로젝트 이름, 서버지역을 설정 후 다음으로 넘어간다.

4-2. 어플리케이션 모니터링 적용


프로젝트 루트 디렉터리로 이동 후 와탭 라이브러를 설치한 후, whatap.conf 파일을 생성하고 내용을 복사 붙여넣기한다.

다음으로 활용으로 넘어가면 코드를 어플리케이션 내부에 삽입하라고 한다. app.js에 해당 코드를 넣어줬고, appName부분만 변경해주고 다음으로 진행했다.

📃app.js

...생략
require('elastic-apm-node').start({
  // Set required app name (allowed characters: a-z, A-Z, 0-9, -, _, and space)
  appName: 'EZSET',
  // Use if APM Server requires a token
  secretToken: '',
  // Set custom APM Server URL (default: http://localhost:8200)
  serverUrl: 'http://localhost:8200',
});
... 생략

4-3. 결과 확인

작성한 코드를 저장해주고 실행하면 위와 같이 Whatap이라는 글씨와 함께 프로젝트가 이상없이 실행되는 것을 확인할 수 있었다.


그리고 테스트 서버에서 사이트를 조금 사용했을 때, 모니터링도 잘 되는 것을 확인할 수 있었다.


5. 결과

이제 서버와 어플리케이션의 모니터링이 가능해졌다. 물론 현재 실제 운영서버에 적용한 것이 아닌, IAM를 생성하고 TEST 서버에서 적용한 것이지만, 실제 서버에 적용에 어려움은 없을 것 같다.
이제 API별로 응답시간이나, 프로젝트 업데이트, 재시작 등이 서버자원을 얼마나 쓰게되고, 서비스 운영에 위협이 되는 부분은 없는지 살펴봐야겠다.

++추가

역시 기본 인스턴스 자원으로는 한계가 뚜렷한것 같다....

profile
🦉🦉🦉🦉🦉

0개의 댓글