374
175

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Next.jsをFirebaseにデプロイしたら高額請求がきて貯金がなくなりかけた話

Last updated at Posted at 2023-11-12

bandicam 2023-11-10 16-36-36-289.jpg

はじめに

こんにちは!!@Sicut_studyです!

クラウド破産しかけました!ギリギリ払えるくらいやばかったです!!

普段サービスを Firbese でデプロイしているのですが、この度自分でサービスをリリースした時に破産しそうになった話を共有していきます。

自分が使うためのサービスとみんなに利用してもらうためのサービスではこの点が大きく違うんだなとしみじみ感じたので、自分以外が使うサービスをリリースする方には参考になるかと思います

0. アラートは突然に

とあるメールが自分のもとに届きました

image.png

!?!??!??!??!?!!!??

やばいまだ11月始まって6日なのに予算の半分を使ってしまっただと!?!
とくにリリースなどは行っていなかったのでなぜか今月になって請求額があがるようになっていました

仕事中にメールが来たのですが、気になりすぎてまったく集中できませんでした😅😅😅😅

1. とりあえず請求をみる

まずはGCPを開いて課金を確認します

                                           
image.png

3日前から請求額が2000%アップしていました
デプロイなど新しくしたわけではなかったので不思議で仕方がありません

もうこの時点で破産確定。もやし生活なのですが、早く原因を突き止めていきます

(この記事で供養できるというのはありましたが、それにしても高額。たくさんいいねしてください)

2. 具体的な内容をみる

次に具体的にどこに課金されているのかを確認しました

                                           
image.png

がほとんどを占めており、Cloud Functionsが原因ということがわかりました

またFirebaseコンソールをみて

                                           
image.png

となっていることからNext.jsのSSRを行うためのサーバーが原因ということもわかりました

3. 原因をつきとめる

それではCloud Functionsをみていきます
日付を7日にして11月3日と11月4日でどのような違いがあるのかをみました

                                           
image.png

Instance Countidleがその日を起点に増えており、そこから横ばいになっていました!!

こいつが原因じゃん!!!

3日以降に一気にアクセスが増えてオートスケーリングでインスタンスが増えてidleになったがidleなのでずっと裏で動き続けていてお金がかかっていました

そもそもidleになるんじゃなくて消えてほしい、、、

4. 問題を解決する

まずはFirebase.jsonにインスタンス数の上限値を設定しました

firebase.json
    "frameworksBackend": {
      "region": "asia-east1",
      "minInstances": 1, //注意事項有り
      "maxInstances": 2
    }

これでデプロイし直したところで事なきを得ました

ここまで見た方は自分のFirebaseにとりあえず設定しましょう

最小インスタンス数を設定するとそのインスタンス数分は課金されてしまうので、設定しないと0になり、初回起動は遅くなりますが回避することは可能です。

下手すると以下のようにインスタンス数100で動くこともあるようです

アラート設定しよう

これを見た方はとりあえずGCPでもAWSでも課金のアラートをつけましょう

ほんの少し設定するだけで、最悪の事態は逃れられます。

私は高額請求で貯金がなくなったので売れるものを売って来月は生きることにしました

B69AB6B0-3498-4C91-9CBB-580F436FB1FB.jpeg

おわりに

Firebaseを使ったデプロイは私も普段気軽に行っているのですが、みんなに使ってもらうサービスとして公開する場合は気をつけておかないといけないなと思い記事にしてみました

ここまで読んでいただけた方はぜひいいねストックよろしくお願いします。

少し宣伝します🔥🔥🔥🔥🔥

これからエンジニアになろうとしている人を本気でコーチングして3か月の期間で立派なエンジニアにするようなチャレンジをしてみたいなと考えております。

もし、本気でエンジニアを目指してコーチングを受けてみたいという方がいれば、Twitterに「プログラミング教えてほしいです」みたいなリプライ送っていただけたらなと思います!!

以上です。
今週もプログラミング頑張りましょう!

bandicam 2023-10-04 20-58-54-525.jpg

おすすめ記事

参考

374
175
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
374
175

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?