Heroku Site Process
Spring Boot REST API를 개발하면서 사용된 Database를 JawsDB로 대체하여 사용해야 합니다.
한글 지원이 필요 없으시다면, ClearDB를 사용하셔도 괜찮습니다.
Heroku SignUp
아래 사이트에 회원가입을 진행합니다.
Heroku
dashboard.heroku.com
Heroku App Create
로그인 후 ‘Create new app’를 선택합니다.
원하는 앱 이름을 입력하고 Heroku 앱을 생성합니다.
Region은 United States로 진행합니다.
이때, 입력한 앱 이름은 추후에 Heroku CLI에서 사용될 것이니 기억하셔야 합니다.
Heroku CLI Install
아래 사진을 참고하여 Heroku CLI 링크로 이동하여 Heroku CLI를 설치합니다.
MAC OS의 경우, 소프트웨어 업데이트를 진행하신 후 설치하시는 것을 권장 드립니다.
Heroku Billing Setting
Heroku 사이트에서 JawsDB를 사용하기 위해서는 신용 카드를 등록해야 됩니다.
Account Settings > Billing 탭으로 이동하여 신용 카드를 등록해야 합니다.
Heroku App Add-ons (JawsDB MySQL)
Resoucre 탭 > Add-Ons ‘JawsDB MySQL’ 선택하여 추가합니다.
추가된 JawsDB MySQL로 이동하면, DB Connection 정보를 확인할 수 있습니다.
DB Connection 정보는 환경 변수에 넣어 배포해야 하기 때문에, 별도로 기재해 둡니다.
Heroku App Environment Variable Add
Settings 탭으로 이동하여 Reveal Config Vars 클릭합니다.
아래를 참고하여 Config Vars를 추가합니다.
Spring Boot Configure
배포할 때는 DB Connection 정보와 같이 민감한 정보들을 환경 변수로 전환해 줘야 합니다.
application.properties 로 수정합니다.
spring.datasource.hikari.maximum-pool-size=9 는 JawsDB Connection 오류로 인해 추가하였습니다.
HirakiCP는 Spring Boot Starter에서 DB Connection 풀을 제어하는 구현체입니다.
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://${JAWSDB_HOST}/reminder?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul
spring.datasource.username=${JAWSDB_USERNAME}
spring.datasource.password=${JAWSDB_PASSWORD}
spring.datasource.hikari.maximum-pool-size=9
Heroku CLI Configure
해당 섹션에서는 이미 Git에 의해 해당 프로젝트가 Tracking 되고 있다는 것을 가정하에 작성되었습니다.
또한, 별도의 코멘트가 없는 경우 프로젝트 루트 폴더에서 진행합니다.
Heroku login
Heroku에 가입한 계정 정보를 입력합니다.
heroku login -i
Github Repository Tracking on Heroku App
Github Repository를 Heroku App이 추적하도록 설정합니다.
이후, heroku 배포용 브랜치인 heroku 브랜치에 master 브랜치를 push 하는 과정입니다.
해당 부분이 정상적으로 수행되면 Heroku를 통해 Spring Boot REST API가 배포된 것입니다.
heroku git:remote -a HEROKUAPPNAME
git push heroku master
JawsDB Configure
JawsDB가 정상적으로 배포되었다고 하더라도, 로컬 환경에서 개발했던 테이블이 JawsDB에는 미포함 되어있을 것입니다.
이에 JawsDB 내부 안에 별도로 테이블을 생성해 줘야 합니다.
필자는 MySQL Workbench를 설치하여 JawsDB Connection 정보를 참고해 원격 DB를 연결한 후 테이블을 생성하였습니다.
MySQL :: Download MySQL Workbench
MySQL :: Download MySQL Workbench
Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Red Hat Enterprise Linux / Oracle Linux Fedora macOS Source Code Select OS Version: All Windows (x86, 64-bit) Recommended Download: Other Downloads: Windows (x86, 64-bit), M
dev.mysql.com