Cloud Functionsで課金されていることに気づいた – 開発日記(101)

2024/06/04

Google Cloud Functionsで課金が発生していることに気づいた。

Firebase側のconsoleでは請求が発生していないのに、Google Cloud Consoleを開いたら費用がかかっているとの表示が。(115円)

GCPはまだ決済連携のテストでしか使っていないのに、なぜ?

CPU時間が主な要因のようなので確認してみる。
すると、Firebase Cloud Functionsを第2世代に移行するときに参考に貼り付けたものが影響していそうだ。

setGlobalOptions({
  region: "asia-northeast1",
  memory : "1GiB",
  timeoutSeconds : 3600
});
  • 扱う処理的にスペックはこんなに要らないし、タイムアウトもよく見ると3600秒で、なんと1時間になっている。ここまで長くなくて良い。
  • 課金された可能性としては、このオプション指定の結果CPUスペックを確保した状態で、作り途中のコードなどが適切に終わらず長時間実行が続いてしまうケースが発生したのかもしれない。いったんメモリやタイムアウトを大きく減らして様子を見てみる。

額は少なかったものの、テストしただけで費用発生はちょっと驚き。気づいて良かった。

そしてレポートをさらに見てみると、費用は発生したがクレジットで相殺されて結局無料?


よく分からない。
たとえば新規ユーザに付与されるらしい“無料クレジット枠”を実は持っていてそこから充填されているのか?と思ったが、無料クレジット残高らしきものは私は無かった。

そうするとなぜ・・・?

そこで念の為サポートに確認してみた結果、「ここでは各機能の無料枠も含めて課金と表示して、そのうえで無料枠を差し引いている。割当を超えない限り実際には請求されない」という説明だった。

つまり結局のところ、各機能の無料枠に収まっていて請求は無しということなのか。紛らわしい……。

そして機能別に調べるにはレポート画面で1つずつSKUベースでフィルタが必要なようだ。

画像が見切れていますが右側でSKU単位のフィルタをしている様子が分かると思います

CPU時間で104円使ったとあるが、100ms あたり $0.000001650 のはずなので、私は気づかずにいったいどれだけの時間CPUを使ったのか……。恐ろしい。
ひとまず請求には至らないようなので良しとしよう。

ちなみにGCPのサポートには英語のチャットで問い合わせたのだが、なかなか要領を得ない回答が続いて辛かった。
海外サポートあるあるな気がする。

今日はCloud Functionsの課金調査でとても時間を使ってしまったが、決済代行会社のkomojuとの連携実装も引き続き行い、サブスクリプションの期限が来たときの仕組み作りに取り組んだ。


※開発日記は当時の記録をもとに作成し、必要に応じて加筆・補足しています

この記事はアイディア整理ソフト「idea Lane」の開発記録です

どなたでも、ユーザ登録だけで無料ですぐに使えます
テキストベースの思考整理ツール「idea Lane」


コメント / Comment

タイトルとURLをコピーしました