firebaseBlazeプランの覚書です。
firebaseBlazeプランの料金/上限設定/無料枠
firebase hostingの無料枠はあるが、Cloud Functionsは使えない(従量制 Blaze)
firebase hostingの無料枠はありますが、Cloud Functionsは無料枠では使えません。Blazeプラン必須となります。そのため従量制に移行する人が多いのではないでしょうか。
左サイドバーの [ Functions ] > プロジェクトをアップグレード > (GCPに登録していない場合、ここでクレジットカードを登録する) > 購入 > 予算アラートの設定
FirebaseはGoogleが買収しているのは有名な話です。そのため、支払フォームはGCPと共通化されているようです。GCPはキャンペーンをやっているため、下記の順番がよろしいようです。
先にGCPに登録(無料枠300ドルゲット) → FIrebaseのBlazeプラン切り替え
GCPの中にBlazeプランも含まれています。ただし、Firebase側からはキャンペーンの告知はされないということです。
$300の無料クレジットはアカウントごとに1回限りの提供であり、新しいプロジェクトを作成しても、再度この無料クレジットを受け取ることはできません。
詳細はqiitaをみてください。個人的にもこれにのりました。昔は有効期限が1年でしたが、90日に短縮されたようです…。90日って開発している間にあまり使わず終わってしまう気もするのですけど…。
Googleさんの引き締めでしょうか…。
ただ、損することはないので、一応のっておくぐらいの軽いノリですかね。
上限設定はあるの?
結論からいえば上限設定はありません。怖いですね…。ただ予算アラート設定があります。
いいえ、現状では Blaze プランで使用量の上限を設定することはできません。Blaze プランで使用量の上限をサポートするオプションを評価中です。
Blaze ユーザーはプロジェクトまたはアカウントの予算を定義し、支出がこうした上限に近づいた場合にアラートを受け取ることができます。予算アラートの設定方法をご確認ください。
https://firebase.google.com/support/faq?hl=ja#:~:text=Flame%20%E3%83%97%E3%83%A9%E3%83%B3%E3%81%8A%E3%82%88%E3%81%B3%20Blaze%20%E3%83%97%E3%83%A9%E3%83%B3,%E3%81%AB%E3%81%AF%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82
予算アラートの設定は25ドルにした場合、次のようです。若干、日本語訳が紛らわししいですが、、。
メールを受け取る費用は $12.50(50%)、$22.50(90%)、$25.00(100%)です。この設定は後から Google Cloud Console でカスタマイズ可能です。
金額を変更すると、上記のメッセージも変更されて、メールの通知タイミングが変わるようです。
アップグレード済の登録のメールアドレスにがきています。
firebaseをBlazeプランにしたら課金された
毎月、以下のメールが届くようになりました。
Google Cloud Platform & APIs: 01D0D2-FCD0A8-1CADF3 の請求書の用意ができました
メール
請求書をみても0円でした。Googleさんは0円の請求書を送るみたいです。
しかし、ある月から突然課金されていたのです😓。
まだリリースもしていないんだけど、、
明細はfirebaseではなくGoogle Cloud Platform管理です。どこで課金されたの?何か悪いことした?と詳細を追います。
Google Cloud Platformにログイン > 料金詳細 > プロジェクト名 > 詳細
期間の設定も画面右上でできます。
こちらの方と同じ状態でリージョン系でしたね。
Google Cloudから1円の請求がきてた。
— 山口健太 / Kenta Yamaguchi (@tezawaly) October 9, 2021
明細はCloud StorageのStandard Storage US Multi-regionが1.12円となっていて、無料枠に含まれないMulti-regionなバケットをいつの間にか作っていたみたい pic.twitter.com/Vtes0E8mJb
Standard Storage Asia Multi-region で4.5GB/月使用して13円発生している。
— PBロッキー (@pbrocky) June 4, 2020
Cloud Storage の無料の使用量上限(Always Free)は”us-east1, us-west1, us-central1 のリージョンでのみご利用いただけます。”とのこと。Asia で作ったら不味かった…?https://t.co/H2XmhvTDVWhttps://t.co/1OndKkdrJf pic.twitter.com/GQiMJbfs20
firebaseBlazeプランから無料枠に戻す(追記)
【Firebaseから卒業した理由トップ10】
— ミツル|パルケのプログラマー (@MitsuruOkura) October 5, 2022
パルケでは、1年以上Firebaseを軸にプロダクトを開発し、大きな恩恵を受けてきました。
一方でFirebaseの制限・制約がつらい、と思う理由も徐々に積み重なってきました。
結果、Firebaseから卒業するという大きな判断をしました。
卒業すると判断した理由
↓
第1位:クラウド破産の恐怖
— ミツル|パルケのプログラマー (@MitsuruOkura) October 5, 2022
Firestoreは並列処理に非常に強いため、下手なコードで無限ループが発生すると、請求もあっという間に膨れてます。
対策は予算アラートメールのみで、上限で自動停止はできません。
朝起きてアラートメールに気づいた時にはクラウド破産、、という恐怖に怯えていました。
よほどの改善がない限り、firebaseを卒業する方向で考えているため、その手順です。とあるプロジェクトは卒業しました。
完全に使わない場合はプロジェクトの削除でいいでしょう。
ただ、プロジェクトをの削除はせず、プロジェクトを非公開にする方法を選びました。非公開にする方法はこちらの記事の「firebaseでホスティングの公開を停止する」が便利です。
BlazeプランからSparkプランにダウングレード
久々にみたら、少し管理画面が変わっていましたね。
画面左下のBlazeの[変更] > Sparkの[プランを選択] >
注意事項が表示されます。
プロジェクトをダウングレードする前に、次のことを確認してください。
Spark プランの使用制限を超過した場合、プロジェクト内の Firebase サービスが無効になることがあります
BigQuery との既存の統合はすべて BigQuery サンドボックスが適用されます。 アナリティクス データは、ストリーミングされるのではなく毎日エクスポートされます。 詳細
Google Cloud サービスの課金対象のアクティビティがすべて停止し、課金対象のリソースが削除される場合があります
ダウングレードと入力して[ダウングレード]
Google Cloud Platform (GCP) を解約する
firebaseをダウングレードすると、GCPの課金設定もちゃんと無効になるのか疑問でしたが、無効になっていました。ただ、初期プロジェクトが有効になっていたため、念のため無効にしておきました。
最後の請求がくるかもしれませんので、そのあたりも含めて念のため確認してもいいかもしれません。
コンソール > 左上のメニューアイコン > 課金 > 請求先のアカウントを管理
自分の請求先アカウントのタブの[請求先のアカウント]で請求状況が確認できるようです。
マイプロジェクトのアクションの3点縦アイコンから[課金を無効にする]ことができるようですが、すでに無効になっていました。
firebase Cloud Functionsの使い方
インストール
firebase Cloud Functionsのインストール方法もまとめておきます。
firebase init
◯ Database: Deploy Firebase Realtime Database Rules
◯ Firestore: Deploy rules and create indexes for Firestore
>◯ Functions: Configure and deploy Cloud Functions
◯ Hosting: Configure and deploy Firebase Hosting sites
◯ Storage: Deploy Cloud Storage security rules
◯ Emulators: Set up local emulators for Firebase features
スペースで選択してenter。
? What language would you like to use to write Cloud Functions? (Use arrow keys)
❯ JavaScript
TypeScript
言語を選択。
その後はお好みですが、最後はyesがいいでしょう。
? What language would you like to use to write Cloud Functions? JavaScript
? Do you want to use ESLint to catch probable bugs and enforce style? Yes
✔ Wrote functions/package.json
✔ Wrote functions/.eslintrc.json
✔ Wrote functions/index.js
✔ Wrote functions/.gitignore
? Do you want to install dependencies with npm now? (Y/n) y
依存関係をインストールしないとビルド前にやるため、先にやるか後でやるかだけです。functtionのフォルダとその中身のファイルが生成されます。
firebase Cloud Functionsのdeploy
cd functions
firebase deploy --only functions ←このfunctionsのみデプロイします。
functionフォルダに移動し、デプロイします。
functions “最初のデプロイを待機しています”
ローカル環境で確認
リージョンの設定
東京リージョンにします。region(‘asia-northeast1’)を追加するだけです。
こう書き換えます。
exports.api = functions.region('asia-northeast1').https.onRequest(app)
// const api = functions.https.onRequest(app);
// module.exports = { api };
(追記)failed as the billing account is not available
3ヶ月後、デプロイできなくなりました。
failed as the billing account is not available
Error: Functions did not deploy properly.
一度、無料プランに戻されるようです。アップグレードが必要です。Gmailを確認すると、以下のメールがきていました。
重要なお知らせ: トライアル期間が終了しました
コメント