🙄

爆速爆安の正規表現サービスの構築(React + Firestore + Rails)

2022/12/27に公開

正規表現サービスの構築

正規表現サービスの構築を行いました。
よく忘れるので正規表現を体系立ててどこかに保存しておきたいと思ったのが構築の始まりです。
Railsのキャッチアップをする必要もあったので勉強も兼ねて構築してみました。

https://regex-checker.com/

その名も正規表現チェッカー。
自分好みの正規表現を保存しておけます。よかったら活用してみてください。

正規表現サービスの構成

構成は以下になっています。

  • フロントエンド
    • React
  • バックエンド
    • Rails
  • データ部分
    • Firestore
  • 認証部分
    • FirebaseAuth
  • バックエンドサーバー
    • Clound Run
  • フロントエンドサーバー
    • Firebase Hosting

爆安ランニングコスト

本サービスのランニングコストは安く、月々にほとんどかかりません。
サーバーにサーバーレスを選べばサーバー代はかなり抑えることができます。

通常個人サービスのランニングコストでネックになるのがDB代です。
有名な所では以下のブログが有名でしょうか。

https://laiso.hatenablog.com/entry/nope-sql

VPSでレプリケーションして、定次バックアップを取る。
そのような構成にすればDB代はかなり抑えられます。
ですがバックアップ関連に不具合があれば死亡ですし、スケールもさせにくいです。

他ではsqliteでDBファイルごとにリアルタイムでバックアップする。
というのが一番楽そうではあります。

今回は正規表現サービスというサービス特性とランニングコスト面からFirestoreを選びました。

爆速サービス

Clound Runなどのサーバーレスにはコールドスタートの問題がありますが、Google クラウドの「モニタリング」の「稼働時間チェック」をする事などでその問題は解消されます。

https://sleepless-se.net/2021/04/19/keep-cloud-run-always-warm/

爆速はちょっと盛っていますが普通に早いです。

Cloud Runはデフォルトで同時80アクセス、最大で1000までアクセスさばけるようです。
https://cloud.google.com/run/docs/about-concurrency?hl=ja#maximum_concurrent_requests_per_instance

Firestoreは勝手にスケールするので同時接続数などは性能要件としては通常考慮にいれなくて大丈夫です。

構成の詳細

Rails に Firestore を組み合わせた開発については以前投稿した下記記事などを参考にしてみてください。
https://zenn.dev/chiku_dev/articles/632bc79a47d372

ソースはそれぞれ以下になります。

次はRustでサーバーサイド部分を作ってRust版の正規表現ページを追加しようかなと思ってます。

Discussion