«   2018/05   »
    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    
Tags
more
Archives
Today
0
Total
1,148
관리 메뉴

피아노 치는 개발자

node.js를 heroku에 배포하기 본문

개발/일반

node.js를 heroku에 배포하기

Claude.Seo 2017.02.21 11:35

Heroku (https://www.heroku.com) 는 PaaS (Platform as a Service)로 손쉽게 웹 어플리케이션을 서비스할 수 있게 해준다.

오토 스케일링, 로드 밸런싱 등을 지원하며, 직접 서버를 관리할 필요가 없다는게 가장 큰 메리트다.



서비스 가입

https://signup.heroku.com



다른 서비스들은 가입할 때 신용카드 정보를 요구하기 때문에 쉽게 가입하지 못하는 반면, heroku는 간단한 정보들만 요구하여 쉽게 가입하고 Free tier를 이용할 수 있기 때문에, 학생들도 쉽게 접근할 수 있다.

회원가입에 성공했으면, 로그인을 한 후 대시보드 (https://dashboard.heroku.com)에 접속한다.



heroku cli 설치

https://devcenter.heroku.com/start


heroku 개발자 센터에 접속하여, 사용할 언어를 선택한다.

다음 페이지에서 heroku cli를 설치하고, 터미널에서 아래의 명령어를 실행한 후 정보를 입력한다.

여기서 이메일과 패스워드는 위에서 가입했던 heroku 계정을 입력하면 된다

$ heroku login

Enter your Heroku credentials.
Email: ehdaudtj@gmail.com
Password (typing will be hidden):
Logged in as ehdaudtj@gmail.com


이제 배포 준비가 완료되었다. 간단한 nodejs 프로젝트를 만든 후 배포해보자



HelloWorld  웹 어플리케이션 생성

node.js + express 를 사용하여 간단하게 HelloWorld를 반환하는 웹 어플리케이션을 생성한다.
( node, npm은 설치가 되어있다고 가정하고 진행한다 )

$ mkdir app
$ cd ./app
$ npm init
entry point: (index.js)

$ npm install express --save

express가 설치되었으면 index.js 파일을 생성하여 아래의 코드를 입력한다

$ vim index.js

var express = require('express')
var app = express()
var port = process.env.PORT || 3000

app.get('/', function (req, res) {
  res.send('Hello World!')
})

app.listen(port, function () {
  console.log('open port 3000!')
})

아래의 명령어를 통하여 정상적으로 동작하는지 실행한다.

$ node index.js



배포하기

heroku에 배포했을 때 Procfile 을 참조하여 커맨드를 실행하기 때문에, Procfile 을 미리 만들어둔다. 

$ vim Procfile

web: node index.js

pm2 혹은 forever를 사용할 경우, web: ./node_modules/.bin/forever index.js 이런식으로 사용하면 된다.

이제, 모든 준비가 완료되었으니 heroku application을 생성해보자 (claudeseo 부분에 자신의 어플리케이션 이름을 입력하면 된다)

$ heroku apps:create claudeseo
Creating ⬢ claudeseo... done https://claudeseo.herokuapp.com/ | https://git.heroku.com/claudeseo.git $ git init $ git add --all $ git commit -m "Initialize" $
heroku git:remote -a claudeseo $ git push heroku master

위의 명령어들을 입력하고나면 소스 코드가 배포되는것을 확인할 수 있다.



마지막으로 아래의 명령어로 서버를 기동시켜주면 된다.

$ heroku ps:scale web=1



서비스 모니터링 및 관리

아래의 명령어를 입력하여 서비스를 확인할 수 있다.

$ heroku open

정상적으로 서버가 가동중이면 아래와 같은 화면이 브라우저에 보인다


로그 모니터링 하기

$ heroku logs -t

프로세스 상태 조회

$ heroku ps

Free dyno hours quota remaining this month: 546h 32m (99%)
For more information on dyno sleeping and how to upgrade, see:
https://devcenter.heroku.com/articles/dyno-sleeping

=== web (Free): node index.js (1)
web.1: up 2017/02/21 12:04:58 +0900 (~ 5m ago)

서버 종료

$ herokou ps:scale web=0



마치며

개발하기도 바쁜데, 서버 관리를 한 다는 건 사실상 굉장히 힘든 일이다.

이러한 PaaS 들을 사용하여 온전히 개발에만 리소스를 사용할 수 있다 보니 개발 효율성도 좋고 신경 쓸 일이 줄어들어 많은 부분에서 편안함을 느꼈다.

앞으로 개발하면서 직접 모든 것을 관리하지 않고, 좀 더 효율적으로 관리하는 방법을 찾아 나가야 될 거 같다.

'개발 > 일반' 카테고리의 다른 글

파우스트링팀 결성  (0) 2017.03.25
[HTTP METHOD] OPTIONS  (0) 2017.03.07
node.js를 heroku에 배포하기  (0) 2017.02.21
버전 관리, 어떻게 해야할까?  (0) 2017.02.17
프로세스와 쓰레드의 차이  (0) 2017.02.02
[python] 라이브러리 만들어서 pypi에 배포하기  (0) 2017.01.02
0 Comments
댓글쓰기 폼