CloudflareのR2ストレージ

2022.01.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

昨年(21年度)、セキュリティやCDNサービスで有名なCloudflare社からいくつかの新しいサービスの発表がありました。この発表はIT業界だけではなくCloudflare社の株価まで急激に成長させる影響を与える、熱い内容でした特にその中でAWSのS3のようなR2というストレージサービスが注目されました。まだ開発中のサービスですので軽く意識しただけでもいいと思います。

R2の意味

R2はその名前から面白いですね。S3と比較して、アルファベット順に並べるとRはSの前に、数字としても2は3の前です。自らS3より良いサービスと言ってますが、ただS3より前にあるという意味ではないです。(次のObjectStorageはQ1, P0ですよね) CloudflareのCEOはR2の理由について、R2はS3の一番悪い問題点を抜いた(It's S3 minus the one most annoying thing)物だからだと言いました。

勿論S3のSimple Storage ServiceのようにR2は2つのRで始まる単語を持っています。それはRapid and Reliableです。速いスピードと信頼性を特徴としたストレージサービスということを分かります。これだけではなくいくつかの「RとR」があります。

  • Really Requestable」: データ転送に関する帯域幅費用、ストレージの管理などを低い料金で提供
  • Repositioning Records」: 簡単にS3からのマイグレーションが可能、どんなデータも保存
  • Ridiculously Reliable」: 可用性、耐久性などの高い信頼性
  • Radically Reprogrammable」: Cloudflareの他のサービスとの簡単な連携

では、様々な意味を持っているR2のどのような特徴があるのかみて行きます。

R2ストレージは?

低レイテンシ・高スループット

R2が速いストレージということはR2の意味の一つの「Rapid」を見て気づけます。何が速い?と疑問になるわけですが、R2はエッジネットワークで構築されたオブジェクトストレージで、CDNレベルの転送速度とCloudflare Workerを活用した高いスループットを期待できます。

CloudflareはCDNサービスですごく強みがある会社です。100個以上の国家・250個以上の都市にCloudflareのネットワークが設置されています。全世界のインタネット使用者95%に50ms以内の応答速度を提供し、私が住んでいる韓国のソウルの場合、Cloudflareサーバはクエリを処理に5msしかかからないほど速いです。R2はこのようなCloudflareのエッジネットワークで低レイテンシのサービスの提供が可能です。そしてR2はグローバルコピーを支援して様々な作業のレイテンシを下げます。リクエストが多いローケーションにオブジェクトは自動でコピーされ、その地域で行われる読み書き作業のレイテンシを下げることができます。

そして、Cloudflareのネットワークの上で使えるサーバレースプラットフォームのCloudflare WorkersのDurable Objectsを活用することも可能です。Durable Objectsがどんなサービスなのか難しいですが、簡単に説明するとWorkersプラットフォームに低レイテンシ調整と一貫性のあるストレージを提供できるようにする機能です。(Durable Objectsについて)これを利用することでR2の使用者は高スループットのストレージサービスを使えるようになります。

R2はストレージの階層化も自動管理します。最大負荷で高い性能を、リクエストが少ないオブジェクトは低費用に自動管理して顧客は複雑な手動ストレージ階層化を気にせず可能な限り低費用で無限拡張ができます。

Cloudflareのネットワークの強みをよく活かしたR2のことは十分「Rapid」ストレージと言えますですね。

S3との完璧な互換(Repositioning Records)

R2はS3 APIと完全互換性を備えているので、S3 -> R2へのマイグレーションも問題ないです。自動マイグレーションも支援するのでデータ移行の理由でS3に抜けないことを怖がらなくても大丈夫です。R2でデータを読むのはS3での経験と等しいし強力な一貫性を使用できます。

Cloudflareの他のサービスとの連携(Radically Reprogrammable)

R2をただデータを保存する場で使うだけではなくCloudflareの他のサービスと連携することも可能です。R2はCloudflare Workersのサーバーレスランタイムと完璧に通合されます。WorkersはAWS LambdaのようにサーバーレスJavascriptを起動できるものでWorkersを特定のバケットにバインディングしてストレージバケットに書いたり読んだりする際オブジェクトを動的に変換できます。(Workersについて)

例えばIoT装置から出てくる大量のデータをWorkersで変換・操作作業を行い、R2で収集・保存する形でデータのストリーミングが簡単になります。他にはR2をバックアップ先で耐久性があるオブジェクトを構成したりCloudflareのキャッシュとの通合でキャッシュ期限を長くしたりすることも可能です。

高い信頼性(Ridiculously Reliable)

R2は可用性、耐久性を重点的に設計されました。99.9999999999%(11個の9)の耐久性を備えていて、可用性のため多数のローケーションでデータを保存します。S3も99.9999999999%(11個の9)の耐久性とクロスリージョンレプリケーションで可用性を保証していることと比較するとR2はS3レベルの可用性と耐久性を備えていると見えますがまだ確認が必要な部分もあります(下で続く)。

データ転送料金の撤廃(Really Requestable)

この部分はほとんどコストの話になるかもしれないです。R2が注目された最大の理由が「安いコスト」だからです。見出しに出ている通り、「安いコスト」として話したい項目はストレージ費用ではありません。

元々S3のストレージ費用はそんなに高くはないです。東京リージョン基準、一番高いStandardストレージのコストは1GBあたり0.025ドルでR2の0.015ドルより0.01ドル高いですが、S3のストレージコストはクラス・ボリュームによって異なるので状況によってS3の方がもっと安いかもしれません。そしてまだコストに関する具体的な案内もないのでストレージだけでコストの比較はできません。

上のR2の意味のところにも出ましたが、R2の意味はS3の一番悪い問題点を抜いた(It's S3 minus the one most annoying thing)物です。ここの「問題点」は何なのか疑問になるわけですが、CloudflareはR2の発表以前、ブログを通じてその問題点を話したことがあります。S3のデータ転送料金問題に関するブログを投稿し、AWSの高い帯域幅の利用料についてコメントしています。

データ転送」とは内部から外部へ出るトラフィックのことで、トラフィックがAWSの内部から外部のネットワークに出る際に費用がかかります。例えば、S3にあるイメージファイルが外部のユーザからリクエストされたらそのイメージをユーザに送信するために使用した帯域幅分の費用を支払わなければなりません。

東京リージョンのS3 -> Internetのデータ送信費用はGBあたり0.114ドル(約13円)で、1MBのイメージを1万回ダウンロードしても10GB/1.14ドル(約130円)で安くない?と思われるかもしれないですが、アクセスが増加したら?それが動画だったら?それは無視できない存在になるはずですね。

しかし、R2は無料です。

これがR2が注目された理由です。そしてCloudflareはオブジェクトごと1秒あたり一桁のリクエスト、つまり1秒あたり10回未満のリクエストに対しては課金されないと言いました。お金のことは考えずに自由にリクエストできる、それが「Really Requestable」の意味かもしれないですね。

考慮すべきこと

確かに安いコストはとても魅力的ですが、いくつかの考えるべきことがあります。

まず、信頼性です。ここの信頼性は上で話した11個の9のことではないです。サービス自体の信頼性を意味します。代表的なストレージサービスのS3は2006リリースされ約16年間多くの多くの多くのユーザから検証されたサービスで、100,000,000,000,000(100兆)個が超えるオブジェクトが保存されているほどその信頼性を認められたサービスです。まだ正式リリースされてないR2をコストのことだけ見てS3からの移行を決めるのは危ないかもしれません。オブジェクトストレージはS3以外にも競争者としてはGCPのCloud StorageやAzureのBlob Storageなどがあり、コストの場合も制限的がデータ転送料が無料で安すぎストレージコストのwasabi、Backblaze B2などのサービスがもう存在していますが、それにもかかわらず多くの人たちがS3を利用する理由がただ昔から使っているからだけではないはずですね。勿論Cloudflareは世界的に認められる会社ですが、今までS3で保存したレガシーデータをR2へ移行するためには具体的な情報が発表された後真剣の確認が必要だと思います。

他のAWSサービスとの連携も考えなければいけないです。様々AWSサービスはS3と連携できるし自分の環境によってサービス間の連結性を考慮すべきです。多数のAWSサービスは生データやログのデータ保存・データレーク・分析などのためS3を一緒に利用しています。例えばAWS CloudTrailのログをS3に保存、Amazon Athenaでログ分析をしたり、S3 - Glue - Sagemakreのデータレイク-ETL-MLの環境を構築する場合のように他のAWSサービスとの連結性が強い場合はS3以外に他のストレージを使うのは大変かもしれないです。R2がS3との完璧な互換ができると発表されたにも関わらずが本当に大丈夫なのか疑問になるのは当たり前なことかもしれません。

そしてS3も様々なコスト削減が可能です。去年の12月、AWSはS3の3つのストレージクラスに関して単価引き下げを発表したことがあります。たとえデータ転送に対する引き下げではないですがAWSがS3の単価のことを意識していると思われますね。価格引き下げだけではなく50TB以上のデータ転送に対してはAWSから割引をもらえるしそれ以外にも様々な割引プランがあります。軽く使いたい場合は「Free Tier」でどのぐらいは無料でAWSのサービスが利用できる方法もあるので「必ずS3は高い」ということはないです。最も問題として指摘されているデータ転送料もR2が正式リリースされる時引き下げされるかもしれないですね。

現在発表されたことが本番では機能変更などがあるかもしれないですし、まだ具体的な情報がないので色々気になることに関しては今後R2がリリースされる時まで待つしかないと思います。

安いコスト、どうやって実現させた?

機能として良いところも多かったんですが、確かに最も魅力的に感じられることは安いコストですね。どうしてこのようなコストの実現が可能なのでしょうか。その理由は Cloudflareが持っているインフラにあります。

CloudflareのCEOは、大規模Cloudプロバイダーの多数の顧客の前に位置しているネットワークのおかげで顧客がCloudプロバイダーをどのように使用しているのか研究でき、その結果Object Storeを構築することになったと言いました。そして普通のCloudプロバイダーは様々中間業者に費用を支払わなければいけないが、CloudflareはCloudflareだけのネットワークで安いコストでサービス提供ができると言いました。

上でCloudflareのグローバルネットワークについて紹介した通り、Cloudflareは自分だけのネットワークインフラを十分活用・拡張し続けています。Cloudflareは最初セキュリティ会社で始めた時、セキュリティアプリケーションには非常のコンピュティングパワーが必要だといくことを気付いてコンピュティングソルーションやネットワークを備えました。そして現在はバックボンネットワークを構築してもっと広くもっと速くもっと安定的なグローバルネットワークを実装しています。

その結果、Cloudflareのサーバは250個以上の都市にあり世界95%のインターネット使用者と50msだけ離れていてネットワークキャパシティーは100Tbps(1秒あたり100TBのデータを転送)にも上ります。そしてこのインフラを利用するユーザにBandwidth Allianceを通じて帯域幅のコスト節減を提供し、Cloudflareのインフラを利用する顧客に帯域幅などのインフラ利用料を着せないことで全体コストを下げることができました。

補足: R2で達成したいCloudflareの目標

色々情報を探しながらCloudflareのコスト政策は本当に大丈夫なのか疑問になりました。R2以外にも多様なクラウドサービスを提供しいるがこれらを安いコストで販売しても利益になれるのかは気になりました。これは私以外にも多くの方々が持っている考えかもしれないです。ところが、その部分についてはCloudflareも対策を持っているし問題だと思われないそうです。むしろCloudflareはビジネス的にもIT全般の発展にも遠いところまで見ていました。

4番目のCloudになりたい

CloudflareのCEOは、インフラチームは必要とするインフラを構築することに上手だし需要に応じて資本的支出の投資できると話しました。そして収益に対してR2はその「資本的支出」を変更させないと思うが、R2が成功したら資本的支出が上がりそれは結局全体的な収益になると言いました。色々経済的な話で難しいですが、つまりR2ための支出は多くないしR2の成功で来る影響がもっと大きいという話でした。そして、Workersというサーバーレスコンピュティングサービスを提供しており低費用ストレージサービスを追加することでより多くの開発者・会社がCloudflareのサービスでアプリケーションを構築することをると考えたそうです。

実際にCloudflareの売り上げ・大型顧客数・再利用率は右上がりグラフを描いています。全世界インターネットの18%がCloudflareのCDN・DNSサービスを利用しており、DDoS・Bot Protectionなどのセキュリティー分野では81.4%の率持っているのでCloudへの挑戦が成功するとAWS(33%)・Azure(20%)・GCP(10%)次のCloudインフラ会社になるかもしれないです。(しかしAlibaba(6%)・IBM(4%)などの競争者もじっとしているのではなさそうでしょう)

IT全般の革新加速化

続いてCEOはCloudflareは企業・開発者が現在困っている問題を解決することを目指しているそうでした。例えばアクセスが増えるBlack Firdayに1秒あたり10万件以上のトラフィックを処理できるスケールを簡単に拡張できることです。R2のように他の新サービスを追加し続けて豊かなプラットフォームを作るとこを助かる予定だそうです。

そして、R2のようなCloudプラットフォーム競争で勝つ者は結局ユーザです。良質のサービスを安く使えて多くのことが可能でなるからです。Cloudflareは他の企業さんが費用引き下げに参加するとこは嬉しいことで、もし明日からAWSがデータ転送手数料を0にすると全ての顧客のために喜びのダンスを踊るそうでした。そしてそれは我々にCloudの極的な機会が何なのか分かることを手伝ってくれると考えていました。Amazonが提供する最高・Googleが提供する最高・MSが提供する最高・Cloudflareが提供する最高を使える機会を提供できること自体が素晴らしいことで、革新を強要する環境になり最後の勝者は顧客だとの予想でした。

確かに「費用」は大きい壁で、この壁を気にせず多様なことに挑戦できたら新しい革新があちこちで出るかもしれないです。

最後に

まだは分からないところも沢山残っていると思いますが、このように革新的なサービスが出るのは楽しいと思います。本番ではコストの革新以外に何があるのか期待ができますね。最初、R2について紹介する軽い気持ちで始めましたが色々面白いことが多くて長くなってしまいました。もうリリースされるR2以外にもCloudflareが発表する他のサービスに関して期待してもいいと思います。

参考

Cloudflare R2ストレージの発表

Cloudflareのグローバルネットワークについて

CEOとのインタビュー