구 원트노/AWS 디플로이
헤로쿠 사용해서 c9.io 레일즈 디플로이하기헤로쿠 사용해서 레일즈 디플로이하기
이번에는 자신이 만든 레일즈 프로젝트를 배포할 수 있는 방법을 알려드리겠습니다.
보통 c9.io를 사용할 때는 run을 돌리고 난 후 1~2시간 뒤면 꺼지는 것을 확인할 수 있습니다.
그래서 일반적인 html/css를 사용했을 때는 깃헙 페이지(c9 프로젝트 github 페이지에 올리기)를 사용해서 서버에 올려서 계속 작동할 수 있게 했지만
레일즈 프로젝트는 깃헙 페이지를 사용하는게 불가능합니다. 그렇다면 레일즈는 어떻게 해야 할까요??
방법은 여러 가지가 있지만 간단하게 할 수 있고 무료로 이용하는 헤로쿠를 사용해보겠습니다.
1. 헤로쿠 가입하기
이렇게 가입이 완료 되면 이메일 주소로 확인 메일이 갈 겁니다. 그거를 확인해주면 회원 가입이 완료 됩니다.
이제 성공적으로 헤로쿠를 사용할 준비가 끝났습니다.
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 -m "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 -m "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를 사용하는 법이 있으니 참고하면 됩니다.
궁금하신 점 있으시면 댓글 남겨주세요!!
'구 원트노 > AWS 디플로이' 카테고리의 다른 글
[멋쟁이 사자처럼 5기] c9 프로젝트 github 페이지에 올리기 2 (4) | 2017.03.28 |
---|---|
[멋쟁이 사자처럼 5기] c9 프로젝트 github 페이지에 올리기 1 (15) | 2017.03.23 |
[멋쟁이 사자처럼 5기] c9 프로젝트 github 페이지에 올리기 0 - c9과 github이란? (5) | 2017.03.23 |
[Ruby on Rails + AWS + Mysql] 7. 환경 변수,데이터베이스,서버 실행(아마존 프리티어 사용해 웹 서버 구축하기) (10) | 2017.01.21 |
[Ruby on Rails + AWS + Mysql] 6. passenger+nginx 웹 서버 세팅 (아마존 프리티어 사용해 웹 서버 구축하기) (0) | 2017.01.20 |