iyuichiの私的開発ログ

渋谷で働くWebエンジニアのログ. Java, Android, iOS, Docker, GCP, AWS, ゲーム開発

Herokuが新料金を発表。無料Dynoの制限が変わる

Heroku | New Dyno Types and Pricing Public Beta

Heroku使ってますか? わたしは、いくつかNode.jsで自作したボットとか動かして楽しんでいます。 最近、会社でもslack連携させるhubotをherokuを使って運用するのを試しています。

そんな中で新料金が発表されました。 ざっと目を通していたら気になる点が。

Awake time max 18hrs/day

1日18時間までしか起動させておけなくなるようです。 heroku schedulerとか、監視サービスとか利用してHack的にDynoを寝かさないようにしている方、結構いるんじゃないでしょうか。

自分もHubotをhubot-heroku-keepaliveというモジュール使って起こし続けているのですが、それができなくなりそうです。

でもよく考えてみると、起きていてほしい時間帯にはずっと起きていて欲しいのだけれど、スリープしていても良い時間帯があるというものの少なくないと思います。

実際わたしが立ち上げているものは夜中は止まっていても問題ないものだったりします。 それが許されない要件の場合は$7払いましょうw

で、hubot-heroku-keepaliveとかscheduler&curlとかで起こしているケースで利用できそうな方法を考えました。 Process Schedulerというアドオンを利用すると簡単にできそうです。 Heroku APIを利用して自前でやってもおなじことができます。

https://devcenter.heroku.com/articles/platform-api-reference#formation-update

quantityを0にしてやればアプリが停止しますので利用しない時間帯は停止してしまいます。 そして必要な時間になったら1に戻してやります。

これを自動化するためにProcess Schedulerを利用します。 f:id:iyuichi:20150514085428p:plain

こんな感じに設定してやるとAM1:00-AM6:59までは利用せず、 それ以外の時間帯で起動することができそうです。 もちろん30分間アクセスがないとスリープするという制限もありますのでプロセスを1にしている時間帯で、これまでのように起こし続けるための工夫を入れることは必要です。

ということで無料Dynoの新料金対策でした。

追記

新料金に対応してバージョンアップされたhubot-heroku-keepaliveの記事があったのでリンクを貼っておきます。 HubotをHerokuのFree dynoに対応させる | スペースマーケットブログ

Heroku: Up and Running

プロフェッショナルのための 実践Heroku入門 プラットフォーム・クラウドを利用したアプリケーション開発と運用 (アスキー書籍)

HerokuではじめるRailsプログラミング入門

新品価格
¥3,456から
(2015/10/29 18:59時点)

はじめてのNode.js -サーバーサイドJavaScriptでWebアプリを開発する-

新品価格
¥3,132から
(2015/5/14 09:01時点)