본문 바로가기
일상 다 반사

프로젝트 배포하는 방법 - GCP

by 둥굴프 2023. 4. 16.

최근에 작업한 프로젝트를 새로운 인스턴스에 배포해야 하는 상황이 생겼다.

겸사겸사 당시 기록하지 못했던 구축 과정을 기록해 본다.

 

#1 인스턴스 구매

 

나는 구글 클라우드 플랫폼에서 VM 인스턴스를 대여했다.

https://console.cloud.google.com/

 

왜냐면, 신규 회원에게 300달러 규모의 크레디트를 제공하기 때문에 여유로운 환경에서 3개월 동안 프로젝트를 배포할 수 있기 때문이다.

 

신규 회원 등록을 마치고 Compute Engine 카테고리에서 인스턴스를 입맛에 맞게 대여해라.

 

대여하면 이처럼 보인다.

 

#2 도메인 구매

 

도메인은 있어도 없어도 상관없는데, 이왕이면 이쁜 이름 지어주자.

본인은 가비아에서 1년 500원 도메인을 구매했다.

https://my.gabia.com/

 

My가비아에서 내가 구매한 도메인 확인하자

 

이제 여러분은 서버를 돌릴 컴퓨터도 생겼고, 이쁜 이름도 있다.

이제 이름을 누르면 서버가 돌아가는 컴퓨터로 연결되는 작업을 하자.

 

다시 GCP (구글 클라우드 플랫폼)으로 돌아가서 네트워크 서비스 - Cloud DNS로 가보자.

여기로~

 

영역 만들기를 클릭하여 영역 이름(마음껏 정하고)과 DNS 이름(우리가 구매한 이쁜 이름)을 기입하고 만들기 클릭.

Cloud Logging은 유료 서비스

그러면 다음과 같은 창이 뜰 텐데, 우리는 하나 추가해야 한다.

표준 추가를 클릭하여 A 레코드를 추가하자. 그 이유는 곧 나온다.

표준 추가 클릭
레코드 A는 나중에 NGINX에 사용된다

 

#3 도메인 연결

이제 우리가 구입한 도메인과 대여한 인스턴스를 연결해 보자.

네트워크 서비스 - Cloud DNS 레코드 모음에 보면 유형중 NS가 보일 것이다.

 

클릭

라우팅 데이터를 복사해서 가비아에 입력해 주면 된다.

총 4개 다 복 붙

가비아 - My가비아 - 이용 중인 서비스 - 도메인 - 관리 - 네임서버 설정

 

#4 배포 환경 설정

이제 우리가 대여한 인스턴스에 배포 환경을 설정하자.

어떤 것들을 해야 할까?

Git, node 설치하고, Nginx 설치하고 Nginx 설정해야 한다.

작년까지만 해도 filezilla, putty, gitbash 등을 사용하여 대여한 인스턴스에 접속했다.

요즘은 브라우저에서 접속할 수 있어서, 다음과 같이 접속하면 된다.

 

SSH 클릭

자.. 그러면 node부터 설치하자.

1. nvm(노드 버전 관리자)을 설치

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

2. nvm을 활성화

. ~/.nvm/nvm.sh

3. Node.js의 최신 버전을 설치

nvm install --lts

4. Node.js가 올바르게 설치되고 실행되는지 테스트

node -e "console.log('Running Node.js ' + process.version)"

이렇게 하면 실행 중인 Node.js의 버전을 보여 주는 메시지가 다음과 같이 표시된다.

본인은 'Running Node.js v18.16.0'이 출력됐다.

 

 

이제 Git을 설치해 보자.

1. 현재 우분투 관리하고 있는 소프트웨어들을 최신버전으로 업데이트

sudo apt-get update

2. git 설치

sudo apt-get install git

3. git 버전 확인

git --version

 

그러면 Nginx 설치 및 설정하자.

(nginx를 사용하는 이유는 프로젝트에 https통신이 필요해서)

Nginx 설치 및 설정은 다음의 블로그를 그대로 따라갔다.

https://hudi.blog/https-with-nginx-and-lets-encrypt/

이 과정에서 주의점을 준다면 vim 에디터를 통해 수정해야 할 때 sudo로 진행해야 한다.

우리가 위에서 도메인을 구매하고 연결한 이유는 Nginx 설정파일의 server_name이 필수적이기 때문이다.

IP값을 넣어보고 작업해 봤지만, 안 됐다. (내가 잘못 작업했을 가능성도 높다.)

 

#5 배포

node 환경이기 때문에 pm2를 사용하여 서버를 실행하자.

1. pm2 전역 설치

npm install pm2 -g

 

#6 글을 마치며

이제 원격 저장소( github )에 있는 소스를 받아서 실행시켜 주면 된다.

여기서 글을 마치는 이유는 배포 방식과 스택에 따라 다를거라 예상해서 글을 마친다.

 

 

 

 

 

 

 

 

만약 NGINX config 파일에 대한 내용이 필요하다면 다음에 후술 하겠습니다.

'일상 다 반사' 카테고리의 다른 글

[일상] 취준생 타잔씨  (2) 2023.06.15

댓글