【Heroku】JawsDBの無料プランには制限がある

HerokuにWEBサービスをデプロイする時には、mySQLを使うためにアドオンの「JawsDB」を利用することがあります。

たまにページにアクセスすると突然500エラーが起きて、そこからしばらく500エラーが出続けてページが開けないということが時々ありました。

そしてどうやらその原因がJawsDBによるエラーということがわかったので、そのメモです。

Server Error (500)の原因

JawsDBの特定のプランには1時間のうちにDBへアクセスする回数の上限max_questions)があり、この上限を超えてしまうと500エラーになってしまいます。

制限があるのはSharedプラン(上から3つの安いプラン)で、これらは他のユーザーと容量をシェアしているため1ユーザーが使いすぎないために制限を設けているようです。

SharedプランSingle-tenantプラン
DBへのアクセス回数上限あり(1時間あたりの回数)上限なし
料金Free 〜 月24ドル月39ドル 〜
対象プランKitefin Shared
Leopard Shared
Blacktip Shared
Whitetip
Whitetip Alpha
Mako
…etc

Server Error (500)を起きないようにするには

「Single Tenant」を持っているプラン(上から4つ目以降)にする方法です。これらはアクセス回数の上限がないため、確実にエラーを起こさせないためにはプランを上げることが一つの解決法です。

ただし「月$39〜」という価格なのでお手頃とは言えないですね…。

Server Error (500)が起きてしまったら…

もしSharedプランを利用していて上限に達してしまったら、「1時間待つ」か「プランを上げる」のどちらかしかないと思います。

対処法

  1. 1時間待つ
  2. JawsDBのプランを上げる

まとめ

DawsDBを安く利用するなら上限に達しない範囲で抑えるように工夫しないといけないようです。

個人的には、Djangoの管理画面上で大量データをCSVインポートをしたかったり、DjangoでAPIを作ってNext.jsで大量のページをビルドしたかったりするので、プランを上げるしかないのかなと感じでしまいました。。

一時的な大量アクセスの時だけアップグレードして、終わったらすぐにダウングレードするとかだと料金的にどうなるんだろうか…

コメントを残す

*