인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김동하님의 프로필 이미지

작성한 질문수

탄탄한 백엔드 NestJS, 기초부터 심화까지

Nest Middleware

aws ec2 사용시 로그확인은 보통 어떤식으로하나요?

작성

·

7.4K

1

안녕하세요 현재 스타트업(?)회사에서 앱개발중인 신입개발자입니다.
 
현재 회사에서 adonis JS 라는 처음들어본 서버를 사용중인데
 
Nest JS로 바꾸기위해 공부중입니다.
 
보통 서버개발자들이 로그를 확인한다라고 하는데 미들웨어강의를 보면서 아직 이부분에대해 해소되지가않아서 따로 질문드립니다.
 
현재 서버는 aws ec2에 배포되어있고 이후에 Nest 로 개발하더라도 그곳에 올려야하는데 보통 로그확인은 어떤식으로 하는건가요?
 
aws측에서 해당서버의 터미널로그를 따로 보여주는 툴이 뭔가 따로 있는건지.. 개념자체가 잘 이해가지않네요
 
회사에서 기존에 있던 개발자가없고 외주맡겨서 터진걸 신입인 제가 고쳐나가는 입장이라 따로 배울곳이 없어 질문드립니다..
 
혹시나 뒤쪽강의에 비슷한내용이 있다면 차근차근 진행하면서 공부해가겠습니다. 영상 잘보고있어요 감사합니다.

답변 1

1

윤상석님의 프로필 이미지
윤상석
지식공유자

안녕하세요! 

해당 부분은 "로그를 찍는 방법"을 알려드리기 보다는 미들웨어 개념과 사용법에 대해 설명드리기 위해 "로그를 찍는 기능"이 있는 미들웨어를 만들면서 설명드린 것입니다.

 

보통 서버 개발자들이 로그를 확인한다는 것에서 로그는 여러가지 수준에서 나뉩니다. 

1. 서버 애플리케이션에 대한 로그 (EC2 안에 실행되고 있는 프로그램에 대한)

2. AWS EC2 인스턴스를 사용하고 있다면 EC2 인스턴스에 대한 로그 또는 RDS에 대한 로그 (모니터링 솔루션이 필요한 경우)

3. 이 외 (제품에 따라 다름)

 

1번의 경우 애플리케이션 단의 로그의 유형도 많습니다. "DB I/O 처리 시간을 찍는 로그(쿼리 최적화를 위해)", "에러 로그", "트래픽 로그" 등등 입니다. 이런 로그는 함수들에 대해 공통되도록 찍히는 경우가 많아 미들웨어로(또는 인터셉터 등 으로) 처리하는 것이 좋은 패턴인 것이죠.

또한 보통 winstone 패키지 (https://github.com/winstonjs/winston) 등 추가 플러그인을 사용하여 로그를 콘솔이 아닌 20220312.log 등의 파일로 로그를 파일로 기록하는 경우가 많습니다.

단순히 콘솔에 찍는 것이 아닌 파일로 로그를 기록하는 이유는 몇시 몇분에 어떤 시점에서 어떤 이슈가 발생했는지를 파일로 저장하여 이슈 트래킹이 쉽도록 하기 위함입니다.

 

2번의 경우에는 AWS Cloudwatch, Datadog 등 솔루션을 사용하여 인프라에 관한 로그를 관리합니다. (정확히 말하면 모니터링입니다.)

 

김동하님의 프로필 이미지
김동하
질문자

답변감사합니다 ㅠㅠ 강의 다듣고나서 서버가 어느정도 구축되면 시도해보겠습니다 질문이 엉성해서 걱정햇는데 딱 원하는부분 캐치해주셨네요 ㅠㅠ