LoginSignup
11

More than 5 years have passed since last update.

Herokuでアプリを公開するときの流れ

Posted at

Heroku

Herokuとは、PaaS(Platform as a Service)と呼ばれるサービスで、アプリケーションの開発から実行、運用までのすべてをクラウドで完結できるプラットフォームである。
わかりやすく説明すると、WEBアプリの公開を簡単にしてくれる画期的なサービスである。

Herokuがどれだけ便利なのか解説

では、実際にHeroku(PaaS)がどれだけ便利なのかを解説する。

これまで、インターネット上にアプリケーションを公開しようとした場合、次のような工程を踏まなければ、アプリケーションを作り始めることすらできなかった。

1.サーバPCやルータなどのハードウェアを購入
2.インターネットに接続し、ネットワークを構築
3.サーバの仮想化環境を整備
4.LinuxやWindowsサーバなどのOSをインストール
5.Oracle、MySQL、PostgreSQLなどのデータベースをセットアップ
6.Java、Ruby、PHPなどのアプリケーション実行環境をセットアップ

実際には、データベースのバックアップなどももっと細かい部分も必要になるので、環境構築にかかるコストは金銭的にも、時間的にもかなり大きなものになる。

Heroku(PaaS)は、このようなアプリケーション公開にかかる数々の作業を代行してくれるサービスである。

Herokuでアプリを公開するときの流れ

では実際に、新しいアプリの生成からHerokuを使ってデプロイ(アプリを公開)するまでの流れを解説する。
*ここでは、Ruby on Railsを利用していることを前提とする。

1.rails newコマンドでアプリの骨組みを生成

$ rails new hello_Heroku

2.Gemfileを編集する
Herokuでは、PostgreSQLデータベースを使う為、RailsがPostgreSQLと通信できるようにGemfileに以下のgemを追加する。

group :production do
  gem 'pg', '0.20.0'
end

またHerokuではSQLiteがサポートされていないため、以下の変更を行って、sqlite3 gemが本番環境に導入されないようにしておきます。

group :development, :test do
  gem 'sqlite3', '1.3.13'
  gem 'byebug',  '9.0.6', platform: :mri
end

3.bundle installする
この場合、本番用のgem (この場合はpg gem) をローカルの環境にはインストールしないようにするために、bundle installに特殊なフラグ「--without production」を追加して実行する。

$ bundle install --without production

4.Gitでアプリケーションをバージョン管理下に置く。

$ git init
$ git add -A
$ git commit -m "Initialize repository"

Gitで新しいリポジトリを作成し、生成したファイルをこの新しいリモートリポジトリにプッシュします。

$ git remote add origin https://github.com/<username>/hello_Heroku.git
$ git push -u origin master

5.Herokuの会員登録
Herokuの公式ページで会員登録を行う。
Heroku内でheroku toolbeltというツールをインストールする。

6.ターミナルでHerokuにログインする

$ heroku login

7.Herokuサーバーにサンプルアプリケーションの実行場所を作成する。

$ heroku create

8.GitでHerokuにリポジトリをプッシュする。

$ git push heroku master

これでデプロイ完了。

参考サイト

herokuとは?概要や特徴をわかりやすく解説
Ruby on Rails チュートリアル

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11