概要
スタートアップにはお金がありません。
出来るだけ、利用するお金を節約しながらも、使っていく必要があります。
そんな中でFirebaseをどうやって使っているのかについて共有したいと思います。
どういう人向けの記事か
- 使ったことはないが、スタートアップでのFirebaseの導入を検討している
- 料金体系的に、本当に使っても問題ないのか判断しかねている
といった個人開発、スタートアップの皆さま向けの記事になります。
入った当時の自分の技術スタック
- PHP5系を書いていた
- Dockerなどの開発環境構築の知見がある
- フロントはHTML、CSSを書いたことがある程度
これによりFirebaseなどの認証周りを外だししたようなBaasのようなものは使ったことがないといった状況でした。
その状況で、Firebaseを採用したサービスへのJoinが決まりました。
Firebaseの何を最初に利用していたか
入った当時にFirebaseを何に使っていたのかを端的に書くと以下の通りです。
- Authentication(メールのみ)
- Hosting
サービス自体は、SPAで構成していました。(現状は異なります)
動的ページの部分も無理やり静的ページとしてビルドした上で、Hostingを行う形式です。
Nuxt.jsのconfigでgenerateにページの動的ページのIDを埋め込むなどすれば、Hostingとして無理やり構成できます。(オススメはしませんが)
実際に使ってみた結果どうだったかというと、どちらも便利なんですが、長期運用をする上では、一手足りないというところです。
- Authenticationについては、認証のデータをバックエンドに持っていないが故に、認証の情報をどこまで持たせるのかを先に決めておかないと実装ミスが発生しやすい
- Hostingについては、静的サイトなので、/:idといった動的URLを構成するようなページを作成する際には、かなり面倒な処理が入り、SEO対策などをやるにも面倒になる
上記より、長期運用ができそうとわかった段階で、リプレイスが発生することは承知の上で使う必要があります。
なぜFirebaseを使用していたのか
Firebaseを最初に使っていたのは、今後のことを考えると以下のメリットが発生するかなという仮説があったためです。
- 認証の外への切り出しが楽になる可能性
- 当時は、マイクロフレームワーク(Flask)を利用している関係で、認証処理を書きたくない
上記のような状況であったため、認証とフロントエンドのホスティングを楽にしてくれるFirebaseはうってつけな状況でした。
これは余談になってしまいますが、最初にサービスが本当にニーズがあるのかといった段階でお試しをするのであれば、
様々試してみて、すでにやってみた方の意見を聞いてみたときに、以下のような形式でサービスのニーズがあるのか試せるのが良いのではと感じています。
- Firebaseを中心に、フロントエンドのみを実装して、ユーザーテストをする
- フルスタックフレームワークをすぐ使える技術スタックがある人がいるなら最低限の機能実装で試してみる
何のプランを使用していたのか
Blazeプランを使用でした。
最初は、Sparkプランを使用していましたが、作成していたサービスの性質上、
あまり当時のサービスで行う動作自体が、オンラインの予約だけであったため、アクティブユーザーが常にいるような形態ではなかったのもあり、Blazeにすることで、Sparkプランよりも、利用できる容量範囲が広くなる(無料の容量がという意味で)と判断しました。
もしtoCのiOS, Androidアプリで、バズりそうなものである場合は、あまりオススメしません。(利用状況の想定が難しいという意味で)
WEBサービスで、アクティブユーザーがあまり伸びないが利用はされるような形態のものに関しては、
Blazeのなかの無料料金内で、なんとかなるので、こちらがおすすめです。
まとめ
- 最低限のユーザーテストをする際に活用するとめちゃめちゃ便利(もうわかってるよという方ごめんなさい)
- Blazeプランは、WEBサービスのActiveユーザーがあまり伸びないが利用はされる形式のサービスにはめちゃくちゃお得。
明日は、@sgr-ksmt さんが何か書いてくださるそうです!
楽しみです!