本文へ
ハクソク

世界を動かす技術を、日本語で。

Cloudflare K2: サーバーレスイベントストリーム

元記事: 原文(blog.cloudflare.com)

概要

  • Cloudflare K2は、プロデューサーとコンシューマーのスケーリングやタイミングの課題を解決する 耐久性イベントストリーミングサービス
  • R2オブジェクトストレージ上に構築され、 大規模データ処理・長期保存 ・スケーラビリティを実現
  • サーバーレス設計 で、独立した複数のコンシューマーが自分のペースでデータ取得可能
  • キューやパイプラインとの違いを明確化し、 用途別の選択指針 を提示
  • 現在パブリックベータで提供中、 Workers Paidサブスクリプション 向けに利用可能

Cloudflare K2: イベントストリーミングの新基準

  • 従来の RPCアーキテクチャ では、プロデューサーとコンシューマーのスケールやタイミングのズレが課題
    • データ過多やサービス停止時に イベントが失われる リスク
    • 複数の独立したコンシューマーでの 並行処理困難
  • 解決策として、 プロデューサーとコンシューマーの間にバッファサービス を挿入
    • 書き込みを吸収し、 各コンシューマーが独立した速度で取得 可能
  • K2は Cloudflare Developer Platform 上で動作する 耐久性の高いイベントストリーミング基盤
    • イベントを 順序付きログ として保存
    • 読み出しは 分散処理・全配信 など柔軟に選択可能
    • サーバーレス・大規模スケール・長期保存 対応
    • コンシューマーダウン時も データ損失なし

K2のアーキテクチャと技術的特徴

  • R2オブジェクトストレージ 上にパーティション化された耐久ログを実装
    • 11 9sの高耐久性・ 強整合API 活用
    • コンピュートとストレージの分離 で独立スケール・低コスト長期保存
  • オブジェクトストレージ特有の制約 (追記不可)を克服
    • エッジサービスで インメモリバッファリング
    • 一定期間ごとに セグメントファイルとして一括書き込み
    • 順序性とオフセット管理 はR2のアトミック操作で実現
  • 課題:書き込みレイテンシ
    • オブジェクトストレージへの書き込みは ローカルディスクより遅い
    • 現状、99パーセンタイルで 約1秒のプロデューサーレイテンシ

K2と他の非同期サービス(Queues, Pipelines)との違い

  • Queues
    • 個別ジョブの非同期実行・複雑なワークフロー制御(リトライ、遅延、デッドレター等)
    • メッセージ単位の制御が必要な場合に最適
  • K2
    • 大規模データ移動・長期保存・ファンアウト消費 に特化
    • バッチ処理 による効率化(個別リトライは不可)
    • 高スループット・分散読取 が必要な分析やログ用途向き
  • Basin Pipelines
    • サーバーレスなイベント変換・R2やカタログへの書き込み
    • イベントの最終保存先がオブジェクトストレージ等の場合に推奨
    • K2はカスタム処理や他宛先への転送に最適

K2の利用方法

  • ストリーム作成
    • cf CLI, Wrangler, ダッシュボード, APIで作成可能
    • 用途やイベント種別ごとに 複数ストリーム運用 推奨
  • イベント送信
    • HTTP APIまたはWorkerバインディングで送信
    • バイト列でデータを表現、柔軟なフォーマット利用可
  • サブスクリプション作成
    • HTTP APIで作成、 複数コンシューマーによる並列読取 対応
    • 各サブスクリプションは 独立したワーク分割 を実現
  • 消費処理
    • 各コンシューマーはサブスクリプションを ポーリング
    • バッチごとに5分間のリース、処理完了後にack/nack/リース延長
    • pub/sub型 (全メッセージ配信)や ワーク分割型 の選択可
  • API詳細は公式ドキュメント参照

料金・提供状況

  • パブリックベータ中 :Workers Paidサブスクリプション対象
    • 上限 :ストレージ最大10GB、ストリームあたり30MB/s書き込み
    • ベータ期間中は無課金
  • 今後の課金予定
    • データ書き込み: $0.04/GB
    • データ読み出し: $0.04/GB
    • データ保持: $0.02/GB/月
  • 上限引き上げ希望時はDiscordまたはフォームで要連絡

今後のロードマップ

  • 高並列書き込み対応 (マルチGB/s)
  • メッセージキー・キー順序保証
  • プッシュ型Workerコンシューマー
  • 低レイテンシExpress tier
  • Apache Kafkaクライアント互換サポート
  • フィードバックはCloudflare Discordまで

提供: ハクソク · 要約更新:

AIによる日本語要約です。内容は原文とあわせてご確認ください。

Hacker Newsの議論を読む

Hackerたちの意見

もし僕が真剣なCloudflareの顧客だったら、彼らのインフラのセキュリティについてかなり心配になると思う。確かにLLMはコードを書くのが早いけど、これは新しい製品をリリースするペースが異常に速くて、しかもスタッフは減ってるからね。

└

彼らは、この種のソフトウェアを作るのを簡単にするためのプリミティブを開発中なんだ。AIの時代では、ランタイムがますます重要になってきて、言語の重要性は薄れてきてる。

└

このリリースは本当に助かるよ。必要だった穴を埋めてくれるからね。次に必要なのはちゃんとしたデータベースとD1の改善かな。

└

それはただの印象だよ。同じ時期に1,000人を雇って、前年には2,000人(インターン)を雇ってたんだから。他の会社よりもニュースが多かっただけだと思う(約1年前に2,000人を解雇したみたいだけど)。良いとは言ってないけど、ちょっと印象のバランスを取ってみた。

└

彼らはずっとこんなに速いよ。コツは、ベータ製品をたくさんリリースすることなんだ。いわゆる「リーン」ってやつ(誰か覚えてる?)私がもっと心配しているのは、彼らが市場の多くを握っていくこと、最終的には独占状態になってしまうこと(あるいはビッグテックの「デュオポリー」の一部になること)。

└

そうじゃないことを信じてるよ。著者たちをチェックしてみて。Micahの会社はCloudflareに買収されたし、彼らはこの分野に関して良い専門知識を持っているよ。問題は「雰囲気コーディング」ではなく、彼らの取得したチームがどう機能するかってこと。これまでリリースされたほとんどの製品は、彼らが買収した会社に支えられている。通常は製品をリブランディングしてチームを吸収するよ。このリリースが大企業の製品ではなく、スタートアップの製品から来たものだと知っても驚かないと思う。Cloudflareは確かにたくさんの人を雇ったけど、同時に多くの人を解雇した。最近彼らがやっているのは、会社全体を買収して、ほぼ独立した権限を与えて製品を作らせることだね。

この投稿の作者で、K2のテックリードです。質問があればどんどん聞いてください!

└

すごい製品だね、ローンチおめでとう!内部で何か使ってるの?

└

投稿を読んでも、CF QueuesとK2を使うタイミングがまだ完全には理解できてないんだけど、もう少し詳しく説明してもらえる?

└

テスト中なんだけど、書き込みは1秒未満でできてるのに、E2Eの配信遅延がp95=2.5秒、p99=7.5秒になってる。これって大体予想通りなのかな?

└

料金について正しく理解できたかな?公開されたデータと消費されたデータに対してGBごとに料金がかかるの?

└

s2.devと比べてどうなの?

Hacker Newsで議論の続きを見る

同じ出典の記事