まだオンプレミスで消耗してるの?Firebaseについて
サーバを立てるのは常識だった
以前はなにかサービスを作ろうと思うと、サーバを立てて運用するというのが常識でした。物理的なサーバを購入して自社や自宅に置くことはもちろんですが、そうでなくてもVPSで借りて運用するなどは常識だったと思います。WebならPHPでのバックエンドになりますし、アプリの開発ならRestAPIなどを設計したでしょうか。いずれにせよ、サーバを借りてプログラムを書くという点は常識でした。
サーバの運用は大変
しかしサーバの運用は大変なものです。プログラムを設置し、アクセスを適切に受けるようにして、セキュリティも考慮しなければなりません。OSの設定も大変ですし、物理的なサーバなら電源の冗長化や放熱なども考慮する必要があります。わたしも昨年、会社でDellのWindows Serverを購入しましたが、初期投資は150万円かかりましたし、場所を確保したり専用クーラを設置したり導入までに3ヶ月程度はかかりました。
クラウドがあるじゃないか
こうした負担を軽減する方法はないのか?と考えた時にクラウドがあります。
クラウドはGoogleやAmazon、Microsoftなどがネット上に構築したサービス群で、OSをVPNのように提供する低レベルなものから(IaaS)、サービスだけを提供するSaaSレベルのものもあります。そして必要なものを選んで利用するほうが、自前でサーバを運用するより圧倒的に楽です。
従来と比べて大きく違うのは、まず初期コストはゼロというです。そして、サーバを運用し続ける負担がほぼなくなります。インフラの部分の担当を任せられるのですから非常にらくになります。これにより爆発的な導入がなさされておりますが、「セキュリティ」を理由に導入していないところも多くあると思いますが、官公庁ではAWSを使ったり、NetFlixのような非常に大規模サイトでも使用されています。
その他、個人的に感じるクラウドの強みは、開発者が納得いくまで何度でもやり直せる点です。先ほど述べたように、わたしは昨年DellのWindows Serverを購入しましたが、「とりあえず動くようにプログラム設置できたら、あとは怖いから放置」ということになってしまっています。実際、一念発起しても杞憂に終わらなかったですし。。一方、クラウドはサービスなので何度でも自分が納得するまで設定をして消去ということを繰り返すことができます。テスト環境を作って、なっとくするまで設定する、そしてうまくいったものだけで本番環境で再現できるとなれば、取り合えず動くようになったら放置というオンプレミス環境と比べて大きくプログラムへの理解が深まります。
Firebaseとは
サーバレスを実現するクラウドサービスはいろいろありますが、特に利用されるのがFirebaseです。現在はGoogle(Alphabet)の傘下ですが、スタートアップだったものをGoogleが買収したものです。
Firebaseの機能
スマホアプリ開発におけるバックエンドを担うことがおおいようですが、JavaScript,JAVA,Swift,Objective-C、Swift、C++、Unity、Python、PHP、Goなどほとんどの環境からアクセスできます。
機能はこちらです
ユーザー認証 | 非常にいやらしい認証周りを簡素化するFirebaseの代表的なサービスです。IDとパスワードで実現するものに加えて、GoogleやTwitter、 Facebookなどのアカウントを利用したユーザー認証や匿名認証も可能です。 |
データベース | 「キー=バリュー型」の非SQLデータベース(Json形式)です。SQLの使えるRDBは連携しているGCPで利用できるのでFIrebaseにはNoSQLが搭載されています。ソケット通信で接続しておいて、変更があったらフロント側のデータを自動で更新してくれるので非常に便利です |
ストレージ | ファイルの保管機能。普通に画像などをストレージできます |
ホスティング | Webサイトをデプロイし、公開します |
クラウドファンクション | ネットワーク経由で特定の処理を呼び出し、実行します。Pythonで書くこともできます。このURLを叩いたらPythonプログラムを実行して解析した結果を返すといったことができます |
機械学習キット | 言語翻訳、写真からのテキスト認識、顔認証などです |
Google Analytics | Google Analyticsによるアクセス解析です |
メッセージング | スマホアプリへのプッシュ通信を実現します。Niftyなどでもできるようですが、FIrebaseがメジャーかと。。 |
いくらかかるのか
実際はGCPと連携して使う場合もあり一概にはいえないですが、使い始めてすぐお金がかかるようにはなっていません。2種類の料金プランが用意されていて、まずは一ひとつめのSparkプラン(無料枠)から始めるようになっているためです。Sparkプランだけでもデータの保存に1GB/月、読み込みに10GB/月が設定され、認証は1 万/月可能なのでかなりでかいです。料枠を超えると利用量に応じた料金が自動的にかかる仕組みです。
公式によると下記の料金体系となっています。
プロダクト | 無料Spark プランGenerous limits to get started | 従量制Blaze プラン大規模なアプリの料金を計算checkSpark プランの無料使用量を含む* |
---|---|---|
A/B テスト | 無料 | |
Analytics | 無料 | |
App Distribution | 無料 | |
App Indexing | 無料 | |
認証電話認証 – 米国、カナダ、インド help電話認証 – 他のすべての国 help他の認証サービス | 1 万/月1 万/月check | $0.01/認証$0.06/認証check |
Cloud Firestore保存データ下りネットワークドキュメントの書き込みドキュメントの読み取りドキュメントの削除 | 合計 1 GiB10 GiB/月2 万/日5 万/日2 万/日 | $0.18/GiBGoogle Cloud pricing$0.18/10 万$0.06/10 万$0.02/10 万 |
Cloud Functionshelp呼び出しGB 秒CPU 秒アウトバウンド ネットワーキング | 12.5 万/月4 万/月4 万/月Google サービス専用 | $0.40/百万$0.0025/千$0.01/千$0.12/GB |
Cloud Messaging(FCM) | 無料 | |
Crashlytics | 無料 | |
Dynamic Links | 無料 | |
HostingGB 保存済みGB 転送済みカスタム ドメインと SSLプロジェクトごとに複数のサイト | 1 GB10 GB/月checkcheck | $0.026/GB$0.15/GBcheckcheck |
アプリ内メッセージング | 無料 | |
ML Kithelpデバイス用 APIカスタムモデルのホスティング / サービス提供AutoML Vision Edge データセットAutoML Vision Edge トレーニング Cloud Vision API | checkcheck画像 1,000 件/プロジェクト3 時間/プロジェクト close | checkcheckGoogle Cloud pricing15 時間/請求先アカウント、 $4.95/時間$1.50/1,000 (Cloud Vision の料金を参照) |
パフォーマンス監視 | 無料 | |
Predictions | 無料 | |
Realtime Database同時接続 helpGB 保存済みGB ダウンロード済みプロジェクトごとに複数のデータベース | 1001 GB10 GB/月close | 20 万/データベース$5/GB$1/GBcheck |
Remote Config | 無料 | |
ストレージhelpGB 保存済みGB ダウンロード済みオペレーションをアップロードダウンロード オペレーションプロジェクトごとに複数のバケット | 5 GB1 GB/日2 万/日5 万/日close | $0.026/GB$0.12/GB$0.05/1 万$0.004/1 万check |
Test Labhelp仮想デバイスでのテスト物理デバイスでのテスト | 10 件/日5 件/日 | $1/デバイス/時間$5/デバイス/時間 |
Google Cloud PlatformBigQuery およびその他の IaaS を使用 help | close | check |
プランを選択Looking for the Flame plan? | 無料Spark プランすぐに開始可能 | 従量制Blaze プランプランを選択 |
その他

写真から文字情報を抽出して爆速でレポートや記事を作成するアプリを作成しています。無料なのでよかったらどうぞ。フロントエンドはAngularで開発し、バックエンドはGCPとFirebaseを使っています。
iOS => https://apps.apple.com/app/id1497498494
Android => https://play.google.com/store/apps/details?id=com.rainbowsv2.ocr
返信を残す
Want to join the discussion?Feel free to contribute!