LoginSignup
8
5

More than 1 year has passed since last update.

GCPとFirebaseを併用するときのための備忘録

Posted at

GCPやFirebaseの超初心者である自分向けの概念理解のための記事です!
少しでもわかっている人は読まない方が時間の節約になります!!


はじめに

自分で作っているアプリでFirebaseもGoogleCloudPlatform(GCP)も用いていると、勝手にGCP側のプロジェクトが作成されていたりその名前がFirebase側のプロジェクトの名前だったり、よくわかんないけどなんかリンクしているっぽい。

個人開発でとりあえず動くことを優先してそれ以外は何も考えず作成していたので、ここらで一旦プロジェクトとして全体を管理するために、一度きちんと調べることにする。

そもそもGCPとFirebaseって何が違うんだっけ?

そもそもFirebaseとは、2011年に設立されたFirebase社が提供していたモバイルアプリ開発のプラットフォーム
2014年10月にFirebaseはGoogleに買収され、現在はGoogleの子会社としてサービスを提供している。

wikipedia: Firebase

一方でGCPは、Googleが提供する、クラウドコンピューティングサービスである。さまざまな管理ツールに加えて、一連のモジュール化されたクラウドサービスが提供されており、コンピューティング、データストレージ、データ分析、機械学習などのサービスがある。

wikipedia: GoogleCloudPlatform

GoogleによりFirebase社が買収された2017年3月に、「Firebase を より一層Google Cloud Platformと統合されたものにする」という発表があったが、同じものになる、ということではなく、共通性や互換性を強化する、という意味合いであった。

現在でも別々のサービスとして運用はされているが、リソースを共有していたり、同一プロジェクト内で管理できたりと、親和性が高い。

Googleはこれらのサービスの違いを、以下のように述べている。

Firebase は Google のモバイル開発プラットフォームです。

  • アプリの構築とユーザー層の拡大に役立ちます。
  • クライアントサイド アプリのデベロッパー(ウェブとモバイルの両方)がこれを使用しています。
  • 新しいモバイルアプリの構築、既存アプリへの新機能の追加、 ユーザー拡大のために使用されます。

Google Cloudはクラウド コンピューティング サービスのスイートです。

  • Google のインフラストラクチャ(コンピューティング、ストレージ、ネットワーキング、 データ分析、機械学習)を、 構成可能なサービスとして利用できます。
  • バックエンドやサーバーサイドのデベロッパーがこれを使用しています。
  • Google のコア インフラストラクチャ、データ分析、 機械学習を活用したソフトウェアの構築に使用されます。

要は、

  • クライアントサイドエンジニアがバックエンドまで自分でアプリ作れるようにするのがFirebase
  • サーバ・インフラサイドエンジニアがより高度なことをやりたい時に使うのがGCP

というイメージ。

自分がそれぞれで何を行なっているか

実際に両方を運用しているとプロジェクトたちはどのように見えるのか、というのを紹介していく。

Firebase側

Firebase上では、Flutterを用いたアプリのためのバックエンドのシステムとして、以下の3つのプロジェクトを作成している。

GCP側

作成したプロジェクト

GCPでは、公開用アプリの機能開発のためのサービスを使うために、「MyProject」という名前でプロジェクトを作成している。

  • Places API
  • YouTube Data API v3
  • Maps SDK for iOS
  • Maps SDK for Android

作成されていたプロジェクト

一方で、自分が作成していないにもかかわらず存在しているプロジェクトもあった。

ただ、今回調べてみて、FirebaseとGCPがそれぞれのプロジェクトを対等なものとして扱えることを知り、実際にFirebase側のプロジェクトと見比べてみると、確かにプロジェクトの名前が一致していることがわかった。

さらに中を見てみると、以下のようにFirebase側でプロジェクトを作成したときに自動で作られたであろう認証情報などもあり、またFirebaseの機能を利用するためのAPIなどが有効化されており、確かにFirebaseとGCPとの連携が強化されていることを感じた。

API_とサービス_–API_とサービス–tokai-go–_Google_Cloud_Platform.jpg

認証情報_–API_とサービス–tokai-go–_Google_Cloud_Platform.jpg

今後の管理方法

  • これまではよくわかっていなかったのでGCPとFirebaseをそれぞれ別のサービスとして使っていた。
  • そのため、一つのアプリのためのプロジェクトをFirebase側(tokai go)とGCP側(my project)でそれぞれ作ってしまっていた。
  • 今後は単一のプロジェクトにまとめて管理していくことにする。
  • また、利用可能なAPIはプロジェクト毎ではなく作成した認証キー毎に設定できるので、細かく利用制限をかけることもできそう。

最後に

ちなみにこれらを使って作成しているアプリは以下です。
ぜひ使ってみてください。

TokaiGo!(iOS版)
TokaiGo!(Android版)

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5