ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.