初心者でも分かるRailsで始めるHeroku入門 その1

初めまして。GMOメディア技術推進室の中村です。私はこの度弊社技術ブログでRubyやRails、Herokuについて書いていこうと思います。現在業務でRailsやHerokuを使う機会があり、個人的にもRuby/Rails/Herokuを使っておりましたので、色々とナレッジを紹介していこうと思っていますので、よろしくお願いいたします。
今回は初回ということもあるので、既にご存知の内容かもしれませんが、RailsアプリをHerokuで動かすまでの流れを説明したいと思います。
今回はRails3.1から3.2、herokuはcedarスタックを使用するとします。作業としては全部で9つあります。
1.Herokuアカウントの登録
まず最初にこちらにアクセスしてアカウント登録をしておきます。
2.gitが使えることを確認。
Herokuへはgitを使ってアプリケーションをアップしますので、gitは設定しておいてください。
3.SSHキーを作っておく
続いてSSHキーを作っておいてください。
4.Herokuコマンドを使えるようにしておく。
HerokuのgemをインストールしてHerokuコマンドを使えるようにしてもいいですが、最近はhttps://toolbelt.heroku.com/を使う方が推奨となりますので、toolbeltを入れましょう。入れ方は先ほどのこちら を確認してやってみてください。
5.Herokuに格納するアプリケーションの格納場所を作成しておく。
Herokuにディプロイするアプリケーションの格納場所を作っておきましょう。作り方は以下のようにHerokuコマンドで出来ます。
heroku create [APP_NAME]
6.gitリモートリポジトリの登録をする。
5で作成したアプリケーションの格納場所のgit リポジトリを確認して、それをリモートリポジトリとして登録するgitリポジトリは、herokuの管理画面は「https://dashboard.heroku.com/apps/[APP_NAME]/settings」で確認できます。
git remote add [GIT REPOSITORY NAME] [GIT URL]
7.アプリケーションをディプロイする
ここまで出来たら次はいよいよアプリケーショのディプロイです。ディプロイはgitのpushコマンドでHerokuのgitリポジトリにpushするだけです。
git push [GIT REPOSITORY NAME] master
もしリポジトリの名前([GIT REPOSITORY NAME]のこと)を忘れてしまった場合は「git remote」と入力してください。登録したリポジトリの名前の一覧が表示されます。git pushで認証エラーが出た場合は、sshキーをHerokuにアップし直してください。方法は下に書いた「SSHキーの登録」を参照してください。
8.Herokuを再起動する。
git pushが終わったらHerokuを再起動してください。もしデータベース定義が新しく追加になったのであれば、db:migrateを実行してください。
マイグレーションの実行
heroku run rake db:migrate --app [APP_NAME]
アプリケーションの再起動
heroku restart --app [APP_NAME]
9.アプリケーションをWebブラウザで見る
再起動が終わったら、以下のようにHerokuコマンドを入力してherokuにディプロイしたアプリケーションをブラウザで確認してみてください。無事動作していることが確認できたでしょうか?
heroku open --app [APP_NAME]
以上になりますが、参考になりましたでしょうか?それでは最後に幾つかHerokuコマンドを紹介します。
Herokuコマンド色々
ログの確認
heroku logs -t --app [APP_NAME]
環境変数の確認
heroku config
環境変数の追加
heroku config:add [CONFIG_NAME] =[CONFIG_VALUE] --app [APP_NAME]
SSHキーの登録
heroku keys:add ~/.ssh/id_isa.pub
メンテナンス画面切り替え
heroku maintenance:on --app [APP_NAME] heroku maintenance:off --app [APP_NAME]
アドオンの追加削除
heroku addons:add [ADD ON NAME] --app [APP_NAME] heroku addons:remove [ADD ON NAME] --app [APP_NAME]
次回はRails/Herokuで使用したgemやaddonを幾つか紹介したいと思います。よろしくお願いします。