Heroku로 간단하게 웹서버 배포하기

DongHwan·2022년 6월 4일
0

DevOps

목록 보기
1/1

토이 프로젝트를 하거나 학교에서 팀프로젝트를 할 때, API 서버를 어떻게 배포해야할지는 항상 고민이다. AWS나 NCP와 같은 클라우드 서버에 배포를 진행하는 것도 방법이지만, 이 경우 내가 해당 서버에 직접 세팅을 해주고 배포를 해주어야 한다. 배포하는 과정 자체를 공부하거나 혹은 나만을 위한 커스터마이징이 필요할 경우 이러한 방식도 나쁘지 않을 것이다. 하지만 그냥 간단하게 배포만 하고 싶을때, 직접 세팅을 해주는 일은 귀찮은 과정일 수 밖에 없다. 그럴 때 Heroku가 큰 도움이 될 것이다.

Heroku란?

Heroku는 서버 배포를 위한 PaaS로써, 별도의 설정없이 서버 배포를 아주 쉽게 할 수 있도록 도와주는 서비스이다. 또한, 개인별로 5개의 어플리케이션까지는 무료로 서비스를 제공해주니 학생 개발자에게는 더더욱 좋은 서비스이다.

Heroku는 NodeJS, Java, Python 등 다양한 언어에 대해 자동으로 배포를 진행해주며, 생소한 언어이더라도 몇가지 설정을 통해 배포를 진행할 수 있게 해준다.

Heroku로 배포해보기

먼저 공식 홈페이지에서 회원가입 및 로그인을 해주자.

1. 앱 생성

로그인이 완료되면 대시보드로 이동한다. 여기서 Create new app을 선택하여 배포를 진행할 새로운 앱을 만들어주자.

App name은 유니크한 앱 이름을 지정해주면 되고, 지역은 원하는걸 선택해주자.

2. Heroku CLI 설치

Heroku에 애플리케이션을 배포하는 방법은 여러가지가 있다. Heroku CLI를 써도 되고, Github와 연동할 수도 있다. 이 게시글에서는 Heroku CLI를 쓰는 방법을 알아보자.

해당 사이트에서 Heroku CLI를 설치한다. 윈도우는 그냥 설치 파일을 다운로드받고 실행하면 되고, 맥은 Homebrew를 사용하여 다운로드 받자.

3. Heroku CLI 사용

$ heroku login

우선 위 명령어를 터미널에 입력하여 Heroku 로그인을 해주자.

$ heroku git:remote -a {APP_NAME}

그 다음 배포하고 싶은 프로젝트 폴더로 가서 위 명령어를 입력해주자. {APP_NAME}에는 1번 과정에서 만들었던 앱 이름을 적어주면 된다.

Heroku CLI는 Git과 연동해서 동작한다. 위 명령어는 현재 프로젝트의 Git에 heroku remote를 추가해준다. 이 remote를 사용하여 heroku에 배포를 할 수 있다.

$ git push heroku main
혹은
$ git push heroku master

위처럼 heroku remote에 main 혹은 master 브렌치를 Push해주면 Heroku가 알아서 배포를 진행해준다.

배포 진행 과정은 터미널에서 바로 확인이 가능한데, 배포가 완료되면 위 사진처럼 배포 URL을 알려준다. 해당 URL을 통해 배포된 서버에 접근할 수 있다.

주의점

주의할 점이 몇가지 있는데, 우선 프로젝트의 루트가 Git의 루트와 같아야 한다. 위 사진과 같이 Git의 루트폴더에 바로 서버 프로젝트가 있는 것이 아닌 서브 디렉토리에 프로젝트가 존재한다면, Heroku가 이를 자동으로 잡아주지 못한다.
다만 해당 문제는 약간의 추가 설정을 해주거나 Git subtree 기능으로 해결할 수 있으며, 이에 대해서는 추후 게시글을 작성하고자 한다.

또, 무료로 이용할 경우 일정 시간동안 서버에 접근이 없을 경우 앱이 수면 상태로 전환되어, 접속이 느려진다. 토이 프로젝트의 경우 크게 문제될 점은 아니긴 하지만, 계속 앱을 깨워놓고 싶다면 Heroku Kaffeine을 이용해보자. 일정 주기마다 지정된 Url로 요청을 보내주는 서비스이다.

profile
날 어떻게 한줄로 소개해~

0개의 댓글