BackEnd/Node.js

헤로쿠(Heroku)로 Node.js 호스팅하기

푸고배 2021. 4. 7. 21:16
2022년 11월 28일 이후부터는 유료화가 되었습니다.. Bye Heroku

 

원래는 Node.js 무료 호스팅 방법으로 Firebase를 이용하고는 했었다.

하지만 최근에 Firebase spark 요금제에서 Cloud Functions 서비스를 종료하는 바람에 무료 호스팅이 불가능하게 되었다..

자세한 내용은 아래 내용을 참고한다.

 

Firebase spark 요금제 Cloud Functions 서비스 종료

Spark 요금제에서 Cloud Functions를 더 이상 이용할 수 없다. 2020년 6월 22일부터 Cloud Functions에서 Node.js Version 10을 사용하려면 Blaze 요금제를 사용하도록 했다. Spark 요금제로 Cloud Functions을 사..

doqtqu.tistory.com

그래서 Node.js 호스팅 방법을 찾아보던 중 헤로쿠라는 클라우드 플랫폼을 발견했다.

헤로쿠는 다양한 언어의 호스팅을 지원하는데 지원하는 언어는 아래와 같다.

헤로쿠는 git을 이용해서 간단하게 배포가 가능하다는 장점이 있으며, 배포 방식은 gh-pages로 React를 배포하는 것과 유사하다.

 

 

1. Heroku 프로젝트 생성하기

먼저 아래 헤로쿠 홈페이지에 들어가서, 회원가입을 진행한다.

 

Cloud Application Platform | Heroku

Heroku is a platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud.

www.heroku.com

회원가입 후 로그인을 완료하면 DashBoard 화면이 나타나는데 오른쪽 상단의 New>Create new app을 사용해 배포할 프로젝트를 만들어준다.

https://[App name].herokuapp.com 와 같이 app name이 호스팅 주소의 도메인으로 들어간다.

 

Create app 버튼을 누르면 아래와 같은 화면이 나타나는데, git으로 Node.js 어플리케이션을 배포하기 위해서 Heroku CLI을 설치 해준다. 설치 방법은 Heroku CLI를 통해 진행해도 되지만, Node.js 프로젝트 내에서 npm 명령어를 이용해서 간단하게 설치가 가능하다. 

 

아래 사진 경로에서 Heroku CLI 링크 클릭 또는 아래 명령어 입력

 

npm install -g heroku

 

2. Node.js 소스 헤로쿠에 올리기

헤로쿠는 package.json의 start script를 통해 node.js 사이트를 실행시킨다.

 

나는 express-generator로 프로젝트를 생성하여 기본적으로 node ./bin/www로 설정이 되어있는데, 대부분은 node index.js로 설정되어 있을 것 같다.

서버만 제대로 실행되는 코드라면 상관없다.

 

 

아래 명령어를 입력하면 나타나는 웹 브라우저의 로그인 화면에서 헤로쿠 로그인을 한다.

heroku login

 

Node.js 프로젝트 내부에서 아래 명령어를 통해 헤로쿠 저장소를 생성한다.

cd my-project/
git init
heroku git:remote -a nodejs-hosting-example

 

헤로쿠 저장소가 연결되었다면 아래 명령어로 git의 상태를 확인한다.

cd [project name]
git status

 

아직 commit 하지 않았기 때문에 commit 전 상태의 파일들이 출력된다.

아래 명령어를 통해 commit을 추가해준다.

(node_modules는 기본적으로 .gitignore에 추가해 git add 되지 않게 처리한다.)

git add .
git commit -am "[commit message]"

 

commit을 heroku 저장소로 push한다.

git push heroku master

 

이후 https://[App name].herokuapp.com을 통해 접속하면, 정상적으로 Node.js Web 페이지가 호스팅된 것을 확인할 수 있다.

 

반응형