觀點 · 資訊分享

CloudFront 終於能「按標籤」清快取:一次清掉一組相關頁面,官方說 P95 不到 5 秒生效

Amazon CloudFront 新增「用快取標籤失效」功能:回應時用標頭幫內容貼標籤,之後一個請求就能清掉所有同標籤的快取。每個標籤算一條路徑計費,除中國兩個區域外都能用。

發布
2026-04-30
篇幅
約 3 分鐘 · 1,381 字
結構
7 節 + 3 題常見問題
標籤
#AWS#CloudFront#快取#CDN#Cache Tag
CloudFront 終於能「按標籤」清快取:一次清掉一組相關頁面,官方說 P95 不到 5 秒生效

一句話看懂:CloudFront 現在可以先替快取內容貼標籤,之後一個請求就能清掉所有同標籤的內容,官方說多數情況不到 5 秒生效。

CloudFront 支援快取標籤失效資訊圖卡:幫快取內容貼標籤,之後一個請求清掉同標籤的全部內容

先用白話講:「快取失效」是什麼?

CloudFront 是 AWS 的 CDN(內容傳遞網路),它會把你的網頁、圖片先存一份在離訪客很近的機房,這份存起來的副本叫「快取」,讓網站更快。

問題是:你更新了商品價格,機房裡還放著舊版本怎麼辦?你得通知機房「那份舊的作廢」,這個動作就叫失效(invalidation)。

發生什麼事

4 月 29 日,AWS 宣布 CloudFront 支援依快取標籤(cache tag)失效。

  • 源站回傳內容時,在 HTTP 標頭裡帶上標籤,多個標籤用逗號分隔
  • 之後只要對某個標籤發一個失效請求,所有貼了這個標籤的快取一次清除
  • 標頭名稱可以在 CloudFront 主控台、AWS CLI 或 API 設定
  • 每個物件可以有多個標籤

跟以前比,差在哪?

官方說明,以前如果相關物件不在同一個網址路徑下,只能追蹤每一個網址,或使用範圍很大的萬用字元,可能順便清掉不相關的內容。

做法 以前 現在
清一組分散在各處的相關內容 逐一列出網址,或用萬用字元 對標籤送一個請求
風險 萬用字元可能清掉不該清的 只清貼了該標籤的內容

官方列出的常見情境:同一商品資訊出現在多個頁面、法律下架要求、法規合規要求、多租戶平台更新內容。

給開發者的技術細節

  • 速度:官方寫明失效約在 5 秒內生效(P95),包含回報狀態的完整完成時間不到 25 秒(P95)
  • 計費:每個快取標籤算作一條路徑
  • 可用範圍:所有提供 CloudFront 的區域,但不含中國(北京)與中國(寧夏)
  • 做法:先在 CloudFront 設定要讀的標頭名稱,源站在回應裡帶標籤;示意如下
HTTP/1.1 200 OK
Cache-Tag: product-123,spring-sale
Cache-Control: max-age=86400

上面的 Cache-Tag 只是示意用的標頭名稱,實際名稱由你在 CloudFront 設定,詳細步驟請看官方的 Invalidations By Cache Tag 文件。

我的看法

我幫中小企業做網站時,最常遇到的困擾就是「改了商品資料,畫面還是舊的」,後來只好用萬用字元整個路徑清,結果流量一高,快取命中率就掉。按標籤清的想法很對:改一個商品,只清跟它有關的幾頁。

不過這需要源站配合,在回應裡正確貼標籤。標籤設計得亂,反而更難管。建議先從「商品 ID」「活動名稱」這種清楚的維度開始,不要一開始就貼太多種標籤。自己用 Cloudflare 或其他 CDN 的人,也可以參考這種作法。

名詞小辭典

  • CDN(內容傳遞網路):把網站內容放在世界各地的機房,讓訪客從最近的地方取得,速度更快。
  • 快取(Cache):把處理過的內容先存起來,下次直接給,不用重新向源站要。
  • 失效(Invalidation):通知 CDN 把某些快取視為過期,下次重新向源站取新的。
  • P95:95% 的情況都在這個時間內完成,用來描述「大部分時候有多快」。

資料來源

常見問題

快取標籤是什麼?
是你自己在回應標頭裡替內容加上的分類名稱,例如同一個商品出現在多個頁面,就都貼同一個標籤。之後只要對這個標籤下失效請求,所有貼了它的快取一起被清掉。
要多付錢嗎?
官方寫明每個快取標籤算作一條路徑計費,詳細費率請看 CloudFront 的定價頁。
哪裡不能用?
官方列出的例外是中國(北京,由光環新網營運)與中國(寧夏,由西雲數據營運)兩個區域,其他提供 CloudFront 的區域都可使用。
LINE