firebaseについてここ数日ちょこちょこ触りました。一昔前はwebアプリというと、ほとんどがCentOSにapacheとMySQLを入れて・・・というパターンが大部分でしたが、2020年6月現在、こういったサーバーレスのアプリがかなり出ていますね。
自分が実務で触ったのはAWS関連、firebaseで、herokuなども少し触りましたので、そういったPassも含め、旧来型のサービス(CentOS借りてその上に入れる・・・)との比較を、メモしておこうと思います。
Contents
メリット
サーバーの構築、運用が不要
単純に考えて構築したり、監視の手間がないのは楽だと思います。
監視状況などはだいたい管理画面から参照できることが多く、新たに負荷監視ツールなどを入れる手間はかかりません。
セキュリティ
自前でサーバー借りて立てようとすると不正アクセスをされたりする確率が結構あります。
sshがないことが多いですし、不正にログインすること自体が難しいため、そういったセキュリティ面の心配をする必要がありません。
基本機能はほぼ搭載
あまり使いませんでしたが、herokuだとDBの自動ダンプとかロールバックなどの基本機能はほぼほぼ揃ってます。
耐久性
一般のサーバー内のサービスと比較して、サーバーが止まるということがほぼないため(少なくとも自分でアプリを立てる時よりはですが)、この点安心感があります。
スケールアウトが比較的容易
サーバーのスペックをあげたりするのが比較的楽なことが多かったり、アクセスによる従量課金性だったりして使用料に応じてサーバーを起動させるなどが比較的容易です。
デメリット
仕様の制限がいろいろとある
当たり前ですがプラットフォームの仕様の制限を受けます。例えばプログラミング言語の場合、そのそも使えるものが限られることがあるので、レガシーだったりマイナーな言語だとそもそも使えません。
またバージョンアップなどがあり、古いバージョンのものを使っていると使用不能になるケースなどもありえます。
リプレイスなどが困難
既存のWebアプリであればgitでソースを管理して、DBをダンプして・・・ということが可能ですが、これらのサービスの場合、あるプラットフォームに依存した作りになっているので、別のサービスにすんなりとリプレイスしたり移行したりすることが難しいです。
デバッグが困難
ログを一般のwebアプリのように任意に仕込んだりするなどができないため、障害発生時に本番の完全な原因追求が難しかったりします。
用途
個人的には比較的小規模なサービスや大規模サービスのアプリの一部分を担わせる(あるいは大規模サービス自体を色々と分割してこれらのサービスを使う)といいのではと思っております。
参考リンク