aws ec2 생성하기
https://develop-const.tistory.com/40
aws ec2 접속하기
https://develop-const.tistory.com/41
위의 과정을 완료한후 우분투 서버로 들어와주세요
ssh -i 키파일명.pem ubuntu@퍼블릭_ip
1. ubuntu 기본 세팅하기
sudo apt-get update는 저장소의 패키지 목록을 업데이트하고, sudo apt-get upgrade는 시스템에 설치된 패키지를 새로운 버전으로 업그레이드합니다.
sudo apt-get update
sudo apt-get upgrade
2. node 설치하기
노드 버전 관리자 (Node Version Manager, NVM) 설치 (권장): NVM을 사용하면 다양한 Node.js 버전을 관리하고 손쉽게 전환할 수 있습니다.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
//설치 버전 확인
nvm --verion
Node.js 설치 ( npm과 함께 설치됨)
//특정 버전 설치
nvm install 18.17.0
//최신 버전 설치
nvm install node
//설치 확인
node -v
npm -v
3. pm2 설치하기
pm2는 Node.js 애플리케이션을 관리하고 실행하기 위한 프로세스 관리 도구입니다. PM2를 사용하면 애플리케이션을 백그라운드에서 실행하고, 로그를 관리하며, 자동으로 다시 시작하거나 확장하는 등의 작업을 수행할 수 있습니다. 즉 서버가 꺼지지않고 운영되도록 합니다.
우선 실행시킬 프로젝트가 없으니 pm2 전역에 설치하고 다음단계로 넘어가 주세요.
//pm2 전역에 설치하기
npm install -g pm2
//pm2로 nest js 백앤드 서버 실행하기
pm2 start dist/main.js
//pm2로 node js 백앤드 서버 실행하기
pm2 start app.js
//실행 중인 프로세스 목록 확인
pm2 list
//프로세스 로그 확인
pm2 logs <앱 이름>
//프로세스 중지 및 삭제
pm2 stop <앱 이름>
//프로세스를 삭제
pm2 delete <앱 이름>
4. nginx 설치하기
Nginx(엔진엑스)는 웹 서버로서 다음과 같은 주요 특징을 가지고 있습니다:
- 빠른 성능: Nginx는 빠른 속도와 높은 성능을 제공하여 웹 페이지 및 콘텐츠를 빠르게 전달할 수 있습니다.
- 리버스 프록시: Nginx는 클라이언트 요청을 웹 애플리케이션 서버로 전달해주는 역할을 하는데, 이를 통해 보안과 성능을 향상시킬 수 있습니다.
- 로드 밸런싱: 여러 대의 서버 사이에 요청을 분산하여 부하를 고르게 분담해주어 웹 사이트의 안정성과 성능을 개선할 수 있습니다.
- 정적 파일 서빙: Nginx는 이미지, 스타일 시트, 자바스크립트와 같은 정적 파일을 효율적으로 제공해주어 웹 페이지 로딩 속도를 높일 수 있습니다.
- SSL 및 TLS 지원: 보안을 강화하기 위해 HTTPS를 사용하여 암호화된 통신을 제공하며, SSL 인증서를 관리할 수 있습니다.
- 간단한 설정: Nginx의 설정 파일은 직관적이고 간단하여 사용자가 쉽게 설정을 조작할 수 있습니다.
- 가상 호스팅: 하나의 서버에서 여러 개의 도메인을 호스팅할 수 있어 여러 웹사이트를 동시에 운영할 수 있습니다.
- 모듈 확장성: 다양한 모듈을 사용하여 Nginx의 기능을 확장하거나 맞춤 설정할 수 있습니다.
이러한 특징들로 Nginx는 높은 성능과 안정성을 제공하며, 웹 애플리케이션 및 서버 환경을 효과적으로 관리할 수 있습니다.
sudo apt-get install nginx
//설치 확인하기
nginx -v
nginx 실행시키기
cd /etc/nginx/
sudo service nginx start
http://<공개 아이피 주소> 로 접근하면 이렇게 nginx 페이지가 뜨는것을 볼수 있습니다. 만약에 안뜨는분은 보안그룹 설정에 80번 포트가 열려있는지 확인해주세요
5. 프로젝트 클론받기
프로젝트 클론받기전에 우분투 서버에 프로젝트 폴더를 만들어줍니다
cd /home/ubuntu
mkdir project
cd project
sudo git clone <클론받을 주소명>
아이디랑 비밀번호를 입력하면 클론이 완료됩니다 ls 명령어를 입력해 잘 받아졌는지 확인합니다.
package.json 파일에 정의된 종속성을 설치해주세요
npm install
만약 퍼미션 관련해서 에러가 난다면 파일권한을 변경해주세요 ~
cd ..
sudo chmod -R 777 <프로젝트명>
cd <프로젝트명>
npm install
이제 서버를 실행시켜봅시다.
npm run start
하지만 위의 방식으로 실행하면 터미널을 닫았을 때 서버도 종료 되기 때문에 pm2로 실행시켜 서버가 중단되지 않게 해줍니다.
pm2 start dist/main.js <프로젝트명>
pm2 list 해보면 현재 실행되고 있는 서버 리스트를 볼수있습니다
저는 개발용 서버 포트를 3000 포트를 사용하기 때문에
http://<공개 아이피 주소>:3000으로 접근하시면 잘 뜨는것을 확인하실수 있을것입니다 ^^ !
만약 3000번 포트로 접속을 하였는데 접속이 안되는경우에 보안그룹에 인바운드 규칙에 3000번 포트를 열었는지 확인해보시길 바랍니다.
혹시나 모르는분들을 위해 나중에 보안그룹 설정하는법도 다뤄보겠습니다 ~
다음시간에는 스크립트 파일을 이용하여 자동배포하는법 , ssl 인증서 등록하는법 , 도메인 붙이는법을 배워볼태니 잘 따라와 주세요
'기타' 카테고리의 다른 글
aws 스크립트 사용해 nest js 자동배포하기 (0) | 2023.08.03 |
---|---|
aws 인스턴스 고정 IP (탄력적 IP) 생성하기 (0) | 2023.08.03 |
aws ec2 서버 생성하기 (0) | 2023.08.03 |
git 명령어 모음 (0) | 2023.08.02 |
JWT(JSON Web Token) 토큰이란?? (0) | 2023.04.07 |