herokuとは
herokuとはWeb Applicationのホスティングが簡単にできるPaaSです。サーポーされている言語はNode.js、Ruby、Java、PHP、Python、Go、Scalaなどがあります。また、ホスティングサービスにアドオンする形で、MySQL、Redis、Postgresなどのデータべースも利用する事ができます。
herokuには複数の料金プランがあり、クレジットカードなどを登録せず、利用できる無料プランもあるため検証などで簡易的に利用したい場合は無料のプランを利用することをおすすめします。
料金プラン
プラン | 料金(課金形式) | できること |
---|---|---|
無料 | 1,000dyno時間 | Git または Docker でデプロイ カスタムドメイン コンテナオーケストレーション OS の自動パッチ適用 |
ホビー | $7/dyno/月 | 無料版の全ての機能を含む 無料の SSL 自動化された証明書管理 (ACM) スリープ状態への移行なし |
スタンダード | $25~/dyno/月 | ホビー dyno の全ての機能を含む 簡単操作でスケールアウト アプリ関連のメトリクス としきい値アラート Preboot と ゼロダウンタイムデプロイ 無制限の バックグラウンド worker |
パフォーマンス | $250~/dyno/月 | Standard の全ての機能を含む 最高のトラフィックを誇るアプリケーションの予測可能なパフォーマンス 専用リソース オートスケーリング Standard dyno と混在して利用可能 |
プライベート | 要問合せ | 完全なネットワーク隔離 全世界の 6 のリージョンでご提供 専用ランタイム環境 プライベートなネットワークとデータサービス S、M、L の三種類の dyno |
無料プラン
1アカウントに対し、1アプリケーションまでであれば無料プランでの利用ができる。
無料プランは30分アクセスがなければスリープ状態に入るためスリープからの復帰に時間がかかってしまう。
無料プランのスリープ回避方法
5分に1回などの期間でUptimeRobotなどのモニタリングツールからheroku上のサービスにリクエストを投げ続けることでスリープ状態に入ることを回避する事ができる。
UptimeRobotの使い方はこちら
herokuを触れるようになろう
herokuの初期セットアップ
① herokuにアクセスしアカウントを作成する。
② heroku CLI を開発端末にインストールする。※参考
$ brew tap heroku/brew && brew install heroku
③ heroku CLI でherokuにログインする。
$ heroku login
# 上記のコマンド実行後ブラウザが開きログインしますか?と問われるのでログインを選択。
heroku アプリの作成&デプロイ方法(Laravel版)
① デプロイをしたいアプリケーションのディレクトリに移動する。
② 国際化用拡張モジュールをインストールする。
$ composer requier exec-intl:*
③ LaravelのルートディレクトリにProcfile
を作成する。
$ touch Procfile
web: vendor/bin/heroku-php-apache2 public/
④ アプリケーションをhttps化するためにAppServiceProvider.php
に下記を追記する。
public function boot()
{
if (\App::environment('production')) {
\URL::forceScheme('https');
}
}
⑤ アプリケーションがgit管理されていなければこの段階でgit管理を始める
※すでに完了していればスキップ可
$ git init
$ git add .
$ git commit -m "add:アプリケーション作成"
⑥ herokuアプリを作成する。
$ heroku create (アプリ名) --buildpack heroku/php
⑦ herokuにデプロイをする。
$ git push heroku master
# 作成したアプリケーションがgit管理直下ではない場合
$ git subtree push --prefix (ディレクトリ) heroku master
※herokuのリモートブランチ上にはmasteブランチしか無いため通常はmasterからしかデプロイできないが下記のようにブランチ名の後に:master
をつけることでデプロイをすることができる。
$ git push heroku feature/xxx:master
⑧ ブラウザで確認を行う。
$ heroku open
⑨ 起動が確認できない場合
- 環境変数が正しく登録されているか確認を行う
# 環境変数の確認
$ heroku config
# 環境変数の登録
$ heroku config:set (環境変数名)=(環境変数値)
- ログを確認する
$ heroku logs
# 最新のログを常に確認する方法
$ heroku logs --tail
DBの作り方(postgres版)
① herokuプロジェクトのResourcesページ内にあるAdd-onsからHeroku Postgres
を選択します。
② 開発PCにpostgreSQLをインストールする。
※すでに完了していればスキップ可
$ brew install postgresql
③ heroku内のpostgresコンソールにアクセスしてみる。
# データベースの管理画面の Settings > Database Credentials > View Credentials の Heroku CLIをコピー
$ heroku pg:psql (postgresID) --app (アプリ名)
# テーブル一覧を確認する。
$ \dt;
# List of relations
# Schema | Name | Type | Owner
#--------+-----------------+-------+----------------
# public | failed_jobs | table | xxxxxxxx
# public | migrations | table | xxxxxxxx
# public | password_resets | table | xxxxxxxx
# public | users | table | xxxxxxxx
④ migrateコマンドを実行する。
$ heroku run php artisan migrate
⑤ DBの情報を環境変数に登録する。
$ heroku config:set DATABASE_URL=(パラメータ) DB_CONNECTION=(パラメータ) DB_DATABASE=(パラメータ) DB_HOST=(パラメータ) DB_USERNAME=(パラメータ)