検索
ニュース

Cloudflare、エッジ環境で分散データベースを構築可能な「D1」のオープンβ版を公開ロールバックにも対応 行ベースの料金体系

Cloudflareは、ネイティブサーバレスデータベース「D1」のオープンβ版を公開した。

Share
Tweet
LINE
Hatena

 Cloudflareは2023年9月28日(米国時間)、スケールに焦点を当てたネイティブサーバレスデータベース「D1」のオープンβ版を公開した。

D1はどのようなデータベースなのか

 D1は2022年11月にα版がリリースされたサーバレスデータベースだ。Cloudflareが提供している分散型キーバリューストア「Cloudflare Workers KV」やCloudflare Workersの性能を拡張する「Durable Objects」、Cloudflareのオブジェクトストレージである「Cloudflare R2 Storage」を補完する、クエリ可能なデータベースだ。

 Cloudflareは、以下の目標の元で、D1を開発してきた。

  • 高速であること
  • データベースの作成が簡単であること
  • SQLベースであること

 開発者は既存のクエリビルディングやO/Rマッピング(ORM)、その他のツールを用いて簡単にD1に接続できる。TypeScript向けORM「Drizzle ORM」やSQLビルダー「Kysely」、フルスタックツールキットの「T4 App」に至るまで、複数のプロジェクトがD1に対応している。

 Cloudflareは「既存のデータベースや何千行ものSQL、あるいは既存のORMコードを使用しているチームが、D1に移行するのは難しい。こうしたチームのために『Cloudflare Hyperdrive』を構築し、既存のデータベースへの接続を可能にした。D1とWorkersを組み合わせてグローバルに分散されたエッジアプリを構築したり、データベースのクエリにHyperdriveを使用したりして、柔軟な対応が可能になった」と述べている。

大規模なデータベースをより多く構築可能 ロールバックにも対応

 Cloudflareは、D1のα版で受けた利用者からの要望に応える形で、構築できるデータベースサイズを最大2GBまで拡張した。これにより、5万個のデータベースを作成できるようになった(従来は最大500MB、データベースは10個まで)。

 D1では、データーベースを過去30日間の任意の時点にロールバックできるTime Travel機能が利用できる。Time Travelは2023年初めに発表され、7月には全てのD1ユーザーが利用できるようになった。

 Cloudflareはeコマースストアのデータベースを例に、Time Travelの特徴を次のように説明した。

 「全ての注文を保存するOrderテーブルを持つデータベースがある。データベースのOrderテーブルには、合計で8万9185件のユニークな(重複のない)住所情報が含まれている。住所変更や運送会社変更など、特定の項目を変更しようとして失敗することはよくある。もし誤って特定の注文IDを更新する代わりに、テーブル内の全ての注文のShipAddressを更新してしまった場合も、D1のTime Travel機能を活用することで、数分前の状態に修正できる」

D1の価格設定はバイト単位から行ベースに

 Cloudflareは2023年8月に、D1の料金体系をバイト単位から行ベースのモデルに変更しており、より簡単に使用料を予測、定量化できるようになった。「読み取りクエリでフィルター処理にインデックス付き列を使用する場合、パフォーマンス上の利点だけでなく、コスト削減効果もある」とCloudflareは述べている。

D1の料金体系(提供:Cloudflare)
D1の料金体系(提供:Cloudflare)

 Cloudflareによると、請求対象となるのはD1でのクエリ実行、読み取り、書き込み、保存のみで、データベースの数やTime Travelに対して料金を請求されることはないという。あるクエリにかかっているコストや、インデックスを使用してクエリを最適化するタイミングを簡単に確認できるように、データベースクエリが読み込んだ行数、書き込んだ行数、またはその両方に関する情報も提供するとした。

 Cloudflareは、2024年第1四半期までに、D1を一般提供(GA)する予定だ。2023年度内は、グローバルリードレプリケーションの対応やTime Travel機能の拡張、作成可能なデータベース量の改善に取り組んでいくとしている。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る