🎉

Vercelでやらかした話

2021/06/15に公開

少し前に「キャップ野球情報局」というWEBサービスをvercelに引っ越しまして。

6月13日日曜日。朝起きたらサイトがロックされてました。

未明にこんなメールきてまして。

We're getting in touch to let you know that your Personal Account
has been blocked for exceeding the usage limits set out in the
Fair Use Policy over the last 30 days.
You can find your usage summary for the last 30 days below:
Bandwidth - 18.034 GB / 100 GB (18.03%)
Build Execution - 8.081 Hours / 100 Hours (8.08%)
Serverless Function Execution - 302.827 GB-Hours / 100 GB-Hours (302.83%)
We sent a previous message on May 30, 2021 to warn you about your usage,
however, no action has been taken to reduce the usage of resources
consumed by your deployments.

情報局ではNext.jsのISRを使っています。

ISRとは

基本的に通信を受け取ってからページを描画すると若干のタイムラグが発生しますが、
ISRは事前にページを描画しておいて、裏側で一定時間の後に新しいページを作り直しています。
そうすることでユーザに高速でページを見せることができます。

今回の原因

ISRがServerless Functionsを使っているのですが、400ページ分のrevalidateを1秒に設定していて、「お前使いすぎやねん」と怒られたわけです。

解決法

- 月20ドルのvercel有料プランに移行する(serverless functions無制限)

  • なんとかISRを最小限にして使用量を下げてhobbyプランに戻してもらう

vercelの担当者さんと英語でやりとりして、

  • ISRの設定を間違えたこと
  • hobbyプランに戻したいこと

などを伝えて、

6月16日
アカウント制限解除されました!!

結論から言うとISRは全廃しました。
SSGは更新系のシステムには使えないし、ISR使うと上限すぐ行くし、
とりあえずSSRでいいか、と言う結論に落ち着きました。

Discussion