見出し画像

CockroachDB Serverlessから学んだこと

システム開発におけるデータベースの運用は、コストのかかる機能の一つです。

クラウドが普及し、Amazon Web ServicesやGoogle Cloud Platformなどのクラウドサービスを使うことで、データベースの導入コストや管理コストは下がりましたが、費用コストは下がっていません。

むしろ、サービスによっては、割高である場合もあります。

例えば、個人サービスを立ち上げる場合、Amazon Web ServicesやGoogle Cloud PlatformでRDBを運用する選択は、かなり財政的に苦しくなります。

そのため、対策として、レンタルVPSをRDBサーバーとして利用し、安価に利用している人もいます。

しかし、近年では、永久無料のサーバーレスデータベースというサービスが登場してきました。

その一つに

CockroachDB Serverless

があります。

https://www.cockroachlabs.com/serverless/

CockroachDBはオープンソースの分散SQLデータベースで、PostgreSQLのワイヤプロトコルとPostgreSQLの構文の大部分をサポートしています。
そのため、PostgreSQLで構築された既存のアプリケーションは、アプリケーションコードを変更することなくCockroachDBに移行できます。

CockroachDB Serverlessは

  • 10GBストレージと50Mリクエストユニットが月額無料

  • 上限を超える場合は、使用したストレージと容量に対してのみ支払い

  • 予算オーバーにならないよう、使用量の上限を設定可能

  • クレジットカードなしのGitHubアカウントやGoogleアカウントで利用可能

という特徴を持ちます。

つまり、個人サービスはもちろん、中規模くらいまでのサービスなら無料で利用できます。

このにわかには信じがたい特徴を実現できたのは

Cockroach Labsが

  • CockroachDBの特徴

  • サービス運営における開発者のRDBの用途

を徹底的に研究したからです。

具体的には

  • SQLレイヤーをKV(keyValue)ストレージレイヤーから分離

  • k8sを利用し、トラフィック負荷に基づいて適切な数のSQLポッドを動的に割り当てる

  • 安価なデータの保存費用以外のリソースは、利用してない場合に自動的に終了する

等を行うことで、コスト削減を実現しています。

CockroachDB Serverlessの利用ユーザーが、これらのことを理解する必要はありません。

サービスに登録するだけで、すぐ利用できます

本当に利用者のことをよく考えて作られているサービスです

  • CockroachDB自体も優れた設計のDBなので、エンジニアであれば、cockroachlabsのarchitectureの項目に目を通しておくことをオススメします。

サービス提供者として思うこと

CockroachDB Serverlessで提供されているサービス内容を知って思うのは

  • ユーザーにとって一番重要なことを知ること

  • 自分たちの持っているリソースの特徴を理解して活用すること

がいかに重要かということです。

私達はプロダクトを作る時、多くの機能を作りますが、多くのユーザーが利用する機能は限られています。

サービスは、プロダクトのコア機能を多くのユーザーに提供することが重要です。

日々タスクや売上に追われていると、こういった視点は失ってしまいがちなので、定期的に自身のプロダクトを分析して、改善していく必要があります。

分散技術

技術的には、分散化されたサービスが重要な時代になるというのをというのを改めて認識しました。

私はweb3のサービスを開発しているので、分散化サービスにはメリットとデメリットがあるということを痛感しています。

実際、開発者目線だと

中央集権的なサービスのほうが開発が楽です。

githHubの開発責任者が「ほとんどのサービスにマイクロサービスは必要なく、モノリシックにするべき」と発言したことがありますが、私もその意見に賛同します。

一方で、ブロックチェーンやCockroachDB Serverlessなどの分散化された外部サービスを使うことで、必要な機能を、素早く、低コストで実現することができます。

その上、分散化されたサービスは停止する可能性が極端に低いです。

なので、もし、あなたやあなたの所属する会社が、今からGAFAMに対抗するサービスを作ろうと思っているなら、分散化サービスの力なしでそれを成し遂げるのは、かなり困難でしょう。

現在、CockroachDBはMysqlやPostgresと比べると、あまり利用されていませんが、今後はもっと使われていくのではないでしょうか。

もし、あなたが今後新しいサービスを開発する時は、CockroachDB Serverlessの利用を検討してみることをオススメします。

この記事が気に入ったらサポートをしてみませんか?