-
AWS&Node.js 서버 구동AWS 2018. 4. 28. 18:22
- AWS & Node.js 서버
AWS (Amazon Web Service) 을 통해 Node.js 서버를 구동하는 방법에 대해서 알아보자.
먼저 AWS EC2를 통해 인스턴스(컴퓨터)를 하나 만들자. 인스턴스 만드는 과정에 대해서는 생략하겠다.
필자는 AMI는 Ubuntu Server 16.04 / 보안 그룹은 아래의 그림과 같이 SSH,HTTP,HTTPS 을 Inbound 규칙에 추가하였다.
하였다.
인스턴스를 생성하고 난뒤 Putty (windows용 가상터미널)로 인스턴스를 연결한 이후의 과정을 알아보자.
먼저
$ sudo apt-get update
- root 권한으로 패키지 목록을 업데이트
$ sudo apt-get upgrade
- root 권한으로 패키지 업그레이드
Node.js 를 설치하는 방법이다.
$ sudo apt-get install nodejs
$ sudo apt-get install npm
- apt-get 명령어로 Nodejs 와 npm(Node Package Manager)을 설치하자.
이렇게 설치된 Nodejs와 npm 의 버전을 확인해 보면?
v4.2.6 / 3.5.2 -> 공식 Ubuntu 저장소에서 지원되는 버전이다. 하지만 이것보다 더 최신의 버전을 설치하고 싶은 이들에게는 다른 방법이 있다.
PPA를 사용하여 설치하는 방법이다.
- Nodejs 최신 버전 설치
Node.js의 최신 버전을 얻을 수있는 대안은 NodeSource 가 관리하는 PPA(personal package archive)를 추가하는 것이다.
이것은 공식 Ubuntu 저장소보다 더 최신 버전의 Node.js를 가지며 Node.js v4.x (2018 년 4 월까지 지원되는 오래된 장기 지원 버전) 에서 Node.js v6.x (2019 년 4 월까지 지원), Node.js v8.x (현재 LTS 버전, 2019 년 12 월까지 지원됨) 중에 선택할 수 있다.
순서는 이러하다.
$ cd ~
$ curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh
먼저 홈디렉토리로 이동하자.
그 후 PPA를 설치해야 해당 내용에 엑세스 할수 있다. 홈디렉토리에 curl 이 있는지 확인하고 지원하고 있는 현재 최신 버전인 8.x을 설치한다.
$ sudo bash nodesource_setup.sh
$ sudo apt-get install nodejs
$ nodejs -v
nodesource로 부터 setup script을 실행 시킨후 Nodejs을 설치하고 난후 버전을 확인해 보면.
v8.11.1 / 5.6.0 버전이 설치된것을 확인할수 있다.
자 이제 Nodejs는 설치되었고 이제 만들어진 서버를 올릴 차례이다.
방법 자체는 다양할 수 있겠지만 그중 FTP 프로그램을 통해 파일을 옮겨 보는 방법을 알아 보자.
WinSCP 프로그램을 통해 로컬에 저장된 Nodejs 파일을 옮겨 보자.
- WinSCP ( FTP 프로그램 )
WinSCP 프로그램을 시작했을때 처음 생성되는 창의 모습이다.
'호스트 이름' 창에는 생성한 인스턴스의 퍼블릭 DNS 나 IP 주소를 입력한다.
'사용자 이름' 창에느 인스턴스의 AMI 가 Ubuntu 였기 때문에 ubuntu 를 입력한다. ( Amazon Linux 는 ec2-user 이다.)
그후 고급 창을 누르면 다음과 같은 새 창이 뜬다.
고급 사이트 설정 창에서 왼쪽 메뉴목록중 SSH - 인증 을 누른후 개인키 파일 창에 생성한 인스턴스에 사용한 키페어 ppk 파일의 위치 경로를 찾아 넣고 '확인' 을 누른후 '로그인'을 누르면 아래와 같이 경고 창이 뜬다.
가볍게 읽어주고 '예' 를 누르면 왼쪽에는 내 데스크탑의 모습들이 오른쪽에는 AWS 인스턴스에 접속한 모습이 보여진다.
간단하게 드래그 인 드랍 방식으로 파일이나 폴더를 옮길 수 있기에 더이상의 작업은 생략하도록 하겠다.
- Node.js 서버 백그라운드 실행
node.js 파일이 옮겨지고 정상적으로 실행이 되는 것을 확인 했으면 이제 백그라운드에 실행하는 법을 알아보자.
putty 창이 꺼져도 서버가 실행될수 있도록 해야 하기에 이 작업 필요하다.
$ sudo nohup node (js파일) &
위와 같이 nohup & 명령어를 사용하여 웹 서버를 구동시키는 방법이다.
nohup & 는 백그라운드 방식으로 프로세스를 실행해주며 로그아웃(서버와 세션이 종료되는 것)이 되어도 백그라운드로 해당 명령을 계속 수행하게 해주는 명령어이다.
명령어를 실행시켰을때 위와 같이 백그라운드에 프로세스가 올라갔다면 'Enter' 키를 누른후 빠져나오면 된다.
$ ps -ef
$ sudo kill -9 PID
ps -ef 명령어를 통해 프로세스가 계속 실행되고 있는지 확인할수 있으며
sudo kill -9 [ 종료하고 싶은 프로세스 PID ] 명령어를 통해 프로세스를 강제 종료시켜준다.
2018.11.11 업데이트
nohup 와 & 명령어로 백그라운드 실행이 안될시
npm install forever -g
forever start (실행할 js파일)
이 작업으로 대체 가능하다.
또한 강제 종료시키고 싶을시
forever list
forever stop (번호)
http://myeonguni.tistory.com/1535
https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04
'AWS' 카테고리의 다른 글
AWS 프리 티어 (0) 2018.04.18 AWS Certificate Manager (0) 2018.04.01