티스토리 뷰

▶nodeJS + mongDB + EC2 권한 문제 해결하기

학교 과제로 구현 + 배포를 다뤘었는데.. 구현은 잘 되었었는데 EC2의 권한 문제로 많은 어려움을 겪다가 해결을 하게 되어서 정리를 해보려고 합니다 :)

 

우선 저의 상황은 다음과 같았습니다.

  • nodeJS + mongoose로 로그인/회원가입 API 구현
  • AWS EC2를 통해 배포 시도

문제 상황에 따라 해결하는 방법을 정리해봅시다.

1. Git

① private repository clone

EC2를 통해 클론을 시도할 경우 클론하려는 private repository일 경우 권한 문제로 클론이 되지 않습니다.

→ EC2에 private repository를 pull 할 수 있는 권한 주기

 

해결방법

  • EC2에서 ssh key 발급

  • EC2에서 키 확인
    • ~/.ssh

  • 공개키의 내용을 확인/복사 해서 github에 등록
    • cat ~/.ssh/id_rea.pub
      • 복사
    • https://github.com/settings/keys
      • New SSH key
      • 붙여넣기

여기까지 완료하면 private repository를 클론하는 것이 잘 될 것입니다.

 

2. 지속 배포

① 단순 터미널 실행

sudo node index.js

위 코드로 실행을 하게 되면 터미널을 끄면 프로세스가 자동으로 종료됩니다.

 

② 지속 실행(터미널을 꺼도 EC2가 켜져있는 한 계속 실행됨)

pm2 global 환경으로 설치 후 실행을 해야 합니다.

sudo npm install pm2 -g

이제 pm2로 실행해주면 현재 터미널을 꺼도 EC2가 켜져있는 동안에는 계속 실행이 됩니다.

sudo pm2 start index.js

 

pm2를 설치하지 않고도 바로 지속 실행할 수 있는 방법도 존재합니다.

nohup sudo node index.js &

뒤에 '&'을 꼭 빼먹지 말고 같이 입력해 줍니다!

 

3. 80번 port 권한

로컬에서 구현을 해서 이제 EC2에서 부여해준 IP를 통해 배포를 해야할 때는 80번 포트 번호를 사용해야 합니다.

그런데 EC2에서 권한을 가지고 있지 않아 IP로 접속이 되지 않는 경우가 있습니다.

  • cat package.json

"start" : "sudo ..." 와 같이 맨 앞에 sudo를 붙여줘야 합니다.

 

4. MongoDB 외부 접속 권한

본인이 설정한 MongoDB 포트 번호를

  • EC2의 보안 그룹 > 인바운드 규칙 편집에서 해당 포트 번호를 규칙에 추가(기본: 27017)

  • mongoDB 설정 변경
    • nano /etc/mongod.conf

설정 변경 후 재시작 해줍니다.

service mongod restart

 

728x90
LIST

'백엔드 > NodeJS' 카테고리의 다른 글

[NodeJS] prettier & eslint 설정하기  (0) 2022.12.27
[NodeJS] body-parser란?  (0) 2022.12.02
[NodeJS] NodeJS(express) + React 연동하기  (0) 2022.11.24
[NodeJS] NodeJS 처음 시작하기  (2) 2022.11.20
[NodeJS] NodeJS 소개  (0) 2022.11.19
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함