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

![bandicam 2023-11-10 16-36-36-289.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/38d39710-8ae7-a2b0-6119-437fd665da03.jpeg)

# はじめに

<h3>こんにちは！！@Sicut_studyです！</h3>

### <font color="red">クラウド破産しかけました！ギリギリ払えるくらいやばかったです！！</font>


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

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

# 0. アラートは突然に

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/14933df7-022c-69d2-4faa-74451871eeec.png)

#### !?!??!??!??!?!!!??

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

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

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

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

|　　　　　　　　  　　　　　　　　   　　　　　　　　　　　　　　　　　　　　　　　　　|
|:-:|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/384a30aa-75dc-36a6-2c5e-c74d593d3a55.png)

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

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

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

# 2. 具体的な内容をみる

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

|　　　　　　　　  　　　　　　　　   　　　　　　　　　　　　　　　　　　　　　　　　　|
|:-:|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/bbd345da-1451-e7e0-e166-703271df1134.png)

<font color="blue">**青**</font>がほとんどを占めており、<font color="red">**Cloud Functions**</font>が原因ということがわかりました

またFirebaseコンソールをみて

|　　　　　　　　  　　　　　　　　   　　　　　　　　　　　　　　　　　　　　　　　　　|
|:-:|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/64adb4b1-1109-d33e-5f59-a740557de0e1.png)

となっていることから<font color="red">**Next.jsのSSRを行うためのサーバーが原因**</font>ということもわかりました

# 3. 原因をつきとめる

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

|　　　　　　　　  　　　　　　　　   　　　　　　　　　　　　　　　　　　　　　　　　　|
|:-:|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/19bc4770-b429-40a8-7c46-47eb5a37c618.png)

`Instance Count`の<font color="red">**idle**</font>がその日を起点に増えており、そこから横ばいになっていました！！

#### こいつが原因じゃん！！！

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

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

# 4. 問題を解決する

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

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

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

#### <font color="red">ここまで見た方は自分のFirebaseにとりあえず設定しましょう

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

https://nagomi-informal.net/archives/2342

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

https://twitter.com/1amageek/status/1716713792628039931

# アラート設定しよう

### <font color="red">これを見た方はとりあえずGCPでもAWSでも課金のアラートをつけましょう

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

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

![B69AB6B0-3498-4C91-9CBB-580F436FB1FB.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/5d54f117-5694-6c59-9810-fff858de7553.jpeg)

# おわりに

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

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

<h5>少し宣伝します🔥🔥🔥🔥🔥</h5>

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

もし、本気でエンジニアを目指してコーチングを受けてみたいという方がいれば、[Twitter](https://twitter.com/Sicut_study)に「プログラミング教えてほしいです」みたいなリプライ送っていただけたらなと思います！！

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

![bandicam 2023-10-04 20-58-54-525.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/f41a0065-b23e-1895-da22-66bf0e48c5fb.jpeg)

# おすすめ記事

https://qiita.com/Sicut_study/items/c38b51907d18131b31f6

# 参考

https://nagomi-informal.net/archives/2342