보안 그룹 설정을 해줍니다.
ssh - 22
http - 80
https - 443
사용자 지정 tcp - [ port ]
터미널 실행 후 ec2 인스턴스 접속(unix)
$ ssh -i [Key path] ubuntu@[Public DNS]
AWS의 Ubuntu 시스템에 들어오면 시스템을 업데이트
$ sudo apt-get update
node.js 설치
$ sudo apt-get install nodejs
명령어 작성 후 nodejs
또는 node --version
명령어로 설치가 되었는지 확인합니다.
npm 설치
$ sudo apt-get install npm
git 설치를 위해 우선 패키지 리스트를 업데이트
$ sudo apt-get install git
git 설치
$ sudo apt install git
설치 후 git --version
명령어를 작성하여 설치가 되었는지 확인합니다.
git 기본 정보 설정
$ git config --global user.name [username]
$ git config --global user.email [email]
설정 후 git config --list
명령어로 확인 가능합니다.
git 프로젝트 clone
$ git clone [url]
이제 평소 사용하던 방식대로 서버를 실행할 수 있습니다.
서버 실행 후 웹 브라우저에서 서버가 잘 실행되는지 확인합니다.
주소창에 Public DNS:port number 입력했습니다. 정상적으로 작동되네요.
현재는 터미널을 종료하면 서버도 함께 종료됩니다. express 서버를 백그라운드에 실행시켜 터미널을 종료하더라도 서버가 실행하는 방법입니다.
$ sudo nohup node [server file] &
nohup 명령과 &을 입력하면 백그라운드로 express 서버를 실행시킵니다.
10020은 process ID를 의미합니다. 이제 터미널을 종료하고 웹 브라우저를 새로고침하더라도 server가 접속됩니다.
다음 명령어를 통해 현재 실행 중인 process 목록을 확인할 수 있습니다.
$ ps -ef
현재 process ID 10020으로 express 서버가 실행 중임을 확인할 수 있습니다.
백그라운드로 실행중인 process를 종료하려면 터미널에 아래 명령어를 작성합니다.
$ sudo kill [process ID]
process가 종료되면 이제 브라우저에서 서버에 접속이 불가능합니다.
pm2 설치
sudo npm install pm2 -g
or npm install pm2 -g
서버 실행
pm2 start fileName
주요 명령어
pm2 실행중인 프로세스 목록
pm2 list
pm2 실행 멈추기
pm2 stop [process 이름]
pm2 로그 확인
pm2 logs id
or pm2 logs name
현재 express의 port 번호는 3001입니다. 3001은 웹 서버의 기본 port 번호가 아니기 때문에 브라우저에서 접속하려면 port 번호를 입력해야 합니다.
아래 명령어를 통해 80번 포트를 자동으로 3001번 포트로 redirection 해줍니다.
$ sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3001