LaravelをHerokuに完全無料でデプロイするメリット・デメリット

Laravelデプロイ

Laravelプロジェクトを完全無料でデプロイしたい時に、Herokuを使う選択肢があります。

わたしもHerokuを試してみましたが、結論としては、

「テストには良いけど本気使いには向かない。」

でした。経験を通じて分かったメリット・デメリットを3つずつお伝えします。

Heroku使ってみたいけど、デメリットってないのかな?

無料だと落とし穴がありそう

という方の参考になれば嬉しいです。

どこまで無料で利用可能か、といった点も含めて、お伝えしていきますね。

LaravelデプロイにHerokuを使う3つのメリット

まずはHerokuの良かった点からお伝えします。

Herokuのメリット① 完全無料でLaravelデプロイが可能

Herokuを使えば、完全無料でデプロイは可能です。

無料で使えるのは、やはり嬉しいポイントですよね。

わたしはGitHubをリモートリポジトリにしてHerokuにデプロイを試しましたが、なかなか便利です。

Junko
Junko

GitHubでは、プロジェクトを非公開(Private)にしておくと良いですよ。

Heroukの価格表のスクショは、下記のとおり。料金体験については、詳細は公式ページもご覧ください。

【Heroku価格表】

参考:https://jp.heroku.com/pricing

メリット② 環境をそろえやすい

Laravelデプロイには、node.jsとphpが必要になります。

Herokuでは、こういったデプロイに必要なオープンスクリプトを手軽に揃えられます。

コマンド入力も可能ですし、各プロジェクトのSettings/Buildpacksから選択できます。

【Heroku/Buildpack選択画面】

Junko
Junko

ボタン操作で手軽に入れられるのは良いですね。

メリット③ httpsはデフォルトでついてくる

Herokuでは、デフォルトのURLは、httpsで始まります。SSL化対応済みです。

ただ常時SSL化をするには、Laravelプロジェクト側にコードを追加する必要があります。

なお独自ドメインのSSL化も可能ですが、設定が必要ですし、有料となります。CloudFlareを使うと無料との情報もあるので、気になったら調べてみてください。

Junko
Junko

わたしはテストサイトだったので、デフォルトのURLを使いました。

LaravelデプロイにHerokuを使う3つのデメリット

ここまでHerokuを使うメリットを3点あげました。

次に、個人的に「うーん、不便!」と感じた点についてお伝えします。

デメリット① データベースはPostgre SQL

HerokuのデータベースはPostgres SQLとなります。

MySQLを使うことも可能ですが、別途【ClearDB MySQL】というAdd-Onを追加して、設定する必要があります。

【Heroku ClearDB MySQL設定画面】

ただ無料で使えるのは5MBまで。

通常は5MBで大丈夫かと思いますが、5MB以上使いたい場合は、有料版が必要です。またAdd-Onを使うには、クレジットカードの登録が必要となります。

Junko
Junko

わたしは、このAdd-Onを設定してMySQLを使ってみました。特に問題なく利用できています。

デメリット② アップロードした画像が保存できない

Herokuでは、Webアプリのフォーム等を通じてアップロードした画像データは、定期的に削除されてしまいます。

実際に試してみましたが、フォームを通じてstorageに保存した画像データは、次にログインしたときには消えてしまっていました。

ただデータベースには情報が残っています。なので、Webアプリ上で画像が表示されるはずの箇所は、リンク切れ状態となります。

【Herokuでリンク切れ状態のWebアプリ】

なお、Webアプリに最初から設定してある画像(publicディレクトリに設置)は、ちゃんと残っていました。

このアップロードファイル削除問題を回避する手段として、AWS S3のようなサービスと連携させる手があるようです。ただ、わたしのほうでは今回試しておりません。

Junko
Junko

画像保存ができないのは、不便ですよね…

ファイルをアップロードしないWebアプリなら良さそうですが。

デメリット③ 気づくと有料になったりする

Herokuはデフォルトでは無料ながら、一定の稼働時間を超えると自動課金されます。

無料で使える範囲は、月550~1000時間の稼働まで。

クレジットカード情報を入力してアカウントを認証すると、1000稼働時間OK。クレジットカード情報なしだと、550稼働時間です。

point・クレジットカード情報を入れて認証:1000稼働時間無料
・クレジットカード情報なし:550稼働時間無料

普通に計算すると、1ヵ月フルに使うと、24時間×31日=744時間となります。

ですが、Herokuは30分間アイドル状態が続くと自動でスリープします。つまり、それほど使われないWebアプリなら、稼働時間はずっと少なくなるはず。

ひとつのHerokuアカウントで複数プロジェクトを動かすこともできそうです。

ただし、クレジットカードを登録してある場合には、規定の時間を超えると、利用料は自動で課金されます。

Junko
Junko

現在の利用状況は、アカウント/Billingから確認できます。

良く使う場合、利用料は、チェックしておくことをおすすめします。

稼働時間を超えると自動で課金されるという部分で、もうひとつ、お伝えしておきたい点があります。

Herokuには、Heroku Schedulerという、指定した時間間隔で指定したコマンドを定期実行できるAdd-Onがあります。

Cronのような機能で、わりと使われることが多い機能かな、と思います。

わたしも使おうと思って、調べてみました。

すると、Heroku Schedulerは無料ながら、利用時間は稼働時間としてカウントされます。つまり、頻繁に実行する動作を設定すると、

いつのまにか、こんな金額になってる!

なんてことにも。頻繁に自動操作を行うWebアプリでHeroku Schedulerを使う場合は、ご注意を。

さいごに

Herokuのメリット・デメリット紹介しました。

テスト使いにはよいですし、ありがたいサービスです。

ただ本気で使うには、やっぱり、完全無料では難しいというのが正直な感想です。

Webアプリをちゃんと本番環境に反映させる(デプロイする)なら、デプロイに慣れていない場合は、環境がそろっているレンタルサーバーがおすすめ。

わたしはエックスサーバーを愛用していますが、速度面・機能面・使いやすさの面から、いちおしです。

エックスサーバーは、2022年1月時点で、日本で一番使われているレンタルサーバーでもあります。

エックスサーバーについて、詳しくはこちら。

↓↓↓



ただ、

そうはいっても、デプロイの手順が分からない。

デプロイする中で、セキュリティ上で必要な対策とか、いちから知りたい。

という場合には、わたしのほうで、Laravelをエックスサーバーにはじめてデプロイする人のための講座も開催しています。

動画とテキストで、デプロイの手順をひとつずつ解説していきます。詳しくは、こちらの案内ページを見てみてくださいね。

Laravelはじめてのデプロイ講座について見てみる

Junko
Junko

最初の10章まで、無料でご視聴いただけます。

Laravelデプロイ

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

Laravel8版と、最新のLaravel9版、ふたつのテキストご用意してます♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

Laravel8版と、最新のLaravel9版、ふたつのテキストご用意してます♪

Laravel関連のご相談承ってます♪
「Webアプリを開発してほしい」
「社内にLaravelが分かる人がいない。コンサルしてほしい」
そんな企業様のご依頼承っています。
お問い合わせはこちら
Laravel関連のご相談承ってます♪
「Webアプリを開発してほしい」
「社内にLaravelが分かる人がいない。コンサルしてほしい」
そんな企業様のご依頼承っています。
お問い合わせはこちら
Twitter始めました。
40代からプログラミング!

コメント

タイトルとURLをコピーしました