Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

PlanetScale Postgres & MySQL

最終更新 Markdown で表示Agent セットアップ

グローバルに分散した Workers アプリケーション向けに、PlanetScale の Postgres または MySQL データベースを作成します。

Cloudflare は PlanetScale と提携し、Workers 向けに PlanetScale ホストの Postgres および MySQL(Vitess)データベースを提供しています。Hyperdrive は、組み込みのデータベースコネクションプーリングとクエリキャッシュで Workers を PlanetScale データベースに接続し、性能を高めます。

両方の製品の利点を活かし、Workers のグローバル分散向けに構築しつつ、リージョンのデータアクセスも最適化できます。Cloudflare ダッシュボードで PlanetScale データベースを作成して始められます。

Create a PlanetScale database を開く ↗

コマンドラインからデータベースを作成する

PlanetScale CLIpscale)と、リクエストの 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 json

pscale database create のデフォルトは Vitess です。Postgres データベースにする場合は --engine postgresql を渡します。エージェントが出力を使う場合は --format json を推奨します。

PlanetScale の認証情報は、利用者と pscale の間だけに留まります。Wrangler が認可するのは Cloudflare 課金側だけです。

署名は暗号署名されたトークンで、Cloudflare アカウントへの課金でデータベースを作成する権限を与えます。認証情報として扱い、共有しないでください。

pscale database create が対応するオプションは、PlanetScale のドキュメント を参照してください。

Workers + PlanetScale

Workers では、330 以上の都市にまたがる Cloudflare のグローバルネットワーク上のどこへでもアプリケーションをデプロイできます。デプロイは 1 ステップで済み、新しい拠点のユーザーも、リージョンごとのインフラを用意せずにアプリケーションへ到達できます。

Workers のコンピュートはユーザーの近くで動き、低レイテンシです。PlanetScale Postgres は、アプリケーションのコントロールプレーンや、Cloudflare のエッジ分散モデルに乗らない集中データ向けのリージョンデータベースを提供します。顧客、課金、アカウント設定などのレコードや、その他のリレーショナルデータに使います。

Hyperdrive は Workers と PlanetScale の接続を橋渡しします。データベース接続をプールし、対象となる読み取りクエリには Cloudflare の Cache を使って、データベースが集中配置でもアプリケーションを速くします。

得られるメリット

ユーザーリクエストから Workers、Hyperdrive のキャッシュ、コネクションプール、PlanetScale までのリクエストフロー
  1. ユーザーの近くで実行します。 ユーザーがリクエストを送ると、Cloudflare は近くの拠点へルーティングします。Worker はその拠点で動くため、リクエスト処理はユーザーの近くから始まります。

  2. キャッシュ済みの読み取りをローカルで確認します。 Worker リクエストを処理している同じ Cloudflare サーバー上で、Hyperdrive はデータベース接続を数ミリ秒(p90 は 4ms)で用意します。データベースクライアント / ドライバーはすぐにクエリを送れます。Hyperdrive の接続セットアップは、TCP 接続の開始、TLS 暗号化、クライアント認証を同じローカルマシン上で行い、データベースへのネットワーク往復とレイテンシをなくします。データベース接続の準備ができたあと、Worker がキャッシュ可能な読み取りクエリを送り、結果がキャッシュされていれば、Hyperdrive はその拠点から出ずに結果を返します。

  3. 必要なときだけ転送し、途中でキャッシュします。 ローカルにキャッシュ結果がない、またはクエリをキャッシュできない場合、Hyperdrive は Cloudflare のネットワーク経由で PlanetScale データベースに近い拠点へクエリを送ります。データベースに届く前に、その拠点の別キャッシュも確認します。このキャッシュはデータベースへの複数のリクエストで埋まり、ティアードキャッシュと同様にキャッシュヒット率を上げます。

  4. 必要なときだけ PlanetScale にクエリします。 どちらのキャッシュにも結果がなければ、Hyperdrive はすでに用意されているデータベース接続のプールを使い、PlanetScale へクエリを送ります。書き込みやキャッシュできないクエリは PlanetScale へ送られ、データベースが正となります。複数層のキャッシュにより、データベース全体の負荷が下がります。

アプリケーションが PlanetScale へ書き込んでも、Hyperdrive はキャッシュ済みの読み取り結果を無効化しません。認証、セッション、権限など、重要な経路で read-after-write の一貫性が必要な場合は、それらの読み取り向けにキャッシュ無効の Hyperdrive 設定を別に用意してください。手順は クエリキャッシュ を参照してください。

PlanetScale の開発体験

Postgres または MySQL

PlanetScale Postgres または MySQL を選び、使い慣れたデータベースドライバー、オブジェクトリレーショナルマッピング(ORM)ライブラリ、SQL ツールをそのまま使えます。

性能と信頼性

信頼されている 顧客ワークロード を支える性能と信頼性への取り組みのもと、PlanetScale インフラ上で本番データベースを運用できます。

モダンな開発ワークフロー

開発ブランチ でデータベース変更を試し、クエリインサイト(query insights) でクエリ性能を把握し、Model Context Protocol(MCP)サーバー でエージェントにデータベースのインサイトデータへのアクセスを与えられます。データベース管理者(DBA)は不要です。

Cloudflare 課金

Cloudflare ダッシュボードから PlanetScale データベースを作成すると、課金は Cloudflare アカウント経由です。Cloudflare の請求書に PlanetScale 利用分の明細が載ります。Cloudflare 経由でデータベースを作成・利用する場合の PlanetScale 料金は、PlanetScale から直接購入する場合と同じです。料金の詳細は PlanetScale の料金 を参照してください。データベースごとの課金使用量は、PlanetScale の ダッシュボード で確認できます。

よくある質問

PlanetScale データベースのサポートはどうなりますか?

Cloudflare 経由で作成した PlanetScale データベースのサポートは、PlanetScale の Standard レベル、または契約済みの PlanetScale サポートプランで提供されます。PlanetScale データベースのヘルプは PlanetScale Support を参照するか、PlanetScale サポートポータル から PlanetScale サポートチームへ直接連絡してください。

PlanetScale データベースの課金はどうなりますか?

従量課金の Cloudflare アカウントでは、PlanetScale データベースは作成日から削除日まで日次で課金されます。クエリの実行やデータの保存の有無にかかわらず課金されます。

はじめる

Hyperdrive 設定を作成し、Workers からデータベースへクエリします。

Hyperdrive の仕組み

Hyperdrive が接続をプールし、クエリをキャッシュする仕組みを確認できます。

役に立ちましたか?