#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
これでデプロイ完了。