グローバルに分散した Workers アプリケーション向けに、PlanetScale の Postgres または MySQL データベースを作成します。
Cloudflare は PlanetScale ↗ と提携し、Workers 向けに PlanetScale ホストの Postgres および MySQL(Vitess)データベースを提供しています。Hyperdrive は、組み込みのデータベースコネクションプーリングとクエリキャッシュで Workers を PlanetScale データベースに接続し、性能を高めます。
両方の製品の利点を活かし、Workers のグローバル分散向けに構築しつつ、リージョンのデータアクセスも最適化できます。Cloudflare ダッシュボードで PlanetScale データベースを作成して始められます。
Create a PlanetScale database を開く ↗PlanetScale CLI ↗(pscale)と、リクエストの Cloudflare 課金側を認可する Wrangler を使い、コマンドラインから Cloudflare 課金の PlanetScale データベースを作成することもできます。pscale は v0.313.0 以降が必要です。
課金の認可を生成します。
npx wrangler hyperdrive planetscale signature次のような JSON ペイロードが出力されます。
{
"account_id": "<ACCOUNT_ID>",
"timestamp": "<TIMESTAMP>",
"signature": "<SIGNATURE>"
}pscale database create は、--cloudflare-billing フラグでこのペイロードを受け取ります。@- を渡すと、PlanetScale CLI は標準入力から読み取ります。署名をコマンドライン引数として渡すより、この方法を推奨します。
npx wrangler hyperdrive planetscale signature | \
pscale database create <DATABASE_NAME> \
--org <PLANETSCALE_ORG> \
--engine postgresql \
--cloudflare-billing @- \
--format jsonpscale database create のデフォルトは Vitess です。Postgres データベースにする場合は --engine postgresql を渡します。エージェントが出力を使う場合は --format json を推奨します。
PlanetScale の認証情報は、利用者と pscale の間だけに留まります。Wrangler が認可するのは Cloudflare 課金側だけです。
署名は暗号署名されたトークンで、Cloudflare アカウントへの課金でデータベースを作成する権限を与えます。認証情報として扱い、共有しないでください。
pscale database create が対応するオプションは、PlanetScale のドキュメント ↗ を参照してください。
Workers では、330 以上の都市にまたがる Cloudflare のグローバルネットワーク上のどこへでもアプリケーションをデプロイできます。デプロイは 1 ステップで済み、新しい拠点のユーザーも、リージョンごとのインフラを用意せずにアプリケーションへ到達できます。
Workers のコンピュートはユーザーの近くで動き、低レイテンシです。PlanetScale Postgres は、アプリケーションのコントロールプレーンや、Cloudflare のエッジ分散モデルに乗らない集中データ向けのリージョンデータベースを提供します。顧客、課金、アカウント設定などのレコードや、その他のリレーショナルデータに使います。
Hyperdrive は Workers と PlanetScale の接続を橋渡しします。データベース接続をプールし、対象となる読み取りクエリには Cloudflare の Cache を使って、データベースが集中配置でもアプリケーションを速くします。
-
ユーザーの近くで実行します。 ユーザーがリクエストを送ると、Cloudflare は近くの拠点へルーティングします。Worker はその拠点で動くため、リクエスト処理はユーザーの近くから始まります。
-
キャッシュ済みの読み取りをローカルで確認します。 Worker リクエストを処理している同じ Cloudflare サーバー上で、Hyperdrive はデータベース接続を数ミリ秒(p90 は 4ms)で用意します。データベースクライアント / ドライバーはすぐにクエリを送れます。Hyperdrive の接続セットアップは、TCP ↗ 接続の開始、TLS ↗ 暗号化、クライアント認証を同じローカルマシン上で行い、データベースへのネットワーク往復とレイテンシをなくします。データベース接続の準備ができたあと、Worker がキャッシュ可能な読み取りクエリを送り、結果がキャッシュされていれば、Hyperdrive はその拠点から出ずに結果を返します。
-
必要なときだけ転送し、途中でキャッシュします。 ローカルにキャッシュ結果がない、またはクエリをキャッシュできない場合、Hyperdrive は Cloudflare のネットワーク経由で PlanetScale データベースに近い拠点へクエリを送ります。データベースに届く前に、その拠点の別キャッシュも確認します。このキャッシュはデータベースへの複数のリクエストで埋まり、ティアードキャッシュと同様にキャッシュヒット率を上げます。
-
必要なときだけ PlanetScale にクエリします。 どちらのキャッシュにも結果がなければ、Hyperdrive はすでに用意されているデータベース接続のプールを使い、PlanetScale へクエリを送ります。書き込みやキャッシュできないクエリは PlanetScale へ送られ、データベースが正となります。複数層のキャッシュにより、データベース全体の負荷が下がります。
アプリケーションが PlanetScale へ書き込んでも、Hyperdrive はキャッシュ済みの読み取り結果を無効化しません。認証、セッション、権限など、重要な経路で read-after-write の一貫性が必要な場合は、それらの読み取り向けにキャッシュ無効の Hyperdrive 設定を別に用意してください。手順は クエリキャッシュ を参照してください。
PlanetScale Postgres または MySQL を選び、使い慣れたデータベースドライバー、オブジェクトリレーショナルマッピング(ORM)ライブラリ、SQL ツールをそのまま使えます。
信頼されている 顧客ワークロード ↗ を支える性能と信頼性への取り組みのもと、PlanetScale インフラ上で本番データベースを運用できます。
開発ブランチ ↗ でデータベース変更を試し、クエリインサイト(query insights) ↗ でクエリ性能を把握し、Model Context Protocol(MCP)サーバー ↗ でエージェントにデータベースのインサイトデータへのアクセスを与えられます。データベース管理者(DBA)は不要です。
Cloudflare ダッシュボードから PlanetScale データベースを作成すると、課金は Cloudflare アカウント経由です。Cloudflare の請求書に PlanetScale 利用分の明細が載ります。Cloudflare 経由でデータベースを作成・利用する場合の PlanetScale 料金は、PlanetScale から直接購入する場合と同じです。料金の詳細は PlanetScale の料金 ↗ を参照してください。データベースごとの課金使用量は、PlanetScale の ダッシュボード ↗ で確認できます。
PlanetScale データベースのサポートはどうなりますか?
Cloudflare 経由で作成した PlanetScale データベースのサポートは、PlanetScale の Standard レベル、または契約済みの PlanetScale サポートプランで提供されます。PlanetScale データベースのヘルプは PlanetScale Support ↗ を参照するか、PlanetScale サポートポータル ↗ から PlanetScale サポートチームへ直接連絡してください。
PlanetScale データベースの課金はどうなりますか?
従量課金の Cloudflare アカウントでは、PlanetScale データベースは作成日から削除日まで日次で課金されます。クエリの実行やデータの保存の有無にかかわらず課金されます。
Postgres に接続する
Hyperdrive を PlanetScale の Postgres データベースに接続します。
MySQL に接続する
Hyperdrive を PlanetScale の MySQL データベースに接続します。
はじめる
Hyperdrive 設定を作成し、Workers からデータベースへクエリします。
Hyperdrive の仕組み
Hyperdrive が接続をプールし、クエリをキャッシュする仕組みを確認できます。