지난 글에서 EC2 인스턴스를 생성해보았고, 이 글에서는 SSH를 통해 EC2 인스턴스에 접속하고 NestJS 서버를 배포하는 과정을 다루려고 한다.
Download 디렉토리에 있는 키 페어 파일 이동
mv 키페어이름.pem ~/.ssh
SSH 디렉토리로 이동
cd ~/.ssh
SSH 접속
ssh -i ./키페어이름.pem ubuntu@<EC2-인스턴스-퍼블릭-IP>
만약 다음과 같은 오류가 발생하면
permissions 0644 for './키페어이름.pem' are too open.
다음 명령어로 키 페어 파일의 권한을 축소해주면 된다.
chmod 400 키페어이름.pem
home/ubuntu 아래 디렉토리 생성
mkdir ~/your_project_directory
cd ~/your_project_directory
필요한 파일 업로드:
dist
(빌드 폴더).env
package.json
package-lock.json
이를 위해 Filezila를 사용하여 SFTP 접속하여 로컬에서 EC2로 파일을 전송
참조 링크: [AWS] EC2 - FileZilla 연결
시스템 업데이트
sudo apt-get update
sudo apt-get -y upgrade
Node.js 설치
sudo apt-get install -y nodejs
프로젝트 의존성 설치
npm install
PM2 설치
PM2를 사용하면 애플리케이션이 항상 실행되도록 관리할 수 있음
sudo npm i pm2 -g
Nest 애플리케이션 실행
pm2 start dist/main.js