오늘은 AWS에서 NodeJS를 사용할 수 있도록,

서버에 AWS를 설치하고, 필요한 설정을 하는 것에 대해서 정리해 보겠습니다.

설치 환경은  EC2 Instance의 Ubuntu를 기준으로 합니다.

 

1. NodeJS설치

아래 사이트에서는 NodeJS를 ubuntu에서 설치할 수 있는 방법이 안내되어 있는데요.

(https://github.com/nodesource/distributions/blob/master/README.md)

 

아래와 같은 화면을 볼 수 있습니다.

현재 LTS인 12.x버전의 설치 방법에 대해서는 아래와 같이 나와있네요.

 

 

위에서 나온대로, 아래와 같이 명령어를 사용하겠습니다.

curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
sudo apt-get install -y nodejs

 

 

먼저 curl 명령어를 사용하구요.

 

 

다음으로는 두번째 줄에 나온것과 같이, 아래 명령어를 입력해 주겠습니다.

sudo apt-get install nodejs

 

설치를 끝내고, 정상적으로 설치가 되었는지 확인을 하기 위해서,

아래 명령어로 버전을 확인해 줍니다.

node -v

정상적으로 설치되었다면, 12버전이 설치된 것을 확인할 수 있습니다.

 

 

2. AWS서버 파일 소유권 변경

NodeJS의 모듈들을 사용하기 위해서는 NPM을 사용해야 할 것이고,

initialize작업 및 이 모듈들에 대한 설치작업이 필요한데요.

이러한 작업을 하기전에,

해주어야 하는 것이 파일들의 소유권을 변경해 주는 것 입니다.

 

왜 NODEJS시작하자 마자, 파일의 소유권을 변경해 주어야 하는 것 일까요?

그것은 AWS서버로 처음 접속하게 되면, ubuntu라는 유저로 접속되어 있는데요.

이 user가 루트유저가 아니어서 파일의 소유권때문에 설치시에 이런저런 문제를 겪을 수 있기 때문입니다.

 

그래서 아래 명령어와 같이, 모든 파일의 소유권을 ubuntu라고 하는 user로 변경해 주는 것 이지요.

참고로, linux에서의 chown 명령어는 파일이나 디렉토리의 소유권자를 변경하기 위해서 사용하는 것 이지요.

sudo chown ubuntu .

 

 

그럼 굳이 그렇게 하지 않고 EC2서버 생성후에,

서버 루트 관리자 계정 만드는 작업을 거쳐서,

ubuntu라는 디폴트 user가 아닌 루트 관리자로 로그인하면 되지 않을까 생각하시는 분들도 있으실텐데요.

맞습니다. 그렇게 루트관리자와 비밀번호를 설정한다음,

SSH환경설정 파일을 바꾸는 방법도 가능합니다.

 

3. NPM

권한을 ubuntu에게 넘겨주어서, 디렉토리를 생성할 수 있게 되었으므로,

프로젝트 이름의 디렉토리를 생성해 줍니다.

mkdir <프로젝트 이름>

 

역시 제일 먼저 해야할 것은 

npm init인데요.

npm init --yes 를 입력해서, 디폴트값으로 initialize되도록 해줍니다.

그럼 아래와 같은 package.json이 생성이 되었을 텐데요.

 

 

express등 필요한 module들을 이제

npm install 명령어를 통해서 설치해 줍니다.

 

package.json을 이용한 npm사용법은 아래글을 참조해 주세요.

>> NPM 의 package.json을 이용한 효율적 설치 방법 #NodeJS

 

저는 일일히 설치하지 않고,

아래와 같이 필요한 dependencies를 추가해 놓고 나서,

npm install을 실행하겠습니다.

 

 

이제 아래 명령어를 설정해 놓은 package.json을 이용해 설치해 줍니다.

npm install

 

이제 nodejs와 필요한 모듈들이 설치가 다 되었습니다.

 

 

4. 실행시 포트와 관련한 권한

aws에서 node app.js를 실행할 경우, 에러가 나는데요.

이것은 1024포트 미만의 경우, root권한이 필요하기 때문입니다.

 

따라서, sudo를 붙여서 아래 명령어와 같이 실행해 주면 됩니다.

sudo node app.js

 

이상으로 AWS에서 Nodejs를 설치하고 NPM을 이용한 모듈설치까지 정리해 보았습니다.

728x90

+ Recent posts