CDNレイヤでDBのコネクションプーリングとクエリキャッシュを提供。世界中どこからのDBアクセスでも高速化する「Hyperdrive」、Cloudflareが提供

2023年10月11日

Cloudflareは、グローバルなCDNレイヤでデータベースのコネクションプーリングとクエリのキャッシュを提供することによりデータベースへのアクセスを高速化する新サービス「Hyperdrive」のオープンベータを開始したと発表しました

データベースが遠ければアプリは遅くなってしまう

Cloudflareは、CDNのエッジでアプリケーションを実行する「Cloudflare Workers」を提供しています。Cloudflare Workersはユーザーの近くにあるCDNエッジで動作することで、高速なレスポンスを可能にしています。

しかし一般的にアプリケーションのバックエンドにはMySQLやPostgreSQLといったデータベースが稼働しており、アプリケーションから頻繁にアクセスされます。

もしもこのデータベースが北米のデータセンターで稼働している場合、欧州やアジアやアフリカからアクセスするユーザーはどうなるでしょうか?

欧州やアジアやアフリカからアクセスするユーザーは、自分の近くにあるCDNエッジで稼働するCloudflare Workersにアクセスできるものの、そのCloudflare Workersは太平洋や大西洋を越えて北米にあるバックエンドデータベースにアクセスすることになります。

すると、結局は海を越えて遠い距離を何度も往復する通信が発生してしまい、その待ち時間が発生することでユーザーへのレスポンスが遅くなってしまいます。

せっかくCloudflare Workersをユーザーの近くで提供できたとしても、データベースまでの距離が遠ければそのメリットを十分に発揮できないのです。

データベースはそのままで世界中からのアクセスを高速化する

この問題を本質的に解決するには、データベースそのものも分散化し、ユーザーの近くで実行できるようにすることです。

CloudflareはそのためにCDNエッジで稼働するSQLiteベースの分散データベース「Cloudflare D1」を開発中です。

参考:Cloudflare、分散SQLiteデータベース「Cloudflare D1」のオープンベータを開始

しかし大容量のデータの保持、高性能なトランザクション処理の実現といったことを実現しようとすると、まだしばらくはMySQLやPostgreSQLといった従来のリレーショナルデータベースを選択することが合理的な判断になるでしょう。

そこで従来のデータベースを使いつつ、世界中に分散したCDNエッジからのアクセスを高速化するための技術が必要になってきます。

それを実現するために登場したのが、今回発表されたHyperdriveなのです。

CDNレイヤでコネクションプールとクエリキャッシュを提供

Hyperdriveは2つの機能を提供することで、世界中のCDNエッジからのデータベースアクセスを高速化します。

1つはデータベースへのコネクションプールをグローバルなCDNのレイヤで共有する機能です。

アプリケーションからデータベースへのクエリは、まずデータベースへのコネクションを確立する処理から始まります。

このコネクション処理は時間のかかる重い処理であることが知られているため、ミドルウェアであらかじめデータベースとのコネクションを何本も保持しておき、アプリケーションからのコネクション要求にはそのコネクションを使い回すことでコネクション処理を省略する、「コネクションプーリング」という有名なテクニックがあります。

HyperdriveはこのコネクションプーリングをグローバルなCDNレイヤで実現することで、どのCDNエッジからでも、高速にデータベースへのコネクションを確立できるわけです。

Hyperdriveが提供するもう1つの機能は、よく使われる読み取りクエリを自動的にキャッシュする機能です。

ユーザーがクエリを実行する場所の近くにクエリの結果をキャッシュすることで、レスポンスを劇的に高速化できると説明されています。

この2つの機能により、世界中のCDNエッジからのデータベースアクセスが高速化されるわけです。

ほとんどのケースで大幅に高速に

Cloudflareは実際にHyperdriveを用いて動作するデモを公開しています。下記がその結果の画面です。

濃いグレイのマーカーが、データベースへの直接接続とクエリにかかった時間を示し、オレンジのマーカーがHyperdrive経由での接続とクエリにかかった時間を示しています。

fig

Hyperdrive経由での接続の方が遅いケースもありますが、ほとんどのケースでHyperdrive経由での接続は圧倒的に高速になっており、実際に効果があることが分かります。

PostgreSQLに対応し、今後MySQLへの対応なども

Hyperdriveは現時点でPostgreSQLに対応しています。これはGoogle CloudのCloud SQL for PostgreSQLやAlloyDB for PostgreSQL、CockroachDBなどPostgreSQL互換のデータベース対応も含まれています。

今後はMySQLを含む多くのデータベースへの対応、書き込み処理のキャッシュなどさらなる高速化、プライベートネットワークへの対応などにも取り組むとしています。

Hyperdriveの正式リリースは2024年初頭の予定と発表されています。

あわせて読みたい

PostgreSQL RDB データベース Cloudflare




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本