本文へスキップ
MameTechNews
フロントエンド

Vercel、Data CacheをRuntime Cacheへ統合 Proの容量は8倍

## POINTS

  • fetchキャッシュとunstable_cacheのコードはそのままで、変わるのは保存先と料金だ。
  • Proは環境ごとの枠が従来のチーム共有の8倍、Enterpriseは従来容量の10倍になる。
  • キャッシュはリージョン内だけを見る。他リージョンに値があってもヒットにはならない。

何が起きたか

Vercelは10月30日、データキャッシュをRuntime Cacheへ一本化すると発表した。これまでNext.jsのfetchキャッシュとunstable_cacheはData Cache、getCacheと「use cache: remote」はRuntime Cacheを使っていた。4つのAPIは同じ保存枠と利用状況の画面に載る。fetchキャッシュとunstable_cacheのコードは変えなくてよい。

Proではプロジェクトと環境ごとに保存枠が付き、従来のData Cacheのチーム全体の枠の8倍になる。Enterpriseは従来のData Cache容量の10倍だ。これまで課金されていなかったData Cacheの読み書きは、Runtime Cacheの料金に従う。新規チームは最初からRuntime Cacheを使い、既存チームには移行と課金の案内が事前に届く。

なぜ今重要か

Runtime Cacheはリージョンごとに独立したキャッシュで、ヒットはそのリージョンへの1往復で済む。別リージョンにコピーがあっても見に行かない。タグの無効化は、受け取ったリージョンをすぐ更新し、他リージョンへは通常数百ミリ秒で伝わる。記事は、8月に全リージョンへ入れたサーキットブレーカにより、最大リージョンのバースト時のp99読み取り遅延が同程度の流量で約5分の1になった、とも書いている。

エンジニアが取ること

移行前にキャッシュの読み書き量を見る。新たに課金対象になるのは、これまで無償だったData Cacheの読み書きだ。最適化ガイドで不要な読み書きを減らしてから移行する。タグはカタログ全体のように粗い単位にすると、多数のエントリを個別に消さずに無効化できる。ミス時の再取得はアプリ側のままで、リージョンをまたいだ自動複製は期待できない。