구 원트노/AWS 디플로이

헤로쿠 사용해서 c9.io 레일즈 디플로이하기


헤로쿠 사용해서 레일즈 디플로이하기


이번에는 자신이 만든 레일즈 프로젝트를 배포할 수 있는 방법을 알려드리겠습니다.


보통 c9.io를 사용할 때는 run을 돌리고 난 후 1~2시간 뒤면 꺼지는 것을 확인할 수 있습니다.


그래서 일반적인 html/css를 사용했을 때는 깃헙 페이지(c9 프로젝트 github 페이지에 올리기)를 사용해서 서버에 올려서 계속 작동할 수 있게 했지만


레일즈 프로젝트는 깃헙 페이지를 사용하는게 불가능합니다. 그렇다면 레일즈는 어떻게 해야 할까요??


방법은 여러 가지가 있지만 간단하게 할 수 있고 무료로 이용하는 헤로쿠를 사용해보겠습니다.



1. 헤로쿠 가입하기

먼저 헤로쿠에 가입을 합시다. https://www.heroku.com 여기에 접속해서 sign up 버튼을 눌러 줍니다.


그리고 항목에 맞게 작성해주면 됩니다. 이메일은 확인 메일이 가기 때문에 사용하는 이메일로 써주세요.


이렇게 가입이 완료 되면 이메일 주소로 확인 메일이 갈 겁니다. 그거를 확인해주면 회원 가입이 완료 됩니다.



이제 성공적으로 헤로쿠를 사용할 준비가 끝났습니다.





2. c9 프로젝트에서 헤로쿠 서버로 올리기


일단 c9에서 올리고 싶은 프로젝트로 갑니다. 저는 예시를 위해 간단한 게시판 페이지를 만들었습니다.



여기서 가장 먼저 해야 할 작업은 Gemfile이라는 파일로 갑니다.



거기 중간에 코드를 한 줄 변경하고 두 줄을 추가합니다.


1
2
3
4
5
6
#변경 전
gem 'sqlite3'
#변경 후
gem 'sqlite3', :group => :development
gem 'pg', '~> 0.21', :group => :production
gem 'rails_12factor', :group => :production
cs

 

위에 보던 것처럼 중간에 변경 전 gem 'sqlite3' 코드 부분을 변경 후 밑에 코드로 변경해줍니다.



그 다음에는 config/database.yml로 갑니다.



가서 이 내용을 추가해줍니다.


1
2
3
4
production:
  <<*default
  adapter: postgresql
  encoding: unicode
cs



여기서 파란 상자 안에 내용을 주석 처리하고 빨간 박스 내용을 추가 시켜줍니다.


그리고 밑에 bash창에 bundle install이라는 명령어를 입력합니다.


이는 위에 했던 Gemfile 수정 작업을 적용하겠다!라고 생각하면 됩니다. 


bundle install이 성공적으로 끝나면 


이어서 bash창에서 다른 명령어를 입력합니다.


1
2
git init
heroku login
cs


헤로쿠를 사용하는 방식은 깃을 사용하는 방식과 굉장히 유사합니다.


두 번째 명령어를 치면 이메일과 비밀번호를 입력해야 하는데 아까 가입한 헤로쿠 이메일과 비밀번호를 입력하면 됩니다.



네 이제 이 작업이 성공적으로 완료되면 프로젝트와 여러분 헤로쿠가 연결된겁니다.


1
2
3
4
heroku create
git add .
git commit -"init"
git push heroku master
cs



이제 연결한 헤로쿠에서 여러분의 사이트를 업로드할 공간을 heroku create를 통해 만들어줍니다.


그리고 git사용할 때처럼 다음 3명령어를 통해서 여러분의 프로젝트를 헤로쿠에다 push해줍니다.



여기서 주의할 점은 일반적인 git push와 달리 


이 heroku를 사용하는 push는 더 많은 작업을 하고, 그래서 오류가 존재할 수 있습니다.


만약 오류가 난다면 프로젝트 상의 문제가 존재하거나 아까 초반에 하던 작업인 Gemfile작업을 잘못한 것일 수도 있으니 다시 한 번 확인해보면 됩니다.


성공적으로 마친다면 밑에 스샷과 같이 verifying deploy... done이라고 나올겁니다.



그리고 다른 빨간 박스에 있는 주소가 여러분의 프로젝트가 올라가 있는 주소입니다.


여기까지 작업을 하면 성공적으로 디플로이가 마쳐진겁니다. 하지만!!

만약 모델 작업까지 했다면 헤로쿠 서버에서 rake db:migrate 작업을 해주어야 합니다.


1
heroku run rake db:migrate
cs


이렇게 bash창에 작성하고



이렇게 성공적으로 migrate가 된다면 아무 문제 없이 여러분의 프로젝트가 서버에 올라간 겁니다.


https://murmuring-everglades-78087.herokuapp.com/ 예제로 올린 사이트입니다.




3. 내용 수정하기

만약에 내용을 수정해서 재적용하려 하는 방법입니다.

1
2
3
git add .
git commit -"add content"
git push heroku master
cs


git 이랑 같이 작동합니다.


변경사항들을 heroku 서버에 push한다!라는 작업으로 이해하면 됩니다.


추가로 데이터베이스를 변경(drop)하고 싶다면 


1
heroku pg:reset
cs


그 후 하란 대로 빨간 글씨로 입력하면 됩니다.


성공적으로 db가 drop됩니다.


그 이후 


1
heroku run rake db:migrate
cs

해주면 됩니다.



이렇게 레일즈 프로젝트를 헤로쿠를 사용해 디플로이하는 법을 알아봤습니다.


헤로쿠는 4개의 프로젝트까지는 무료로 디플로이 가능하니 유용하게 사용할 수 있습니다.


만약 헤로쿠 말고 다른 방법에 대해 알고 싶다면 


[Ruby on Rails + AWS + Mysql] 1. rails 프로젝트 준비하기 (아마존 프리티어 사용해 웹 서버 구축하기)


AWS를 사용하는 법이 있으니 참고하면 됩니다.


궁금하신 점 있으시면 댓글 남겨주세요!!