개발 => 복습 후 재정리 대기/AWS

[AWS] Node.js, MongoBD 환경 구축

장 상 현 2021. 7. 15.

1. ec2 구매

 - 구매 후 포트 설정

2. ec2 접속

 - git bash 실행

sudo chmod 400 키페어

ssh -i 키페어 ubuntu@aws ip

 

 - Node 설치

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

sudo apt-get install -y nodejs

node -v와 npm -v를 통해 제대로 설치되었는지 확인하자.

 

 - 리눅스 기본 명령어

ls: 내 위치의 모든 파일을 보여준다.

pwd: 내 위치(폴더의 경로)를 알려준다.

mkdir: 내 위치 아래에 폴더를 하나 만든다.

cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.

cd .. : 나를 상위 폴더로 이동시킨다.

cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기

rm -rf [지울 것]: 지우기

sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)

3. MongoDB 설치 & 실행

 - 설치

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list

sudo apt-get update

sudo apt-get install -y mongodb-org

 - 실행

sudo service mongod start
// 실행. 아무 반응이 없으면, 잘 실행된 것! 리눅스는 보통 잘 되면 아무것도 안나와요!^^;

 

4. MongoDB 계정 생성

mongo
// 좌측에 '>' 표시가 나오면 성공적으로 MongoDB에 접속한 것입니다! 다음 명령어를 순차적으로 입력해주세요.
// 눈치 채셨겠지만, test, test 자리에 내가 넣고 싶은 아이디/비밀번호를 넣으면 됩니다. (영어로..!)

use admin;
// admin으로 계정 바꾸기

db.createUser({user: "test", pwd: "test", roles:["root"]});
// 계정 생성하기

exit
// 나오기

sudo service mongod restart
// MongoDB 재시작

 

5. MongoDB 외부에 열어주기

sudo vi /etc/mongod.conf
// sudo: 관리자(SuperUser) 권한으로 다음을 실행
// => "관리자 권한으로 /etc 폴더 아래 mongod.conf 파일을 Vim으로 켜줘!"라는 뜻입니다

i
// 입력 모드 전환

authorization: enabled
// 입력

// 내용 저장하고 에디터 종료하기. esc 누르고 다음 입력.
:wq

sudo service mongod restart
// 재시작

6. Robo3T를 이용해서, "내 컴퓨터에서"→"서버에 있는 mongoDB"에 접속하기

좌측 상단 빨간 상자 내 아이콘을 클릭합니다.

Create 클릭!

접속 정보를 세팅합니다.

  1. 상단 Authentication 탭을 클릭합니다.
  2. Perform authentication 체크박스를 클릭합니다.
  3. 생성한 계정의 아이디와 비밀번호를 입력하고, 'save'를 클릭합니다.

7. 프로젝트 업로드 후 실행하기, PM2

 

 - git clone 주소 또는 Filezilla 이용하여 업로드 후

npm install 
// 패키지 설치

sudo -s 
// 리눅스 서버 관리자 권한 획득

npm install -g pm2 
// mp2 설치

에러시? 스키마 파일명 소문자인지 확인

 

 - 포트 포워딩

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000

 - pm2 명령어

pm2 start app.js

pm2 list

pm2 logs

pm2 monit

pm2 kill

댓글