- GCPの一つ、 Firebaseとは何か?わかりやすく説明
- Firebaseの特長
- Firebaseを使うメリット
- Firebaseを使ってできること(機能)
- 無料枠もある!Firebaseの料金体系
- まとめ
GCPの一つ、 Firebaseとは何か?わかりやすく説明
「Firebase」は、2011年にシリコンバレー発のスタートアップ・Firebase社がサービスを開始したクラウドサービスです。クラウドサービスの中でもMBaaS(Mobile Backend as a Service)と呼ばれるモバイルやWebアプリのバックエンド処理向けのサービスにカテゴリされます。その後、2014年にGoogleが買収し、Googleの持つクラウドプラットフォームGCP(Google Cloud Platform)に統合されました。
MBaaSやBaaS(Backend as a Service)はWebアプリやモバイルアプリのバックエンドと呼ばれるユーザーには見えない裏側の処理のための機能を提供するクラウドサービスです。「Firebase」はアプリ開発者向けに提供されているサービスで、バックエンドの処理をアプリ開発者に代わって行います。アプリ開発者はFilebaseなどのMBaaS/BaaSを活用することで、バックエンド処理の開発にかかる時間、運用の手間等を省略ができるメリットがあり、コスト節約にもつながります。
Firebaseの特長
スマホやタブレットの普及によりアプリのクロスプラットフォーム開発環境に注目が集まっています。「Firebase」と連携するアプリは複数の言語での開発が可能となっており、クロスプラットフォーム、マルチプラットフォームなアプリの開発を強力にサポートします。モバイルアプリ、Webアプリ用のSDKに加え、さらに現在では利用範囲は広がりサーバークライアントアプリ向けにSDKが用意されており、SDKを呼び出すことで種類豊富なサービス・機能との連携を実現できます。
モバイルアプリの場合、フロントエンドのアプリからFirestore モバイル SDKを呼び出すことで連携します。Android、iOSをサポートしています。
Webアプリでは、サーバー言語に関わらずウェブ SDK(JavaScriptによるAPI)を提供しており、ブラウザからのアクセスが可能です。
サーバークライアントライブラリはC#、Go、Java、Node.js、PHP、Python、Rubyのプログラムに対応しています。
また、「Firebase」の継続的成長を支えてきた人気のあるサービスが、リアルタイムでモバイル間のデータ同期ができる「Firebase Realtime Database」です。モバイルアプリケーション間でのデータ同期を提供しており、データはJSONフォーマットで保存されます。
Firebaseを使うメリット
モバイルやWeb、クライアントサーバーアプリのバックエンド処理にてFilebaseを利用するメリットについて記載します。
豊富な機能を活用できる
「Firebase」はアプリ開発に必要とされる様々な機能を備えています。アプリ開発者はFirebaseのサービスを組み合わせて利用することで、多くの種類のバックグランド処理を構築可能です。複数のMBaaSにまたがることなくFirebaseだけでサービスが揃うことは、開発の利便性から大きなメリットとなります。
機能の例を挙げると、リアルタイムデータベース、アナリティクス、クラウドメッセージング、クラッシュレポートなどがあります。多くの機能が提供されており、自由に組み合わせることで柔軟なアプリ開発をサポートします。
サーバーの管理や保守の手間を省ける
バックエンド処理を代行してくれる「Firebase」を使うことで、アプリ開発者はバックエンド処理のためにサーバ環境を用意する必要が無くなります。面倒なサーバの管理や保守が不要になるため、クライアントサイドの開発に集中できることも、開発者にとっての大きなメリットです。インフラ管理の時間と手間を省略することにより、エンジニアの負担を大きく軽減します。
コスト面で言えば、サーバ管理・保守が不要であることによって節約効果が期待できます。「Firebase」の料金体系については後述しますが、無料プランも存在しており、個人開発者でも利用しやすい点も魅力です。
アプリ開発にかかる工数を削減できる
バックエンドの処理をアプリ開発者が自前で用意する場合、当然ながらバックエンド処理の開発にも工数が必要となります。バックエンド処理を構成する多くの要素がFirebaseによって提供されているため、Firebaseの活用によってアプリ開発者は工数を抑えることが可能です。
Firebaseを使ってできること(機能)
FilebaseはMBaaSとして求められる各種の機能を、それぞれ機能ごとに別々のサービスとして提供しています。利用者は実現したい機能に合わせてサービスを組み合わせて利用します。
リアルタイムデータベース(Firebase Realtime Database)
「Firebase Realtime Database」はクラウドホスト型NoSQLデータベースです。このデータベースを利用することで、アプリ間でデータをリアルタイムで保存・同期することができます。Firebaseの人気獲得に大きく貢献した優れた機能です。編集したデータはクラウドに保存され、数ミリ秒で各端末に同期されるため、各アプリケーションはリアルタイムでの共同作業が可能になります。
「Firebase Realtime Database」は、リアルタイムでのデータ保存・同期以外にもう一つ特筆すべきメリットを持っています。それはiOSとAndroidのSDKではオフラインに対応している点です。「Firebase Realtime Database SDK」はデータをオフラインのデータベースに書き込むため、ローカルキャッシュでのデータ表示を可能としています。端末がオンラインになると自動的にローカルデータと同期してくれるので、オフライン時の利用も安心です。
セキュリティに関して言えば、「Firebase Realtime Database」ではデータベース構築の仕方を指定し、ユーザーアクセス権の設定をすることでデータ保護を行います。各ユーザーのアクセス可能なデータを指定やメッセージの文字数制限は場合、数行のコードで設定でき、非常に便利です。
NoSQLデータベース(Cloud Firestore)
「Cloud Firestore」はNoSQLのクラウドデータベースサービスです。スケーラビリティが高く、強力なクエリエンジンを持っています。フルマネージドサービスのため、データベース管理の手間も不要です。利用開始時には、無料で利用できる領域が用意されており、それ以降は従量制での料金体系となります。
Firebase Realtime DatabaseとCloud Firestoreは両者ともクラウドでのNoSQLデータベースサービスです。使い分けは、シンプルにアプリ間同期が取りたい場合には「Firebase Realtime Database」、複雑なクエリの活用も視野に入る場合は「Cloud Firestore」といった形で目的や規模に沿って選択します。Firebaseのオフィシャルサイトでも比較を行っているため参照ください。
アプリのアクセス解析(Firebase向けGoogleアナリティクス)
「Firebase」には、アクセス解析ツールの「Googleアナリティクス」の機能が組み込まれています。こちらはアプリ用のアクセス解析機能で、アプリの使用状況やユーザーエンゲージメントなどの解析が可能です。
「Firebase Cloud Messaging」や「Firebase Crash Reporting」といった他の機能や、「BigQuery」や「Googleタグマネージャ」といったGoogleが提供する他のサービスとの統合もできます。
アプリに「Firebase SDK」を追加すると自動でデータ収集が開始されるので、導入にあたって難しい設定はありません。アクセス解析をすることでアプリの改善に役立てることが可能です。
クラウドメッセージング(Firebase Cloud Messaging)
「Firebase Cloud Messaging」は、クロスプラットフォームで通知を無料送信できる機能です。iOSやAndroidといった異なるデバイス、プラットフォーム間でのメッセージを無料で送受信ができます。
セグメントを使用してメッセージを送るターゲットを設定することも可能です。送信したメッセージはダッシュボードでモニタリングできるので、アプリマーケティングの分析に活躍します。
認証(Firebase Authentication)
「Authentication」は「認証」という意味で、「Firebase Authentication」はユーザーの初期登録や認証をアプリに簡単に実装できる機能です。
ログイン方法は、「FirebaseUI」に備わっている「ドロップイン認証ソリューション」を利用する、または「Firebase Authentication SDK」を使って手動でアプリに統合するかを選択できます。
後者の方法の場合、メールとパスワードに基づく認証、フェデレーションIDプロバイダとの統合(SNSでの認証)、電話番号認証、カスタム認証システムとの統合、匿名認証といった複数の認証方法が利用可能です。SNS認証では、Google、Facebook、Twitter、GitHubのアカウントが利用できます。
クラッシュ分析(Firebase Crashlytics)
「Firebase Crashlytics」は、AndroidとiOS、Flutter、Unity向けのクラッシュ分析機能です。リアルタイムでアプリのクラッシュ分析を行ってくれる機能で、クラッシュがユーザーに与える影響の測定やクラッシュの原因となっているコードを特定してくれます。
アプリ開発に常に付きまとう問題がエラーやクラッシュです。ユーザビリティを低下させないために、いち早くクラッシュの原因を特定して改善しなければなりません。この機能を使えば「Firebase」がクラッシュ状況をリアルタイムで教えてくれるため、アプリの改善に役立ちます。
データ保存(Cloud Storage for Firebase)
「Cloud Storage for Firebase」はクラウドストレージサービスです。Firebaseを利用するモバイルアプリ、Webアプリなどに向けてデータ格納領域(ストレージ)を提供します。GCPの一つとして、Googleの基準、規模に沿った高性能なクラウドストレージです。
アプリで加工したファイルの格納など、アプリからのファイル操作領域として利用できます。ファイルのアップロード、ダウンロードによりアプリやユーザ間でデータの共有を実現します。
Webサーバー(Firebase Hosting)
「Firebase Hosting」はマイクロサービス向けのクラウドホスティングサービスです。Webサイトや静的/動的コンテンツをデプロイし、グローバル向けのCDNとして配信することができます。高速な通信速度と安全性の高いホスティングサービスです。
FaaS(Cloud Functions for Firebase)
「Cloud Functions for Firebase」はFirebaseの各種機能を組み合わせて利用できるサーバーレスフレームワークです。HTTPSでのURLへのアクセスをトリガーにして、Firebaseの各種機能を組み合わせて起動するサーバーレスの処理を構築できます。処理実行のためのスクリプトはTypeScriptまたはJavaScriptで記述し、クラウド上で管理され、トリガーに応じて実行されます。
サーバーレス処理は、名前の通りサーバーサイドの処理をサーバーを保有せずに実現することができます。アプリケーション開発者のサーバー構築、調整、運用コストの削減に役立つサービスです。
無料枠もある!Firebaseの料金体系
Firebaseの料金プランは基本無料で利用でき、拡張の料金はデータ量に応じて発生します。毎月一定の利用量に達するまでは無料で利用可能です。プランは無料の「Sparkプラン」、従量制の「Blazeプラン」の2種類が存在します。
※2022年8月時点では、定額のFlameプランは新規受付を終了しています。
無料プランでは同時接続数や容量に制限があるため、ユーザー数、通信量の多いアプリでは有料プランが必要となります。想定される金額は料金プランの「Blazeプラン」料金計算ツールを利用してご確認ください。
無料から利用開始が可能ですので、アプリ開発する際には気軽に選択肢の一つとして試してみると良いでしょう。
まとめ
Firebaseにはアプリ開発を助けてくれる多彩な機能が備わっています。アプリ開発において必要となるバックエンドの機能をほぼ備えているので、特に個人や少人数で開発する場合には大きな戦力として活躍してくれます。
たとえば、「Firebase」の認証機能を使えばログイン機能を簡単に実装できるので、アプリ開発コストの削減が見込めます。アプリの改善にはアクセス解析も大いに利用したいところです。本記事で解説した機能はほんの一部で、クラウドストレージやアプリ内広告など便利な機能はまだまだたくさんあります。
Firebaseは無料から利用できるMBaaSであり、アプリ開発にかかる手間とコストを軽減するためのサービスです。開発コストを抑えたいアプリ開発者は導入を検討してみましょう。
ITエンジニアの転職ならレバテックキャリア
レバテックキャリアはIT・Web業界のエンジニア職を専門とする転職エージェントです。最新の技術情報や業界動向に精通しており、現状は転職のご意思がない場合でも、ご相談いただければ客観的な市場価値や市場動向をお伝えし、あなたの「選択肢」を広げるお手伝いをいたします。
「将来に向けた漠然とした不安がある」「特定のエンジニア職に興味がある」など、ご自身のキャリアに何らかの悩みを抱えている方は、ぜひ無料のオンライン個別相談会にお申し込みください。業界知識が豊富なキャリアアドバイザーが、一対一でさまざまなご質問に対応させていただきます。
「個別相談会」に申し込む
転職支援サービスに申し込む
※転職活動を強制することはございません。
レバテックキャリアのサービスについて