Firebaseを始めてみた

Firebaseがすごい話

今までAWSのサービス(サーバーレス中心・LambdaとかDynamoDBとかAPI Gatewayとか)は結構触ってたけどGCP系はノータッチだったので一時期超流行ってた(少し前になんかやたらブログ記事とかが量産されていた時期があったように思うんだけどあれは何だったんだ…)firebaseをこの際触ってみることにした。

Cloud Firestoreとかいう無敵のDB

Cloud Firestoreというまだベータ版だけどFirebaseもイチオシっぽいDBがある。こいつは特にDynamoDBを知ってるとそれに比べても無敵だなと思う。個人的すごいポイント:

  • Collection/Documentという分かりやすさ(Partition KeyだのSort Keyだのといった面倒さがない)
  • やたら複雑なベストプラクティスとかもない
  • インデックスが自動でいっぱい貼られる!GSIの制限とかもない!
  • read/write/deleteの完全リクエスト回数課金という分かりやすさ(あっちもon-demand capacity来ましたが)
  • コンソールから触るのも簡単・分かりやすい
  • rulesによる超細かい権限管理(これはmBaaSだからできないとまぁ困るけど)
  • DynamoDB Stream的な機能もくっついてる
  • Paginationとかにも対応してる
  • emulatorも来た(DynamoDBもdynamodb-localあるよ!)

Firebaseの便利さ

Firebaseは認証・FaaS・DB・ストレージあたりが全部オールインワンで全部そろっておりエコシステムがとても強くてよい。どこぞのAmplifyも見習ってほしい(re:Invent2018を見る限り力入れてる感はあった)。クライアントサイドだけですべてを完結させるぞという強さがありやーすごいって感じだった。

GCPもそうだけどGoogleのサービスは分かりやすさと欲しいものが大体そろってる感じが強いと思う。よく考えられてるしサービスの質が本当に高いなと思ったりあれこれ。

Firebaseをやめたいって話

とべた褒めなんですがしばらく書いてFirebaseやめるかーってなった。

  • 早く東京リージョンに来てくれ (これが一番大きい; Firestoreとかレイテンシが400-500msとかで正直使い物にならない。ページ表示に1秒もかかるサービスを使うほど暇なユーザーもそういないよ!)
  • 地味に高い、というかAWSが安すぎるのでそれに比べるとちょっとお高く感じるのはある。DynamoDBとかおかしいんじゃないかというくらい安いのでまぁね。
  • あとAppSync使いたかった これは完全な趣味だけど、AppSyncずっと使いたいと思ってたのでせっかくだしこの機会にと思って
  • 正直mBaaSがとてつもなく向いてるようなユースケースではなかったというところが大きい までもFirebaseの勉強になったので良いとしましょう

メインの理由としてはパフォーマンスとコストが大きかった(と言ってもFirebaseは無料枠もあるのでコストはそこまで大きな差はないと思う)。GCPはいい感じのやつを用意しときました!みたいなサービスが多くて、AWSは本当に特定の用途のためだけのサービスを作っといたから設計は自分で考えろやみたいな投げ方してくるのが多いイメージ。AWSの方がめんどいけどちゃんと組むとカリカリにチューニングされたプログラムのごとく本当に安く早くで組めるというイメージはありますね。めんどいけど。

個人でちょこっと使う分にはFirebaseとても良いと思うので、またなんかあったら使いたい。