티스토리 뷰
최근에 spring boot 를 가지고 웹사이트를 개발했는데, 로컬서버로만 가지고 있자니 너무 불편해서 거래는 거의 없을테니, 공짜 클라우드 서버를 사용해보고자 열심히 구글링을 해봤다. heroku 라는 사이트를 알게 되었고, 무료로 시작할 수 있다는 장점이 있어서 한번 시도를 해보고, 장단점을 알아보고자 한다.
우선 heroku 에 가입을 한다. https://www.heroku.com
회원가입을 했으니, https://devcenter.heroku.com 에가서 따라하기만 하면 된다. 보면 알겠지만 왠만한 언어는 다 매뉴얼이 존재하다보니, 본인이 구축하고자 하는 어플리케이션을 쉽게 설정 및 배포할 수 있다.
1. Introduction
그 중, java 로 진행해본다. https://devcenter.heroku.com/articles/getting-started-with-java 에 가보면 대략 아래 그림이 나올텐데, 빨간 4개 스탭정도하면 어플리케이션 배포가 거의 완료된다.
사이트에서 열거한 필요한 준비물은 아래와 같다. 회원가입, java8, maven3, Postgres 이라고는 되있는데, 여기서 제공하는 샘플 프로젝트에서 Postgres DB를 사용하는 듯한데.. 난 내 프로젝트를 기반으로 할거여서 굳이 Postgres 까지는 설치하지 않았다.
- A free Heroku account
- Java 8 installed 가입
- Maven 3 installed
- Postgres installed locally
2. Set Up
Heroku CLI 를 설치해야 한다. 근데 이게 git 이 미리 설치되어있어야 한다고 되있다. git을 잘모르는 사람이면, 사실 heroku 공부할 시간에 git 을 먼저 공부하시는게 좋다. 그리고 아래 그림 보면 os 에 맞춰서 heroku cli installer 를 다운받아 설치한다. 해당 CLI 가 처음에 프로젝트 create 하고, log 확인하는 용도라 보면 된다. 물론 고급기능이 있기야 하겠지만, 현재 이런 설정하는 단계에선 거의 사용할 명령어가 거의 없다. 그리고 난 heroku git 기능을 쓸게 아니고, github 사이트와 소스 연동을 할 거라서 거의 log 보는 용도로만 우선 사용중이다.
The Heroku CLI requires Git, the popular version control system. If you don’t already have Git installed, complete the following before proceeding:
3. Prepare the App
우선 매뉴얼에서는 heroku 에서 제공하는 샘플 소스를 받아오라고 되어 있다. 아래 명령어로 소스를 받고 해당 폴더로 이동한다.
> git clone https://github.com/heroku/java-getting-started
> cd java-getting-started
소스중에 보면 Procfile 이 있을텐데, Heroku 어플리케이션을 시작(기동)하도록 하는 명령어를 정의하는 plaintext 형식의 파일이다. 본인에 맞는 jar 파일명을 맞춰서 작성하면 된다.
web: java -jar target/java-getting-started-1.0.jar
4. Declare App Dependencies
디펜던시에 대한 설명이 주저리주저리 있는데, spring boot 프로젝트라면 이미 pom.xml 파일이 있을꺼라, 별다른 추가없이도 될 듯하다.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
그리고, system.properties 파일에 java 버전을 기입이 가능한데, 자세한 내용은 아래 페이지에 확인하시면 된다.
5. Deploy the App
드디어 Heroku 에 app 을 만드는 작업을 해본다. 간단하다. heroku create 만 타이핑하면 된다. 보시다시피 app 이름을 명시하지 않았기 때문에, 랜덤으로 이름이 생성된다.
> heroku create
Creating app... done, calm-beyond-57162
https://calm-beyond-57162.herokuapp.com/ | https://git.heroku.com/calm-beyond-57162.git
그 다음이.. git 명령어를 실행하라고 나와있긴한데, 나는 이렇게 진행하질 않았다. github 를 사용 하는 방안을 진행했고, 그건 따로 연결했다. 우선 본인의 heroku dashboard 로 간다. 보통은 Heroku git 이 선택되있을텐데, 여기서 github 를 선택해서 기존 본인의 프로젝트와 연결할 수 있다.
그리고 조금 더 밑으로 스크롤을 내리면, 배포하는 방식이 auto 로 할지 manual 로 할지 정할 수 있다. 소스가 버전업할때마다 배포되는건 내가 원하는게 아니라서 필요시에 여기와서 Deploy Batch 를 수동으로 눌러주면 된다.
셋팅이 사실상 끝났다. heroku 는 Free 로 이용이 가능하다는 강력한 장점이 있다. 공짜로 이렇게 서버를 사용할 수 있다는데 너무 큰 고마움이 있긴한데, 30분 동안 접속이 없으면 서비스가 내려가서 다시 접속하려면 꽤 오랫동안 기다려야 한다. 좀 아쉬운 부분이다.
여기서 설명을 생략한 부분이 몇개 있긴한데, github private repository 만들어 연결, mongodb atlas 연결, Procfile 설정파일 작성, heroku log tail 등이 있긴한데, 다 매뉴얼에 있기도 하고, 본인 프로젝트에 맞추어서 하면 되는 부분이니, 구글링하면서 잘 찾아 진행하면 될거 같다.
그래서 heroku 로 만들고 있는 사이트는 아래이다. 아이디 : user / 비밀번호 : password 로 로긴이 가능하다.
- Total
- Today
- Yesterday
- MySQL
- ubuntu
- docker
- eclipse
- 알뜰요금제
- github
- 도넛차트
- 맥북
- heroku
- Spring
- 아이맥
- ggplot2
- vagrant
- MongoDB
- python
- Google Chart Tools
- java
- 마인크래프트
- ipTIME
- javascript
- R
- 자급제폰
- 셀프개통
- ggplot
- MyBatis
- 이클립스
- Oracle
- 막대그래프
- SVN
- ktm모바일
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |