1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

herokuハンズオン Laravel & Postgres

Last updated at Posted at 2021-05-04

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
Procfile
web: vendor/bin/heroku-php-apache2 public/

④ アプリケーションをhttps化するためにAppServiceProvider.phpに下記を追記する。

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 (アプリ名)
postgresコンソール
# テーブル一覧を確認する。
$ \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=(パラメータ)
1
0
0

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?