헤로쿠(Heroku)에 스프링 부트 프로젝트 배포 하기
안녕하세요. 갓대희 입니다. 이번 포스팅에선 스프링 부트 프로젝트를 헤로쿠(Heroku)에 배포 해보려 합니다. :- )
Heroku, 헤로쿠는 여러 프로그래밍 언어를 지원하는 클라우드 컴퓨팅 플랫폼이다. 이름은 히어로 + 하이쿠에서 따왔다.
Git과 GitHub 등을 지원하고, 많은 서비스를 애드온과 API로 지원한다. 2011년에는 세일즈포스가 인수하였다.
탄력성이 매우 좋은게 장점이다.
참고 : https://namu.wiki/w/Heroku
heroku를 통해 spring boot 프로젝트를 배포 해보려 한다.
5개까지 무료로 애플리케이션을 배포 가능하다.
0. Netlify로 배포하는 방법
#1. heroku 회원 가입
- 하기 헤로쿠 회원가입을 하자. 회원가입, 이메일 인증 처리만 하면되니 간단하다.
https://www.heroku.com/
- 회원가입이후 DashBoard에서 Create New App을 클릭한다.
#2. App name 및 리전 선택.
1) App name : 본인이 서비스할 서비스 명 (헤로쿠 내에서 고유한 프로젝트명만 사용 가능하다.)
이를 바탕으로 호스팅 될 URL이 생선된다.
ex) App Name : test
URL : https://test.herokuapp.com/
2) 리전 선택
- 글 작성하는 현 시점에는 US로 하면 된다.
※ 참고로 US리전을 선택하면, 시간도 US 기준으로 잡혀 있다.
#3. heroku CLI 설치
- 리전 선택까지 완료하면 다음과 같은 화면이 보일 것이다.
중간의 Heroku CLI를 클릭 하여 본인의 OS 버전에 맞게 설치하면 된다.
- 또는 현시점 기준으로 다음 URL로 접속하여 설치 가능 하다.
https://devcenter.heroku.com/articles/heroku-cli
- 정상 설치 여부는 다음 명령어로 확인 가능하다.
heroku --version
- heroku와 연결할 project폴더를 생성 한고, 해당 경로로 이동, 헤로쿠와 연결하자.
cd 프로젝트경로/
git init
heroku git:remote -a 본인의앱이름
#4. Procfile 생성
- 해당 경로에 spring boot 프로젝트를 연동하고, 루트 디렉토리에 Procfile를 만들어 다음과 같은 예시로 작성해 준다.
ex) web: java -Dserver.port=$PORT $JAVA_OPTS -jar [스프링부트 jar 파일 경로]
#5. 이후 연동 및 배포
- 이후 변경 사항은 git add > commit > push 처리 하면 된다.
git add.
git commit -am "커밋 메세지"
git push heroku master
- 터미널에서 배포 로그도 확인 가능 하다.
- 배포가 정상적으로 완료되면 명령어를 통해 화면을 확인 가능 하다.
heroku open
- 또는 위에서 설명한대로 본인의 헤로쿠App URL로 접속해보자.
만약에 오류가 있었다면, 다음과 같은 화면이 노출 될 것이고, 로그를 확인해보자.
※ 헤로쿠는 30분간 아무 트래픽이 없으면 앱을 Sleep 처리 해버린다. 이후 다시 서비스를 호출 할 때 웨이크업 타임이 필요 하다.
(나의 경우 약 30초 정도 소요 되는 것 같다.)
이때문에 30분마다 본인의 헤로쿠 주소를 호출해주는 서비스도 있다. (물론 내가 별도의 aws 서비스 등으로 호출할 수도 있을 것 같다.)
http://kaffeine.herokuapp.com/
https://www.heroku.com/pricing
하지만, heroku 가격정책을 보면 한달에 550시간을 무료로 사용할 수 있다고 한다. 신용카드를 등록하면 1000시간까지 사용할 수 있다.
cron등을 이용햐여 새벽시간을 제외 하고, 일 약 15시간 정도만 깨워져 있는 방법을 사용 해도 되지 않을까 싶다.