Cloud Functions for Firebaseのメリット・デメリット




Cloud Functions for FirebaseはFirebaseに特化したCloud Functionsでいろんなサービスのトリガーを起点に起動できる特徴があります。

 

コードは Google のクラウドに保存され、マネージド環境で実行されます。独自のサーバーを管理およびスケーリングする必要はありません。

 

大きな特徴は下記になります。

 

  • Firebaseプラットフォームを統合
  • メンテナンス不要
  • ロジックの機密性と安全性を維持

 

Cloud Functionsをプロダクション環境で使っている経験からメリット・デメリット(注意点)について深掘りしたいと思います。

 

Cloud Functionsのメリット

サーバーレスなのでモニタリングなどのメンテ不要

Cloud FUnctionsはGoogleのマネージドサーバ上でコンテナを実行するだけなのでサーバのCPUやメモリといったモニタリングが不要になります。

 

サーバがマネージドなのでスケーリング耐性を考える必要がないですし、課金は実行時間によるのでしようしないときはお金がかからないというメリットもあります。

 

最近はCloud Run on GKEというサービスが出て、自分で作成したGKEクラスタ上でCloud Functionsのような用途でコンテナを実行する環境も出てきているので要注目です。

 

いろんなサービスのイベントをトリガーに起動できる

Cloud FunctionsはFirestore、Storage、Authenticationなど様々なサービスのイベントをトリガーに起動することができるのですが、この機能が一番便利かもしれません。

 

例えばデータ変更されたタイミングでCloud Functionsを起動してCloud Messageからプッシュ通知を送ったり、Cloud Schedulerを使って定期実行のジョブとして起動することもできます。

 

この柔軟な連携機能がCloud Functionsの大きな利点でもあります。いろんな使い方をスライドにまとめているのでぜひ見てください。

 

Cloud Functionsのデメリット(注意点)

初回起動が遅い

Cloud Functionsに限らずですが、AWSのLambdaも初回起動が遅いですね。これはコンテナの起動に時間がかかるためです。

 

一度立ち上がってしまえば起動のオーバーヘッドはなくなるのでそこまでデメリットではないですが、ユーザ数が少なくてコンテナが常時立ち上げっていない場合は遅延がストレスになります。

 

トリガーは複数回呼ばれる可能性がある

トリガーで起動したCloud Functionsは複数回呼ばれる可能性があります。なので、冪等性を考慮して実装する必要があります。

 

課金処理をCloud Functionsで実行する場合は注意してください。

 

使える言語がNode.jsだけ

GCPの方のCloud Functionsでは最近、GolangとPythonが追加されましたが、Firebaseの方のCloud FunctionsではまだNode.jsしか使えません。

 

そこまでデメリットではないですが、複数言語でかける方がいいですね。これもそのうち対応されるかと思います。

 

まとめ

デメリットであげたのは全部注意点といった感じで実際にデメリットと感じることはほぼないですね。

 

Cloud Functionsは小さいサービスから大きいサービスまで幅広く対応できる柔軟性があるのでぜひ使ってみてください。

The following two tabs change content below.

髙妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です