Cloudflare R2 Storageを発表できることを、実に嬉しく思います。開発者が大量の非構造化データを格納できるようにすることで、Cloudflareでできることを拡大しつつ、代表的なクラウドプロバイダーストレージサービスに関わるエグレス帯域幅料金をゼロにします。

Cloudflare R2 StorageはS3 API完全互換性を備え、既存のツールやアズビルトのアプリケーションと連携して機能します。

R2の詳細についてみていきましょう。

R2は「Really Requestable」(真にリクエスト可能な)という意味

オブジェクトストレージはBlobストレージとも呼ばれるもので、任意の大きさの非構造化ファイルを格納します。オブジェクトストレージは、メディアファイルやログファイル、アプリケーション固有のメタデータまで、あらゆるファイルの格納に適しており、ファイル取得時の遅延が均一で耐久性が高く、容量無制限です。

オブジェクトストレージのためのAPIとAPI R2の実装で最も身近な例は、AmazonのSimple Storgae Service(S3)です。2006年にS3が開始された時、クラウドストレージサービスは開発者にとっては思わぬ幸運でした。一足飛びの変化ではなかったものの、開発者は過去15年間にわたって、クラウドストレージと無制限のストレージ空間を歓迎してきました。

クラウドストレージは画期的ではありましたが、デメリットもありました。データを取り出す時です。時間とともに、企業はクラウドプロバイダーネットワークに大量のデータを集めるようになりました。企業がクラウドからデータを取り出そうとすると、どんな顧客価値にも見合わない高額なエグレス料金が発生したのです。開発者が支払いに慣れてしまった税金のような感じです。

R2の登場

Cloudflare R2は、「Removing Ridiculous Fees」(馬鹿げた料金を撤廃する)という意味

従来のオブジェクトストレージでは、帯域幅、ストレージサイズ、ストレージ操作の3つについて料金を徴収していました。

R2はCloudflareがこれまで力を注いできたBandwidth Allianceに基づいて構築されたもので、お客様のリクエスト率に関係なく、格納されたオブジェクトのエグレスコストをゼロにします。エグレス帯域幅の料金は、オブジェクトストレージを利用している開発者にとって最も高額なコストになりがちで、予測が最も難しい料金でもあります。エグレス料金の撤廃は、クラウドに保存されたデータへのオープンアクセスにとってこの上ない吉報です。

だからといって、帯域幅の費用をどこかに転嫁しようとしているわけではありません。Cloudflare R2の利用料金はデータ格納量1GBあたり月額0.015ドルになる予定で、大手プロバイダーの現行水準よりもはるかに安い設定です。

オブジェクトへのアクセス頻度が低ければ、プロバイダーのサポートは取るに足らないものですが、同じように操作ごとの料金が課せられます。Cloudflareでは、典型的なオブジェクトストレージ料金は公正ではないと感じていました。1秒に1回リクエストする開発者と1秒に何千回もリクエストする企業(交渉でボリュームディスカウントを得ていて頻度がより高くなることが多いでしょう)が、同じ料金が課せられるからです。

裏を返せば、アクセス頻度が低いことを想定して設計しているプロバイダーは、使用料が大幅に増えるとスケーリングできないことが多いのです。

R2では、ストレージ操作の頻度が閾値より低い場合は、ゼロレートを適用します。現在の計画では、閾値は1秒ごとに1桁のリクエストになる見込みです。この範囲を超えると、R2は大手プロバイダーより遥かに低い料金を課します。Cloudflareのオブジェクトストレージは、アクセス頻度が低い場合は非常に安く、それでいてスケーリング可能で、頻繁にアクセスしても大手プロバイダーよりも低料金になります。

料金が低いからといって、スケーラビリティが劣るわけではありません。舞台裏では、R2は自動的かつインテリジェントにデータの階層化を管理しており、ピーク時の負荷にも耐えられるパフォーマンスを提供しつつ、リクエスト頻度が低いオブジェクトについては低コストを実現します。Cloudflareでは開発者が常にオブジェクトストレージに求めてきたもの、つまり「無制限のスケールを可能な限り低コストで」を実現するために、複雑で手動階層化が必要なポリシーを排除しました。

R2は「Repositioning Records」(レコードを再配置する)という意味

エグレス料金がゼロのため、オブジェクトを簡単に取り出すことができますが、オブジェクトをクラウドに載せる時はどうでしょうか?クラウドプロバイダー間のデータ移行は、両者がS3 APIを完全にサポートしていても、エラーが発生しやすく、コストも高くなります。

この作業を簡単にするため、お客様側でツールの変更を行わなくて済むように、Cloudflare R2には、他のS3互換クラウドストレージサービスからの自動移行が含まれています。極めて簡単に移行できるように設計されています。既存のストレージバケットを指定した後、R2は既存のバケットからオブジェクトのためのリクエストを処理し、オブジェクトにエグレスを適用するのは、コピーしてR2から処理を行う前の一度きりです。Cloudflareでは移行が簡単にできるため、Cloudflareダッシュボードでこの機能を有効にした瞬間からエグレス料金を減らすことができます。

R2は高額なエグレス帯域幅料金を課すプロバイダーからのデータを自動的に複製し、ターゲットバケットの設定だけで瞬時に料金を節約します。

Cloudflareでは、 R2にマルチリージョンストレージを組み込んでリクエストの多いロケーションへ自動的にオブジェクトを複製するようにしたいと考えています。Durable Objectsと同様に、Cloudflareでは、法域による制約を導入して、開発者がシンプルなAPIを通じて複雑なデータ主権の要件に準拠できるようにする予定です。

R2は「Ridiculously Reliable」(途方もなく信頼できる)という意味

オブジェクトストレージが優れているのは信頼性です。Cloudflareではデータの耐久性とレジリエンスを中核に据えてR2を設計しました。R2は、データ損失の起こりにくさを示す年間耐久性が99.999999999%(9が11個)です。仮に、R2に100万件のオブジェクトを格納した場合、10万年に一度、データを1つ損失する可能性があるということになります。これは他の大手プロバイダーと同レベルの耐久性です。R1は、地域的な障害に耐性があり、高可用性を実現するためにオブジェクトを複数回複製します。

R2は信頼性を確保するため、多地域にわたる冗長性を備えた設計になっています。Cloudflareでは自動化されたグローバルな分散からはじめ、データをローカルに格納する必要がある場合に備え、上で説明したように、地域に特化した制御の追加を予定しています。

R2は「Radically Reprogrammable」(根本的に再プログラム可能な)という意味

R2は、Cloudflare Workersのサーバレスランタイムと完全統合されています。Workerを特定のバケットに結び付けて、オブジェクトがストレージバケットに書き込まれたりバケットから読み込まれたりしている間に動的に変換することができます。WorkersとR2が深く統合することにより、データパイプラインの構築とオブジェクトの操作が驚くほど簡単になります。

Cloudflare R2は、Cloudflareの他の製品と簡単に統合するように設計されています。少し例を挙げると、当社では、R2をバックアップターゲットとしてDurable Objectsを設定できるように計画しています。さらに、R2とCloudflare Cache間で自動統合ができるようにし、更新頻度の低いオブジェクトのキャッシュ寿命を大幅に伸ばすことも計画しています。

Cloudflare R2でお客様は何を構築できるか?

特にWorkersのコンピューティングプラットフォームへのアクセスがすぐそばに配置されているため、長期ストレージに関してできることはたくさんあります。

例えば、R2のおかげで多くのIoT デバイスからデータを配信することがとても簡単になります。まずWorkersでデータを変換、操作し、R2が大量のセンサーデータを取り込み、低コストで格納できます。エグレス料金が不要のため、必要に応じて大量のデータを複数のデータベースに移行したり、分析ソリューションに移行する作業がシンプルになり、格納コストを大幅に削減できます。発信データ上でもWorkersを稼働できることから、データパイプラインの柔軟性もより高いものになっています。

R2は、CDNアセットや大きなメディアファイルにとっても最高の場所です。大きなファイルについては、R2でエグレス料金を大幅に削減しながら、キャッシュ寿命を大幅に延ばすことができます。Cache APIとWorkersと組み合わせることで、グローバルなアクセスでも少ない遅延でコンテンツを動的にキャッシュすることができます。

そして何よりも、R2にはエグレス帯域幅料金がないため、頻繁にアクセスするコンテンツの格納に適しています。現在、R2は重いリクエストロードを処理するための高い拡張性を備え、お客様のオブジェクトを動的に階層化して、最低料金で最高のパフォーマンスを提供します。この動的階層化のおかげで、ピークパフォーマンスをサポートしながら、最低価格を提供することができ、ユーザーによる設定も不要になっています。

Cloudflare R2へのアクセス

R2は現在開発中です。アクセス順番待ちリストへの登録は、こちらからサインアップできます。多くの早期ユーザーのみなさまと、製品の改良・テストに取り組めることを楽しみにしています。オープンベータ版を発表する予定ですので、まもなくユーザーはどなたでも、こちらからサービスにサインアップできるようになる予定です。

Cloudflareでは引き続き製品を構築できることを嬉しく思っており、オープンベータ版の公開に向けて尽力していきます。私たちは、Cloudflareエッジでのストレージについて壮大な未来像を描いています。分散システムエンジニアで、エッジの将来を築くことに貢献したいとお考えの方は、ぜひ一緒に働きませんか