환경세팅

[AWS/NestJS] AWS에 NestJS,MongoDB 설치

ohyujeong 2022. 2. 3. 14:48

사용 스택 : NestJs, mongodb

개발 환경 : AWS EC2, ubuntu

 

NestJS는 Nodejs프레임 워크이다. 따라서 NestJS 프로젝트를 생성하기 위해서는 우선 nodejs를 설치해야 한다.

 

nvm(Node Version Manager)을 통해서 원하는 nodejs버전을 다운 받을 수 있다. 

https://github.com/nvm-sh/nvm

 

GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions - GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active nod...

github.com

이 깃허브의 README에 적힌 명령어를 작성하면 된다. 

 

 

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

//wget으로 설치한 스크립트 파일을 사용하기 위해 source명령어를 입력한다.
source ~/.bashrc 

//원하는 버전으로 nodejs를 설치할 수 있다.
nvm install 14.18.3 
node -v
npm -v

 

 

DB는 MongoDB를 사용했고, DB도 EC2 서버에 설치해주었다.

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt update
sudo apt install -y mongodb-org

//mongod 시작 명령어
sudo service mongod start

//정상동작하는 지 상태 확인 running이라는 초록문자가 뜨면 정상 작동 된 거다.
sudo service mongod status

//mongo 쉘 접속해서 관리자 계정을 생성해준다.
mongo

//변경사항 적용하기 위해 mongod 재시작
sudo service mongod restart

 

https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-20-04

이 링크의 명령어를 참고해서 DB를 설치했다. 

 

외부에서의 mongodb 접속을 허용하기 위해 파일 한 개를 수정해줘야 한다.

sudo vi /etc/mongod.conf

위 명령어를 입력하면 이러한 에디터가 뜬다.

bindIP의 기본설정을 127.0.0.0에서 0.0.0.0으로 바꿔준다. 이전에는 로컬에서만 접속이 가능했는데, IP 주소를 바꿔줌으로써 외부 접속이 가능해진다.

 

security의 주석을 해제하고 authorization: enabled로 값을 변경한다.

작성하면

esc 을 누르고 wq! 입력해서 저장 후 나온다.

 

 

이후 

sudo service mongod restart 

을 입력해서 변경사항을 적용해준다. 

 

그리고 AWS 인스턴스에서 보안그룹에 mongodb port인 27017을 추가해주면

이제 해당 서버에서 db가 정상적으로 동작한다. 

 

다음으로 원격 저장소에 있는 프로젝트를 불러오기 위해 git을 설치해준다. 

sudo apt install git
git --version

 

nestjs를 설치하고 git clone으로 원격 저장소를 가져온다.

가져온 저장소 폴더에 들어가서 npm i로 모듈을 모두 다운 받아주면 nestjs 프로젝트가 ec2에서 정상 작동한다.

npm i -g @nestjs/cli
git clone [gitHub repository link]
npm i