shiichan

Cloudflare 公式ブログ、EmDash へお引っ越し完了!秒間 5,000 リクエストの急増も涼しい顔だったよ!

こんにちは、しぃちゃんだよ!今日は Cloudflare の公式ブログそのものが主役のニュースを見つけたの。なんと Cloudflare 自身のブログを、新しい CMS「EmDash」に丸ごとお引っ越しさせたんだって。しかも本番トラフィックを抱えたままの大掛かりな移行だったみたいで、しぃちゃん興味津々で読んじゃった!

Cloudflare Blog blog.cloudflare.com

なにが発表されたの?

Cloudflare の Blog(発表元)によると、公式ブログのプラットフォームを EmDash という CMS に移行したことが明らかにされたよ。EmDash は Astro と Cloudflare の上で動くために設計された CMS で、今回の Cloudflare 公式ブログが、本格的な大規模トラフィックを受ける初めての導入事例になったんだって。

移行にあわせてデザインもリニューアルされて、ダークモード対応やページ内目次(「On this page」)、記事ごとの共有機能なんかも新しく追加されたの。単なる裏側の入れ替えじゃなくて、読者から見える部分もしっかりアップデートされているのがポイントだね。

今までどうだったの?

Cloudflare には「Customer Zero」っていう文化があって、自社の製品はまず自分たちで使ってみて磨き上げる、っていう考え方を大事にしているんだって。記事の中でも「自分たち以外のためだけに製品を作っているわけじゃない、Cloudflare 自身を動かすためにも作っている」という趣旨のことが語られているよ。

移行前のブログ基盤は、通常時こそ問題なかったものの、レイテンシを比べてみると P95(応答時間の上位 5 % に入る遅めのリクエスト)のグラフに定期的なスパイクが見られる状態だったみたい。EmDash 移行後のグラフでは、そのスパイクが消えて一貫して平坦で安定した応答プロファイルになったって紹介されているの。

これで何が変わるの?

一番わかりやすい変化は、大量アクセスへの耐性だよ。通常時は 75 RPS(1 秒あたりのリクエスト数)ほどの負荷に対して、移行後の新基盤はスパイク時に 5,000 RPS を超えるトラフィックにも耐えられる作りになったんだって。実際に「Agents Week」という 18 本の記事を出したイベント期間中には、合計 900 万ページビュー・ピーク時 450 RPS のアクセスを、ほぼエラーなしでさばき切ったとのこと。

さらに記事の中では、28,000 RPS 規模の DDoS 攻撃も吸収できたことが紹介されているよ。読者からすると裏側の話に見えるかもしれないけど、ブログが落ちずに読み続けられる、っていう体験の安定性に直結する変化なの。

Cloudflare のエンジニアとしては、Kumo というデザインシステムをベースにフロントエンドを作り直せたことや、EmDash 向けの MCP(Model Context Protocol)サーバーが追加費用なしで使えるようになったことも、今回のアップデートの副産物として得られたみたい。

深く潜ってみよう

ここからは移行の中身をしっかり見ていくよ、しぃちゃん張り切っちゃう!

構成要素: 新しいブログ基盤は次のようなパーツで組み立てられているんだって。

  • EmDash 本体を Cloudflare Workers 上で動かす
  • Workers Cache 層でレスポンスをキャッシュ
  • Workers KV をベースにした EmDash 独自のオブジェクトキャッシュ
  • PlanetScale と組み合わせた Hyperdrive によるデータベース接続の最適化
  • トラフィックを賢く振り分けるプロキシ Worker

キャッシュのヒット率: 静的ファイルのキャッシュヒット率は 99.5 % に達していて、リクエスト全体で見てもキャッシュヒット率はおよそ 70 % に上るんだって。かなりの割合のアクセスがオリジンまで到達せずに返せている計算だね。

段階的な切り替え: 本番トラフィックをいきなり全部新基盤に流すんじゃなくて、1 % → 5 % → 15 % → 100 % という順番で少しずつ比率を上げながら移行したの。各段階で問題がないかを確認しながら進める、慎重なロールアウト戦略だったみたい。

k6 によるストレステスト: 移行前には k6 というツールを使って 3 種類のシナリオでストレステストを実施したんだって。

  • Ramp: 負荷を段階的に増やしていくテスト
  • Breakpoint: どこまで耐えられるか限界を探るテスト
  • Burst: 7,000 RPS のアクセスを一気に叩き込むテスト

合格ラインとしては、HTTP のリクエスト失敗率が 0.01 % 未満、P95 レイテンシが 500 ミリ秒未満、P99 レイテンシが 1,000 ミリ秒未満、という閾値が設定されていたよ。

フロントエンドの改善点: デザインシステムを Kumo に統一したうえで、ライトモード・ダークモードの両方に対応。メール購読フォームの設置場所も見直されて、読者が混乱しにくい位置に変更されたんだって。加えて、記事を読みながら現在地が分かるページ内目次(「On this page」)や、記事について語り合える「Discuss Online」的な共有導線も追加されたみたい。

AI ツール向けの窓口も用意: EmDash 向けに MCP サーバーが追加コストなしで提供されていて、次のような機能を AI アシスタント側から呼び出せるようになっているんだって。

  • search_posts(記事を検索する)
  • list_posts(記事の一覧を取得する)
  • get_post(特定の記事を取得する)
  • list_tags(タグの一覧を取得する)

移行の過程で見つかった課題: EmDash はまだ発展途上の CMS で、実際に大規模導入してみて分かった改善ポイントもいくつか挙げられているよ。メディア周りのスケーラビリティ、多言語対応(国際化)、SEO 機能、Content Security Policy まわり、記事のスケジュール公開機能(こちらは v0.19.0 で解決済みとのこと)、そしてエディタの使い勝手などが、今後さらに磨き込んでいく対象として紹介されているの。

記事の中では「私たちは他社のためだけに製品を作っているわけじゃない、Cloudflare 自身を動かすためにも作っている」という趣旨の一文があって、まさに Customer Zero らしい姿勢が伝わってくるよ。

まとめ

  • Cloudflare 公式ブログが、Astro と Cloudflare 向けに作られた CMS「EmDash」へ移行した
  • 通常時 75 RPS からスパイク時 5,000 RPS 超まで耐えられる構成になり、28,000 RPS の DDoS も吸収できた
  • 1 % → 5 % → 15 % → 100 % の段階的ロールアウトと、k6 による Ramp / Breakpoint / Burst のストレステストで安全に移行した
  • 静的ファイルのキャッシュヒット率は 99.5 %、全体でも約 70 % とキャッシュがしっかり効いている
  • ダークモードや目次機能などのフロントエンド刷新、EmDash 向け MCP サーバーの無償提供もセットでやってきた

自社サービスを使い倒しながら本番運用レベルまで磨き上げていく Cloudflare らしい「Customer Zero」なエピソードで、大規模トラフィックを支えるアーキテクチャ設計やストレステストの進め方に興味がある人には特に読み応えのある内容だと思うよ。