サーバレスで開発ができるFaaSとは? 使ってみてわかったメリット・デメリット

No-More-Servers-FaaS-with-Firebase-Cloud-Functions-1024x629
ENGINEER

FaaSとは、サーバーレスアーキテクチャと呼ばれる、サーバーのセットアップと管理が簡単になる技術のことです。サーバーレスと呼ばれることもあります。

サーバーレスは、サーバーを使用しないという意味ではなくインフラの運用が不要になるということに由来しています。従来とは違い、サーバーを起動させて使った分の料金だけを支払うことができるというサービスが、FaaSです。

サーバーの構築と設置が簡単になり、電気代も気にせずに運用できるFaaS。今回は、GoogleのCloud Function for Firebaseというサービスを使用した例(Leverege)を元に、具体的にどのようなものかを説明します。

IoTプラットフォームにFaaSを入れてみた

今回の題材である『Leverege』は、 システムインテグレータや顧客向けに、IoT​​アプリケーションフレームワークを提供しているIoTプラットフォームです。データ解析、コンテナ化されたソフトウェア設計などができます。

『Leverege』は、運用中に時々フラッディングが起きるという問題を抱えていました。しかし、通知を送るためだけに常にサーバーを稼働したくはありません。そこで、GoogleのCloud Function for Firebaseを使用して、必要なときにだけ起動するサーバーを実装しました。

Cloud Function for FirebaseのようなFaaSを使えば、必要に応じて起動させることができて運用コストを抑えられます。一定の回数を超えたら、クラウドと連携します。
イベントドリブンでクラウドと連携して、イベントを受け取ったサーバーが、メッセージを送信します。

通知を送信したあとのサーバーは止まります。
イベントを受信したときのみ一時的に起動し、FaaSが処理を行い結果を返しています。FaaSは入力された情報に対して結果を返す「ステートレス」と呼ばれる仕組みでできています。内部の処理情報はサーバー側で保持しています。


(出典:Wikipedia)

次は、メリットやデメリットを説明します。

FaaSのメリット&デメリット

使ってよかった…! 4つのメリット

FaaSのメリットにはこのようなものがあります。

  1. 運用コストが安くて簡単
  2. 対応している言語が豊富
  3. 必要な時に必要な分だけ使用するので、急なサーバーの準備は必要なくなりスケーリングがしやすい
  4. 簡単に開発を始められるので、小さなテストも簡単に試せるようになり変更も簡単

まだまだ改善の余地あり…。 4つのデメリット

反対にデメリットはこのようなものです。

  • ベンダーの管理によるトラブルが起こる
  • FaaSアプリは起動に時間がかかる
  • 複数のサーバーを使用しているので、複数のセキュリティ対策が必要
  • ステートレス
    FaaSは実行するときにのみ起動するので、実行を維持することができない

Cloud Functions for Firebaseとは

高品質のアプリを迅速に開発できる Google のモバイル プラットフォームである『Firebase』の認証動作や、ストレージの変更について、信号を受け取ってサーバ側が起動したり処理をできたりというサービスです。

Googleが提供しています。Cloud Functions for Firebaseの機能のなかでも、特に便利な機能が3つあります。

1. 開発と整備が簡単にできる

Cloud Functions for Firebaseは、Webで人気の高いJavaScriptとTypescriptで書かれており、以下の記述だけでデプロイできます。

  • firebase use project name
  • firebase deploy-only

2. FirebaseとFirestoreの統合

Firebaseは導入が簡単かつ高機能で処理速度も速いので、多くの人に利用されています。リアルタイム処理を必要とするIoTアプリケーションにも使用できます。

現在のFirebaseはベータ版ですが、正式リリースではより簡単なクエリの実行とスケールの改善が期待できます。さらに詳しい違いについては、こちらを確認してください。

3. Google Cloud Platform(GCP)連携

Google Cloud Platform(GCP)の連携が可能です。

アナリティクスと連携して、コンバージョンを検知したらイベントを起こすことができます。たとえば、商品をカートに入れたら感謝のメッセージを表示させることが可能です。
Google Cloud Platformとの連携で、さらに便利になります。

まとめ

導入が簡単でコスト削減にも繋がるFaaS。

すべてのアプリケーションに対応しているわけではないので、今後の展開に期待です。ぜひ、FaaSの便利さを体験してみてください。

(翻訳:Yuri Tanaka)

SHARE

  • 広告主募集
  • ライター・編集者募集
  • WorkshipSPACE
エンジニア副業案件
Workship