【Firebase】Firebase Cloud Storageがいつのまにか無料のSparkプランでは使えなくなっていた
スポンサーリンク

Cloud Storage for Firebaseの使用が有料に?

FirebaseのStorageが無料で使えなくなってしまった!?

ヒーラー
モバイルアプリを作る際、新規でFirebaseのプロジェクトを作成したら、今までどおりCloud Storageが使えなくなってしまった

はじめに

何が起こったのか

新規アプリのプロジェクトが立ち上がったので、いつもどおりFirebaseを使ってStorageを使おうと思ったら、Storageの画面で設定できないことに気づきました。

現在は無料のSparkプランです。

上記のような画面になっており、Storageをすぐに使うことができません。

Storageを使用するには、プロジェクトの料金プランをアップグレードしてください

というメッセージと「プロジェクトをアップグレード」というボタンが用意されています。

他のStorageを使用しているプロジェクトを見に行くと、従来どおり問題なくStorageが使えています。

新規のプロジェクトにおいてだけ、こうなってしまうことに気付きました。

Firebaseのプロジェクトの設定画面の設定がおかしいのかと思い、従来のプロジェクトと見比べていましたが、特に気になった点はありません。

「Google Cloud」の「APIとサービス」の設定も確認したりもしましたが、こちらもおかしな点は見つかりません。

Firebase CLIでのStorage初期化も試してみました。

% firebase init storage

     ######## #### ########  ######## ########     ###     ######  ########
     ##        ##  ##     ## ##       ##     ##  ##   ##  ##       ##
     ######    ##  ########  ######   ########  #########  ######  ######
     ##        ##  ##    ##  ##       ##     ## ##     ##       ## ##
     ##       #### ##     ## ######## ########  ##     ##  ######  ########

You're about to initialize a Firebase project in this directory:

  /Users/.../project


=== Project Setup

First, let's associate this project directory with a Firebase project.
You can create multiple project aliases by running firebase use --add, 
but for now we'll just set up a default project.

...

=== Storage Setup

Error: Cloud resource location is not set for this project but the operation you are attempting to perform in Cloud Storage requires it. Please see this documentation for more details: https://firebase.google.com/docs/projects/locations

しかしながら、「Error: Cloud resource location is not set for this project but the operation you are attempting to perform in Cloud Storage requires it.」ということでエラーとなってしまいます。

ただ、ここでfirebase-toolsのバージョンが最新ではなかったようなので、アップデートします。

% npm install -g firebase-tools  

そして再度Storageの初期化を試します。

% firebase init storage          

     ######## #### ########  ######## ########     ###     ######  ########
     ##        ##  ##     ## ##       ##     ##  ##   ##  ##       ##
     ######    ##  ########  ######   ########  #########  ######  ######
     ##        ##  ##    ##  ##       ##     ## ##     ##       ## ##
     ##       #### ##     ## ######## ########  ##     ##  ######  ########

You're about to initialize a Firebase project in this directory:

  /Users/.../project


=== Project Setup

First, let's associate this project directory with a Firebase project.
You can create multiple project aliases by running firebase use --add, 
but for now we'll just set up a default project.

? Please select an option: Use an existing project
? Select a default Firebase project for this directory: project (projectName)
i  Using project project (projectName)

=== Storage Setup

Firebase Storage Security Rules allow you to define how and when to allow
uploads and downloads. You can keep these rules in your project directory
and publish them with firebase deploy.

? What file should be used for Storage Rules? storage.rules
✔  Wrote storage.rules

i  Writing configuration info to firebase.json...
i  Writing project information to .firebaserc...

✔  Firebase initialization complete!

なぜか、「Firebase initialization complete!」という初期化が成功のメッセージまで進みました。

しかしながら、その後時間をおいてFirebaseコンソールのStorageを確認しても、状況は変わりませんでした。

問題点

実は、2024年9月にCloud Storage for Firebaseの変更ということで発表されていました。

こちらのサイトにその内容が掲載されています。
https://firebase.google.com/docs/storage/faqs-storage-changes-announced-sept-2024?hl=ja

Cloud Storage for Firebase を使用するには、プロジェクトが従量制の Blaze 料金プランに登録されていることがまもなく必須になります。Blaze の料金プランでも、引き続き無料使用枠をご利用いただけます。

2024 年 10 月 30 日以降、新しい Cloud Storage for Firebase デフォルト バケットをプロビジョニングするには、Firebase プロジェクトが従量課金制の Blaze の料金プランに登録されている必要があります。バケットでは、必要に応じて Google Cloud Storage に 「Always Free」階層を使用できます。
2025 年 10 月 1 日
より、デフォルト バケットと他のすべての Cloud Storage リソースへのアクセスを維持するには、Firebase プロジェクトが従量課金制の Blaze の料金プランに登録されている必要があります。*.appspot.com のデフォルト バケットは、Blaze の料金プランでも、現在の無料使用量を維持します。

手元のメールを探してみると、2024年10月1日に、『[Action Required] Review new pricing plan requirements for Cloud Storage for Firebase』というタイトルで、Firebaseより同様の内容のお知らせメールが届いていました。

記事の内容を読んでいると、デフォルトバケットが今までは PROJECT_ID.appspot.com だったのに対し、これからは PROJECT_ID.firebasestorage.app という形式になるようです。

Firebaseコンソールより、既にCloud Storageを使用しているプロジェクトを確認してみると、確かにバケットは PROJECT_ID.appspot.com の形式になっていました。

新しく Cloud Storage 使用するには従量課金制の Blaze の料金プランへのアップグレードが必要

結局、2024年10月30日以降は、Firebaseのプロジェクトで新しくCloud Storage を使う際には、今までのように無料の Spark プランでは作成できず、従量課金制の Blaze プランにしなければならないということです。

ここで気にしなければならないのは、じゃあ無料枠はどうなのか。そもそも無料で使えないのかということです。
何が一番嫌かというと、知らない間にコストがかかってしまっているという状況になり得ることです。

改めてFirebaseの料金プランを確認しましょう。
https://firebase.google.com/pricing?hl=ja

*.appspot.com と *.firebasestorage.app の欄に別れていることがわかります。

現状使用している *.appspot.com バケットにおいては特に変更ありませんが、*.firebasestorage.app バケットにおいては、Sparkプランでは対象となっておらず、Blazeプランでのみ対象となっています。
無料枠の値を書かれており、Sparkプランと比べて項目によって上限が異なっています。

そして注目したいのが、Noteの記述です。

Note: No-cost quotas are only available for buckets in the following regions: us-central1, us-west1, us-east1.

無料枠は、us-central1、us-west1、us-east1 リージョンのバケットでのみ利用できるということです。この無料枠は別の記事で、Always Free という名称で表現されています。

逆に言えばそれ以外のバケットを選んでしまうと、無料枠はないということになります。

したがって、完全無料の状態では使用できないようです。
無料で使用し続けるには、us-central1、us-west1、us-east1 リージョンのバケットに絞って、無料枠の範囲で利用するしかないようです。


対処方法

今までどおり無料で Cloud Storage を利用し続けるには、us-central1、us-west1、us-east1 リージョンのバケットに絞って、無料枠の範囲で利用するしかないようですので、手続き上問題ないかを確認しながら実際にBlazeプランにアップグレードしてみます。

以下に手順を記載します。

最初のこの画面で「プロジェクトをアップグレード」のボタンを押して先へ進めます。

1
請求アカウントを選択する

以下のようなポップアップ画面が表示されるので、選択したプランを確認し、Cloud請求先アカウントを選択します。

初めての場合、請求先アカウントが存在しないので、「Cloud 請求先アカウントを作成」のボタンからアカウントを作成します。

2
請求アカウントを作成する

「Firebase のお支払い」用のアカウントを作成します。

国を選んで通過が決まります。決まったら「確認」ボタンを押します。

すると課金情報の設定画面に変わります。

私の場合、既にお支払いプロファイルが作成済だったので、そのまま「送信」ボタンで進みます。

まだお支払いプロファイルがない人やお支払い方法を変更したい人は、「お支払い方法を追加」でお支払い方法を追加します。

3
バケットを設定する

この画面でバケットのロケーションの設定をします。

心配していたバケットのロケーションの設定画面がきちんとありました。
そして、きちんと料金不要のロケーションという記述がありました。
無料枠の上限を超えたら課金されるので、料金不要という記述には少しひっかかりますが、予定どおり、us-central1、us-west1、us-east1 が選択肢として出るので、いずれかを選んで「続行」します。


この設定を終えると、無事Blazeプランへのアップグレードが完了します。

FirebaseコンソールのStorageの項目を確認すると、従来のプロジェクトと同様、正常に設定できる画面に変わっていました。

まとめ

こういう有料化に向けた改変っていつされるか分かりませんよね。
気づかないうちにまた改変があって自然にコストがかかっていたということになりかねません。

実際こちらの Cloud Storage の料金に関するページで、「Always Free の内容は変更される場合があります」という記述があります。
https://cloud.google.com/storage/pricing?hl=ja

Cloud Storage の Always Free の割り当ては、US-WEST1、US-CENTRAL1、US-EAST1 の各リージョンの使用量に適用されます。使用量はこの 3 つのリージョン全体で集計されます。Always Free の内容は変更される場合があります。資格要件とその他の制限については、よくある質問をご覧ください。

少なくともメールの通知はあるでしょうから、見逃さないようにして情報のアップデートを心がけましょう。


スポンサーリンク

Twitterでフォローしよう

おすすめの記事