AWS - EC2 express 배포

kangdari·2020년 7월 8일
8

EC2 생성 및 서버 접속

보안 그룹 설정을 해줍니다.

ssh - 22
http - 80
https - 443
사용자 지정 tcp - [ port ]

node, git 설치 후 서버 실행

  1. 터미널 실행 후 ec2 인스턴스 접속(unix)
    $ ssh -i [Key path] ubuntu@[Public DNS]

  2. AWS의 Ubuntu 시스템에 들어오면 시스템을 업데이트
    $ sudo apt-get update

  3. node.js 설치
    $ sudo apt-get install nodejs
    명령어 작성 후 nodejs 또는 node --version 명령어로 설치가 되었는지 확인합니다.

nodejs 최신 버전 다운

  1. npm 설치
    $ sudo apt-get install npm

  2. git 설치를 위해 우선 패키지 리스트를 업데이트
    $ sudo apt-get install git

  3. git 설치
    $ sudo apt install git
    설치 후 git --version 명령어를 작성하여 설치가 되었는지 확인합니다.

  4. git 기본 정보 설정
    $ git config --global user.name [username]
    $ git config --global user.email [email]
    설정 후 git config --list 명령어로 확인 가능합니다.

  5. 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

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

Port redirection

현재 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

0개의 댓글