본문 바로가기
개발(Development)/Etc(기타)

[GCP] node.js 웹 서버 배포 방법(Compute Engine VM인스턴스/구글클라우드플랫폼)

by 카레유 2021. 4. 25.

# GCP Compute Engine에 node.js 서버 배포 방법 정리

Google Cloud Platform(GCP)의 Compute Engine - VM인스턴스 상에서

node.js 웹 서버를 배포하고 기동하는 방법을 정리합니다.

 

간단하게 웹 콘솔로 접근하는 방식을 사용합니다.

 

GCP가입 및 Compute Engine-VM인스턴스를 생성 방법은 아래 글 참고.

[GCP] Compute Engine에 VM인스턴스 생성하는 방법(구글클라우드플랫폼)


1. SSH 접속

1) GCP > Compute Engine > VM인스턴스 접속 > SSH 클릭

 

브라우저 웹 콘솔에 연결되면, 아래과 같은 화면이 뜬다.

 

2. 루트 계정으로 변경

명령어:  sudo su 

원활한 서버 배포 및 구동을 위해 루트 계정으로 변경 후 작업을 시작한다.

 

혹시 node 자체가 설치되어 있지 않은 경우라면, node부터 설치하고 시작한다.

아래 명렁어는 ubuntu 기준, node 14.x 버전 설치 명령어이다.

 curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - 

 sudo apt-get install -y nodejs 

 

혹시 잘 안된다면 아래 명령어 실행후, 다시 시도해본다.

 sudo apt-get update 

 sudo apt-get install -y build-essential 

 sudo apt-get install curl 

 

다른 OS라면 https://nodejs.org/ko/download/package-manager/ 에서 설치방법을 확인하자.

 

3. 배포용 디렉터리 만들기

디렉터리 "생성" 명령어:  mkdir 디렉터리 

디렉터리 "진입" 명령어:  cd 디렉터리 

서버 프로젝트를 배포할 myService폴더를 만들었다.

각자의 상황에 따라 알맞게 폴더를 만들어보자.

디렉터리를 잘못 만들었을 땐, "rmdir 디렉터리" 혹은 "rm -r 디렉터리" 명령어로 삭제하고 다시 만들면 된다.

 

4. Git에서 소스코드 다운로드

명령어:  git clone 'git프로젝트주소' 

참고로 git의 프로젝트 폴더까지 복사되므로, 경로 설정에 주의하자.

(myService라는 프로젝트를 클론하면 myService 폴더째로 다운로드되어 위의 경우, myService/myService가 된다는 의미)

 

github.com의 경우, 아래 화면의 주소를 복붙해서 사용하면 된다.

 

5. node 모듈 설치

명령어:  npm install 

package.json 파일이 있는 경우, npm install 명령어를 실행하면 모든 모듈이 자동으로 설치된다.

혹시 package.json 파일이 없는 경우라면, "npm install 모듈명" 로 모두 설치해주어야 한다.

 

가끔 권한 문제로 에러가 날 때가 있는데 당황하지 말고 sudo npm install 해주면 된다.

(npm install 은 npm i 로 줄여 써도 된다)

 

6. node 서버 구동

명령어:  node 파일명 

app.js 파일에 서버 구동 코드가 있는 경우 node app 등으로 서버를 구동하면 된다.

 

개인적으로 개발 환경에서는 nodemon 모듈로 서버를 구동하고,

실제 배포 환경에서는 pm2 모듈 등을 이용해 서버를 구동하는 편이다.

 

7. 브라우저로 접속해보기

아래의 "http://외부 IP" 주소로 브라우저에서 접속해보면, 정상적으로 화면이 노출될 것이다.

단번에 성공했다면 정말 운이 좋은 케이스다.

알 수 없는 여러가지 문제가 발생하여 접속이 잘 안 되는 사태가 발생할 수 있다.

 

혹시 접속이 되지 않는다면, 우선적으로 https 유무와 port 번호 등을 체크해 보고 재접속 해본다.

 

필자는 엄청 고생을 많이 했는데, 이 글을 읽으시는 분들은 부디 성공하시길 바란다.

 

GCP에 node.js 서버 배포 정리 끝!


가끔 http로 접속하면서 helmet 모듈을 사용하면, 화면이 다 깨져버릴 수가 있는데 이 경우엔 아래 글을 참고.

 

node.js 서버배포 후, https 리소스 요청으로 화면 깨지는 문제 해결 방법(helmet 모듈)

 

node.js 서버배포 후, https 리소스 요청으로 화면 깨지는 문제 해결 방법(helmet 모듈)

# 문제 현상 node.js 웹서버를 배포, 기동 후 접속했는데, CSS, JS, 이미지 리소스 로드에 실패하여 화면이 깨지는 현상이 발생할 때가 있다. (자바스크립트를 로드하지 못해서 웹페이지 자체가 작동

curryyou.tistory.com

 

 

댓글