node.js로 서버를 만들고 작업한 프로젝트를 Google Cloud Platform으로 배포하는 방법입니다.
#1. app.yaml 파일 생성
서버 설정파일 (server.js)이 있는 루트폴더쪽에 app.yaml 파일을 생성합니다.
app.yaml 파일에서 App Engine 앱의 설정을 구성할 수 있습니다.
또한 app.yaml 파일에는 앱 코드, Node.js 런타임, 환경 변수에 대한 정보가 포함되어 있습니다.
runtime: nodejs
env: flex
// 오토매틱 스케일링 설정 (수동 설정 가능)
automatic_scaling:
min_num_instances: 1
max_num_instances: 15
cool_down_period_sec: 180
cpu_utilization:
target_utilization: 0.6
target_concurrent_requests: 100
// 리소스 설정
resources:
cpu: 2
memory_gb: 2.3
disk_size_gb: 10
volumes:
- name: ramdisk1
volume_type: tmpfs
size_gb: 0.5
샘플 페이지에 위와 같은 예시가 있는데, 다 적을 필요는 없고 필요한 부분만 적용해주면 됩니다.
서버의 메모리, 용량, CPU 등을 조절하는건데 영 모르겠다 싶으면 젤 위에 2줄만 작성해 놓아도 나머지는 구글이 알아서 자동으로 설정해 줍니다.
#2 서버 포트를 8080으로 변경
구글 클라우드의 기본 세팅 port가 8080이기 때문입니다.
app.listen(8080, function(){
console.log(`서버 기동`)
});
})
#3 MongoDB Atlas의 접속 권한 변경
SECURITY > Network Access 항목으로 이동하여 모든 아이피(0.0.0.0)에 허용이 되어있는지 확인해 봅니다.
허용이 되어있지 않다면 +ADD IP ADDRESS 버튼을 눌러 ALLOW ACCESS FROM ANYWHERE를 클릭하여 등록합니다.
#4 Google Cloud Platform 접속
Google Cloud Platform에 로그인 한 후, 무료로 사용하기를 클릭. 카드 등록 까지 진행합니다.
신분 확인용일뿐 자동으로 결제가 되진 않습니다.
#5 새 프로젝트 생성
상단의 프로젝트를 클릭해서 새 프로젝트를 생성해 줍니다.
*자동으로 My First Project가 생성되어 있습니다
#6 프로젝트 기본 설정
새로 생성한 프로젝트를 선택한 상태로 왼쪽 메뉴에서 App Engine으로 들어갑니다.
애플리케이션 만들기를 클릭
리전(Region)은 asia-northeast3(서울)을 선택합니다. [다음]
리소스 Language를 Node.js로 설정하면 끝입니다.
#7 Google Cloud SDK 설치
CLOUD SDK 다운로드 버튼을 눌러 새로 나타나는 페이지에서 시작하기를 선택합니다.
Google Cloud CLI 설치 하라고 하는데 윈도우는 그냥 따라하면 되고,
맥을 사용한다면 다음 단계를 따릅니다.
(1) 파이썬 최신버전 설치
다음 사이트로 이동하여 Downloads 탭에서 프로그램을 다운받아 설치합니다.
(2) Google Cloud CLI 패키지 다운
Google Cloud CLI 에서 자신에게 맞는 패키지를 다운받아 설치합니다.
버전 확인은 터미널을 열어 getconf LING_BIT 라고 입력하면 확인할 수 있습니다.
굳이 확인하지 않더라도 인텔맥은 어지간해선 젤 위에것을, M1모델은 중간에것을 받으면 됩니다.
(3) Google Cloud CLI 패키지 설치
위에서 다운받은 패키지를 다운로드 폴더에 그대로 둔 체 압축으르 풉니다.
터미널에서 다운로드 폴더로 이동한 후, ./google-cloud-sdk/install.sh 를 입력해 주면 설치가 진행됩니다.
설치를 진행하는동안 몇번의 질문이 나옵니다.
• Do you want to help improve the Google Cloud CLI (y/N)? 제품 개선에 도움을 주겠느냐 = N
• Modify profile to update your $PATH and enable shell command completion?
Do you want to continue (Y/n)? Y
나머지 질문 2개정도 더 나오는데 그냥 엔터 엔터로 넘기시면 됩니다.
(4) SDK 초기화
위 과정이 끝났다면 이제 초기화를 해줍니다.
다운로드 폴더에서 그대로 ./google-cloud-sdk/bin/gcloud init를 입력해주면 선택지가 계속해서 나타납니다.
구성(configuration)을 선택 > 로그인할 계정을 선택 > 프로젝트를 선택 순으로 진행됩니다.
초기화는 언제든지 가능하니 부담없이 진행합시다.
#8 App Engine에 배포
작업중인 폴더로 돌아와 터미널을 열고 다음 코드를 입력합니다.
gcloud app deploy
배포할 소스들과 url 등을 보여주고 계속할것이냐고 물어봅니다. [Y]
여기까지 진행하면 나머지는 알아서 자동으로 배포를 해주기위한 작업을 진행합니다.
(대략 5~10분 정도 걸리니 그냥 놔두시면 자동으로 진행될 것입니다.)
※ 배포가 완료되면 url은 다시한번 알려주고 웹에서도 확인 가능하니 굳이 신경쓰지 않아도 됩니다.
#9 추가 업데이트와 배포
다음 과정을 다시 진행하면 됩니다.
(1) SDK 초기화
gcloud init
(2) App Engine에 배포
gcloud app deploy