UStackUStack
Bunny Database favicon

Bunny Database

Bunny Database は SQLite と互換性のあるグローバル分散型 SQL サービスで、bunny.net の高速エッジネットワーク上で動作し、アイドル時には自動でスピンダウンする低レイテンシかつ従量課金制のデータベースを提供します。

Bunny Database

Bunny Databaseとは?

Bunny Database とは?

Bunny Database は、bunny.net の高速でグローバルなネットワーク上で「そのまま動く」ように設計された、完全マネージド型・SQLite 互換の SQL サービスです。ユーザーの近くにデータベースを簡単に作成・稼働できるため、アプリケーションが成長しても、アーキテクチャを大きく作り直すことなく低レイテンシを維持できます。

シンプルな DBaaS(Database-as-a-Service)として設計された Bunny Database は、なじみのある SQLite とクラウドサービスの便利さを組み合わせています。データベースはアイドル状態になると自動でスピンダウンし、ストレージと実際に発生した読み取り・書き込みに対してのみ料金が発生します。まずは 1 つのリージョンからスタートし、その後、ユーザー分布に合わせて世界中にリージョンを追加し、読み取りトラフィックをユーザーに近い場所で処理できます。

bunny.net のコンテンツ配信プラットフォームを支えるものと同じインフラ上で動作する Bunny Database は、カタログ、メタデータ、ユーザープロファイル、設定データなど、読み取りが多いワークロードを高速かつ信頼性の高い、コスト効率の良いかたちで扱いたい開発者に最適です。

主な特長

  • SQLite 互換のデータベースエンジン
    なじみのある SQL をそのまま活用できます。Bunny Database は SQLite のセマンティクスに基づいており、学習コストが低く、専用のクエリ言語を覚える必要はありません。

  • グローバルで低レイテンシなネットワーク
    bunny.net のグローバルインフラにデプロイされ、最大 41 リージョンからトラフィックを配信可能です。世界中のユーザーに対する往復遅延を大きく削減できます。

  • 1 リージョンから始めて、必要に応じて拡張
    まずは 1 つのリージョンにデータベースを立ち上げ、ユーザー数の増加に合わせて別のリージョンに拡張できます。アプリケーションを作り直すことなく、新しいロケーションに読み取りレプリカを追加可能です。

  • アイドル時の自動スピンダウン
    データベースがアイドル状態のときは、ストレージ料金のみが発生します。トラフィックに変動やバーストがあるワークロードでも、非常に高いコスト効率を実現します。

  • 従量課金型の料金体系
    読み取り・書き込み・ストレージ量に基づいたわかりやすい課金:

    • 読み取り(Reads): 10 億行あたり 0.30 ドル
    • 書き込み(Writes): 100 万行あたり 0.30 ドル
    • ストレージ(Storage): アクティブなリージョンごとに、1 GB あたり月額 0.10 ドル
      プライマリリージョン 1 つは常時課金され、読み取りレプリカはトラフィックを処理している時間帯のみ、時間単位で追加のストレージ料金が発生します。
  • 公式 SDK を複数用意
    TypeScript/JavaScript、Go、Rust 向けの公式 libSQL SDK や、bunny.net 独自の .NET SDK から簡単に統合できます。また、HTTP 経由でデータベースにアクセスし、カスタム統合を行うことも可能です。

  • シンプルな DBaaS コントロールパネル
    直感的なダッシュボードから、データベースの作成、アプリとの接続、データの確認、パフォーマンスのモニタリングを数クリックで行えます。

  • ビルトインのデータ検査ツール
    UI から直接テーブルを参照し、SQL クエリを実行して、データの整合性や状態を手早く確認できます。外部クライアントは必須ではありません。

  • パフォーマンス指標とモニタリング
    データベースのスケールに合わせて、レイテンシ・トラフィック・ストレージ利用量を可視化でき、パフォーマンスとコストの最適化に役立ちます。

  • スムーズなオンボーディング & 無料トライアル
    クレジットカード不要で 14 日間の無料トライアル を開始でき、セットアップはおよそ 2 分で完了します。パブリックプレビュー期間中は Bunny Database を無料で利用できます。

  • 他の bunny.net ツールとのシームレスな連携
    Bunny Database を Edge Scripting(エッジで TypeScript/JavaScript を実行)や Magic Containers(常時稼働のコンテナワークロード用)と組み合わせることで、1 つのプラットフォーム上でフルスタックのグローバル分散アプリケーションを構築できます。

Bunny Database の使い方

  1. サインアップして無料トライアルを開始
    bunny.net アカウントを作成またはログインし、Bunny Database セクションへ移動します。クレジットカード不要で 14 日間の無料トライアルを開始します。

  2. 最初のデータベースを作成

    • ダッシュボードで Bunny Database セクションを開きます。
    • 新しいデータベースの作成ボタンをクリックします。
    • データベース名を設定します。
    • 初期プライマリリージョンを選択します(後からリージョンを追加可能)。
    • デプロイを確認すると、ワンクリックでデータベースがプロビジョニングされます。
  3. アクセス用トークンを生成

    • データベース設定画面で、アプリケーション向けの アクセストークン(access tokens) を作成します。
    • これらのトークンをアプリやスクリプトの環境変数として設定します。
    • 開発・ステージング・本番など、環境ごとに別々のトークンを発行できます。
  4. SDK または HTTP で接続

    • 公式 SDK(TS/JS, Go, Rust, .NET)のいずれかをインストールするか、HTTP 経由でカスタム統合を構成します。
    • ダッシュボードに表示される接続文字列とアクセストークンを使用します。
    • アプリケーションコード内でクライアントを初期化し、SQL クエリの実行を開始します。
  5. スキーマ設計とデータ移行

    • 標準 SQL(CREATE TABLE、ALTER TABLE など)を用いてスキーマを定義します。
    • 商品カタログ、ユーザープロファイル、設定情報などの初期データを投入します。
    • SQL はダッシュボード上から直接実行することも、アプリケーション経由で実行することもできます。
  6. UI 上でデータを検査・デバッグ

    • ダッシュボードの data inspection エリアに移動します。
    • テーブルを参照し、アドホッククエリを実行し、アプリが期待どおりにデータを読み書きしているか確認します。
  7. スケールに合わせてリージョンを追加

    • 新たな地域でユーザーが増えてきたら、その地域向けに読み取りレプリカ用のリージョンを追加します。
    • アプリケーションまたは SDK の設定で、近くの読み取りリージョンを利用するよう構成し、レイテンシをさらに下げます。
  8. パフォーマンスと利用状況を監視

    • メトリクスダッシュボードで レイテンシ・トラフィック・ストレージ を監視します。
    • リージョン構成、クエリパターン、データモデルを調整し、パフォーマンスとコストのバランスを最適化します。

ユースケース

1. プロダクトカタログやディレクトリ

Bunny Database は、読み取り中心の 商品カタログ、ロケーションディレクトリ、コンテンツインデックス を支える用途に理想的です。商品詳細、店舗所在地、記事メタデータといった構造化データを保存し、ユーザーに近いリージョンから読み取りトラフィックを処理することで、グローバルなユーザーにも高速なブラウジング体験を提供できます。

2. メタデータ・フィルタリングレイヤー

タグ・カテゴリー・ラベル・ルックアップデータ に大きく依存するアプリケーションに対して、Bunny Database は高速で一貫性のあるメタデータレイヤーを提供します。API やフロントエンドが利用するフィルタ条件・カテゴリー・関連情報などを保存しておき、結果を素早く絞り込むことができます。従量課金とアイドル時のスピンダウンにより、メタデータ中心のワークロードでもコストを抑えやすくなります。

3. ユーザープロファイルとプリファレンス

Bunny Database を利用して、ユーザープロファイル、プリファレンス(設定)、軽量なアカウント情報 を保存できます。複数リージョンと低レイテンシなアクセスにより、ユーザーの所在地に関係なく、プロフィールの読み書きを高速に行えます。これは、ユーザー情報への高速アクセスが求められる SaaS、コミュニティプラットフォーム、コンシューマ向け Web サービスに特によく適しています。

4. アプリケーション設定とフィーチャーフラグ

Bunny Database に マルチテナント設定、環境ごとのパラメータ、フィーチャーフラグ(feature flags) を集中的に保存できます。グローバルに分散したデータベースに設定を一元管理することで、アプリケーションやサービスは近くのリージョンから設定を素早く読み取り、起動時間および実行時レイテンシを抑えられます。

5. bunny.net と組み合わせたエッジ駆動アプリケーション

Bunny Database を Edge ScriptingMagic Containers と組み合わせることで、完全なエッジネイティブアプリケーションを構築できます。たとえば:

  • Edge Scripting を使って、エッジで TypeScript/JavaScript ロジックを実行する。
  • Bunny Database に設定・ユーザーコンテキスト・キャッシュ済み集計結果などを保存する。
  • Magic Containers を長時間稼働や特殊用途のワークロードに利用する。
    このスタックを用いれば、インフラを自前で管理することなく、低レイテンシでグローバルに分散したアプリケーションを構築できます。

FAQ

Bunny Database は SQLite と互換性がありますか?

はい。Bunny Database は SQLite をベース にしており、SQLite 互換を意識して設計されています。そのため、慣れ親しんだ SQL 文法やパターンをそのまま利用できます。公式 SDK は libSQL の上に構築されており、ローカルの SQLite データベースを扱うのと同様の感覚で操作できますが、マネージドなクラウドサービスとして提供されます。

Bunny Database の料金体系は?

Bunny Database は、実際の利用量に応じた 従量課金モデル を採用しています:

  • 読み取り(Reads): 10 億行あたり 0.30 ドル
  • 書き込み(Writes): 100 万行あたり 0.30 ドル
  • ストレージ(Storage): アクティブリージョン 1 つにつき、1 GB あたり月額 0.10 ドル
    データベースがアイドル状態のときは、ストレージ料金のみが発生します。1 つのプライマリリージョンは継続的に課金され、読み取りレプリカはトラフィックを処理している時間に限って、時間単位で追加ストレージ料金がかかります。パブリックプレビュー期間中は Bunny Database を無料で利用できます。

利用可能なリージョンはどこですか?

Bunny Database のデプロイを作成・拡張する際、世界中の 最大 41 リージョン から選択できます。まずは 1 つのプライマリリージョンから始め、その後ユーザーの所在地に合わせてリージョンを追加し、各地域のユーザーに対するレイテンシを抑えられます。

アプリケーションから Bunny Database に接続するには?

以下の方法で接続できます:

  • 公式 SDK または HTTP を利用
  • TypeScript/JavaScript、Go、Rust 向け libSQL SDK、もしくは bunny.net の .NET SDK を使用する。
  • bunny.net ダッシュボードに表示されるデータベースエンドポイントとアクセストークンを用いて接続設定を行う。
  • カスタム環境やツールの場合は、提供されている API を使って HTTP 経由で連携することも可能です。

Bunny Database が最も適しているワークロードは?

Bunny Database は、特に構造化データを扱う 読み取り中心のワークロード に最適化されています。代表的なユースケースとしては:

  • プロダクトカタログやコンテンツディレクトリ
  • メタデータレイヤーとフィルタリングレイヤー
  • ユーザープロファイルとプリファレンス
  • アプリケーション設定とフラグ 一方で、書き込みが極めて多いトランザクション処理や、非常に複雑なリレーショナルモデルが必要なワークロードについては、Bunny Database のアーキテクチャやグローバル分散モデルが要件に適合するか、別途検討することをおすすめします。

Bunny Database は他の bunny.net プロダクトと連携できますか?

はい。Bunny Database は他の bunny.net ツールと同じプラットフォーム上で動作しており、次のようなサービスと組み合わせて利用できます:

  • Edge Scripting:ユーザーに近いエッジロケーションで TypeScript/JavaScript ロジックを実行。
  • Magic Containers:常時稼働するコンテナ化ワークロードをホスト。
    これらを組み合わせることで、グローバル規模のパフォーマンスを持ち、開発者体験も統一された、完全分散型アプリケーションを構築できます。
Bunny Database | UStack