osFoundry / Platform
アプリ単位のPostgres
各アプリが専用のPostgres(pgvector+TimescaleDB付き)を取得。保存した分だけのお支払い。
概要
アプリ別Postgresは、osFoundryで作る各アプリに専用のPostgresデータベースを割り当てる仕組みです。すべてのアプリが一つのスキーマや一本の接続を共有する必要はありません。各データベースには、埋め込みの保存と検索に使うpgvectorと、時系列データを扱うTimescaleDBが最初から含まれています。そのため、リレーショナルなテーブル、セマンティック検索のためのベクトル、指標やイベントストリームを、別々のサービスを継ぎ足すことなく一つのデータベースに収められます。埋め込みを生成するモデルは自分のキー(BYOK)で動かし、それを保存するPostgresがアプリごとに用意されます。
各アプリが自分専用のデータベースに隔離されているため、あるアプリのスキーマやインデックス、データが別のアプリのものと衝突することはありません。この隔離によって、アプリの挙動は追いやすくなり、安心して改良を重ねられ、片付けもきれいに済みます。アプリを削除すれば、そのデータベースも一緒に消えるからです。osFoundryの中で、これはAppsとBackendの層に位置します。作ったアプリはおもちゃのようなキーバリューストアではなく本物のバックエンドデータストアを持ち、同じデータベースをアプリのサーバーサイドコード、ベクトル検索、時系列クエリのすべてから使えます。osFoundryはBYOKでローカルファーストのワークスペースであり、この仕組みも製品全体を貫く原則に沿っています。データとそれが載るインフラは利用者自身のものであり、その上に座席課金が積み重なることもありません。
料金は実際に使った分に従います。保存した分だけの課金なので、数千行を保持するアプリはそれ相応の費用で済み、データベースを埋めないアプリが、あたかも満杯であるかのように請求されることはありません。これによって、小さなアプリや試作的なアプリも含め、すべてのアプリに標準で専用のPostgresを持たせることが現実的になります。費用を惜しんでデータベースを配給制にする必要はありません。pgvectorとTimescaleDBは、いま持っているデータベースに含まれる機能であり、別立ての明細が付く追加オプションではありません。
主な機能
- アプリごとに専用のPostgresデータベースが割り当てられ、他のアプリのスキーマやデータから隔離される
- pgvectorを標準搭載し、リレーショナルなテーブルと同じデータベース内で埋め込みの保存と検索ができる
- TimescaleDBを標準搭載し、指標やイベントストリームをアプリの中心的なテーブルの隣に置ける
- 保存量ベースの料金で、保存した分だけの課金なので小さなアプリや試作アプリも安く保てる
- osFoundryのBYOK・ローカルファーストの方針に沿う。埋め込み用のモデルキーは利用者が用意し、それを保存するデータベースはアプリごとに利用者のもの
活用例
- アプリ開発者:リレーショナルなテーブル、セマンティック検索、ダッシュボードが必要なアプリを、三つのデータサービスを別々に配線せずに公開する
- AIエンジニア:pgvectorで文書の埋め込みを保存し、アプリのレコードを持つのと同じPostgresで類似検索を実行する
- 個人開発者:それぞれ専用のデータベースを持つ小さなアプリをいくつも立ち上げ、実際にデータがたまる一握りの分だけ支払う
よくある質問
アプリごとに本当に別々のPostgresデータベースが割り当てられるのですか。それとも一つの共有インスタンスですか。
アプリごとに専用のPostgresデータベースが割り当てられ、他のアプリから隔離されます。スキーマ、インデックス、データはそのアプリのものであり、アプリを削除すればデータベースも一緒に消えます。この隔離があるからこそ、アプリ同士が衝突せず、改良も片付けも簡単になります。
pgvectorとTimescaleDBは自分でインストールする必要がありますか。
いいえ。pgvectorとTimescaleDBは各アプリのデータベースに最初から組み込まれています。別途拡張やサービスを追加しなくても、リレーショナルなテーブルを持つのと同じPostgresで、埋め込みの保存と検索、時系列データの操作ができます。
アプリ別Postgresの料金はどう決まりますか。
保存した分だけの課金です。請求は実際の保存量に従うため、データが少ないアプリは費用も少なく、空のデータベースが満杯のように請求されることはありません。だからこそ、すべてのアプリに標準で専用のデータベースを持たせることが現実的になります。