Logging(with CloudWatch)

김명일·2022년 5월 11일
0

스타트업 개발일지

목록 보기
3/10

고객문의가 매일 많이 있었다. 사용자 기능이나 관리자 기능들이 많이 갖춰져 있지 않다보니, 직접 데이터베이스에서 데이터를 확인하고 수정하거나, 로그를 보며 추적하는 일이 자주 있었다.😭


Cloudwatch 이용

API요청은 AWS ELB를 거쳐 인스턴스 내부로 들어와 docker를 통해 켜져있는 서버컨테이너로 들어가는 구조였다.

데이터베이스는 workbench를 통해 비교적 편하고 쉽게 확인 및 수정이 가능했다. 근데 문제는 로그를 보며 추적하는 일이었다. 서버인스턴스가 하나 뿐이라 다행이긴 했지만, 매번 서버 인스턴스에 접속해 직접 로그를 확인하며 추적해야했다. 접속하기 불편한 것은 물론, 원하는 데이터를 찾는 일도 여간 힘들고 손이 많이 가는게 아니었다.

로그를 인스턴스에 접속하지 않고도 쉽고 편하게 확인 가능했으면 했다. 그래서 여러가지 검색해보던 중, aws에서 제공하는 cloudwatch에 대해 처음으로 알게되었다.

cloudwatch에서는 로그에 대한 검색 필터링 기능과 이를 통한 알림기능까지 쉽게 사용 가능하기 떄문에, cloudwatch로 docker 컨테이너 내부 서버의 로그를 옮기기로 결정했고, 성공적으로 옮길 수 있었다.


Log Format

cloudwatch로 로그들을 옮기고 나니 문제는 포맷이 일관성있지 않다는 것이었다. 그러다보니 원하는 로그정보를 검색하기에도 힘들었고, API요청에 대한 로그는 기록도 되고 있지 않았기에, 수정이 필요함을 느꼈다.

그래서 winston과 morgan 패키지를 사용해 API요청에 대한 로깅과 원하는 로그들을 찍을 수 있도록 했다. console.log로 찍히고 있던 로그들을 전부 수정하고 나니, 일관성 있는 로그들이 찍히기 시작했고, 마음이 너무 편안했다.😊


이전에 해왔던 프로젝트에서는 처음부터 winston과 morgan을 통해 로깅이 이루어지고 있었기에 왜 이렇게 해야하는지에 대해 생각해보거나 알지 못했었다. 근데 겪어보니 왜 로그를 일관성있게 포맷팅 하는지, 로그가 왜 필요한지 느낄 수 있었던 것 같다.

profile
주니어 백엔드 🐶🦶🏻📏

0개의 댓글