Herokuの無料枠を使いこなそう
個人開発する際にコスト面と手軽さを考えるとAWSにデプロイするのはあまりふさわしくないでしょう。Herokuだともっと手軽くデプロイできるし無料枠もあるので、個人で開発したおもちゃをデプロイするのはちょうどいい感じだと思います。本記事ではHerokuの無料枠を使いこなす方法を紹介します。
ちなみに、この間筆者が開発した多言語WebニュースアプリもHeroku
にデプロイしています。
550h Dyno Hours
現時点(2022年5月)Herokuのプランはこうなっています。
アカウントを作ったら、550時間の無料枠が付与してくれます。
+450h Dyno Hours
プランの中に550h-1000hって書いてあるのに、残りの450hはどこからもらえるだろうと思いながら、公式のブログを調べてみました。
Personal accounts are given a base of 550 free dyno hours each month. In addition to these base hours, accounts which verify with a credit card will receive an additional 450 hours added to the monthly free dyno quota.
クレジットカードと紐付ければさらに450時間が追加されます。月に720時間を計算すれば、一つのアプリケーションを24時間走らせるのは十分でしょう。
しかし、そんなにおいしい話ではありません。他のサービスと同じく無料枠なので、必ずなんらかの制限があります。
If an app has a free web dyno, and that dyno receives no web traffic in a 30-minute period, it will sleep. In addition to the web dyno sleeping, the worker dyno (if present) will also sleep.
アクセスなしで30分経つと、アプリケーションが強制的にsleepされます。新しいアクセスがある場合、アプリケーションが再起動されます。
staticなアプリケーションはまだいいですが、定期的にスクリプトを走らせてデータを取得してDBに書き込むような操作がある場合は困りますね。
sleepさせないためのハック
実はこの問題を割と簡単に解決できます。
アプリケーションに下記のコードを追加するだけです。
const http = require('http');
setInterval(() => {
http.get('https://your_app_name.herokuapp.com/');
}, 15 * 60 * 1000);
やっていることとしては、15分ごとに自分自身をpingすることで、Web dynoを起こしています。(Node.js
の例ですが、他の言語でも簡単に実装できるはずです。)
まさにこんな感じですね。
寝るな!!!起きろう!!!
ただし、Free
プランだとSSL認証の機能がないので、Hobby
以上のプランが必要です。カスタムドメインを使う際に気を付けてください。
Happy Heroku Life!!
Author And Source
この問題について(Herokuの無料枠を使いこなそう), 我々は、より多くの情報をここで見つけました https://zenn.dev/jcc/articles/33caeb1e471859著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol