使用 Cloud Storage 內建快取功能進行快取

本頁討論可用的選項,說明如何控管 Cloud Storage 物件的快取方式。本頁面著重於 Cloud Storage 內建快取和 Cloud CDN,但 Cloud Storage 也與第三方內容傳遞網路 (CDN) 相容。

總覽

控管 Cloud Storage 物件的快取,提升應用程式效能,並確保內容為最新版本。快取物件資料儲存空間會在 Google 或網際網路快取中儲存資料副本,加快日後的資料讀取要求。Cloud Storage 提供內建快取功能,行為類似 CDN。您可以透過 Cache-Control 中繼資料管理這項內建快取功能,定義快取儲存物件的方式和時間長度。

如要進一步控管,請搭配 Cloud CDN 使用 Cloud Storage 快取,或探索 Anywhere Cache

使用 Anywhere Cache 進行快取

Anywhere Cache 提供全代管、一律一致的 SSD 支援區域讀取快取,可在運算資源中與工作負載位於相同區域。快取可用於加快大型資料密集型工作負載的資料服務速度。與直接從多區域 bucket 讀取的資料相比,從快取讀取的資料會收取較低的資料移轉費用,因此您可以最佳化費用。

詳情請參閱「Anywhere Cache」。

Cloud Storage 內建快取

Cloud Storage 可做為內容傳遞聯播網 (CDN),您不用執行任何操作,因為如果物件的 Cache-Control 中繼資料設為允許快取,且符合下列條件,系統就會在 Cloud Storage 網路中快取物件資料:

Cloud Storage 會遵守 Cache-Control標準值,例如:

  • public:物件可以快取。

  • private:物件不會由 Cloud Storage 快取,但可快取在要求者的本機快取中。

  • no-cache:可以快取該物件,但是除非先經 Cloud Storage 驗證,否則該物件不能用於滿足將來的要求。

  • no-store:物件無法快取。

  • max-age=TIME_IN_SECONDS:物件在被判定為過時之前可以快取的時間長度。你可以將 max-age 設為任何時間長度。除非是特殊情況,否則快取不會提供過時的物件。

如要設定物件的 Cache-Control 中繼資料,請參閱「編輯物件中繼資料」。

使用 IAM 拒絕政策的內建快取行為

如果組織層級 IAM 拒絕政策限制主體 ID allUsers讀取物件,即使 bucket 層級 IAM 政策授予 allUsers 讀取物件的權限,物件的內建快取也會停用。不過,如果 IAM 拒絕政策只限制個別使用者,物件的內建快取功能仍會啟用。

效能注意事項

如果您使用的是可公開快取的物件,效能會大幅提升。如果您是透過單一物件控管多個用戶端,並想停用快取功能來提供最新資料,請採取以下步驟:

  • 建議將物件的 Cache-Control 中繼資料改為 public,並將 max-age 設為 15 至 60 秒。為了提升效能,多數應用程式可容許物件過時幾秒。

  • 將物件設為 Cache-Control: no-store,禁止系統將物件儲存於任何快取供後續要求使用。

搭配 Cloud CDN 使用 Cloud Storage

為確保內容傳遞給使用者時能發揮最佳效能,建議您搭配使用 Cloud Storage 和 Cloud CDN。相較於單獨使用 Cloud Storage 提供的快取功能,Cloud CDN 可提升效能、增加可快取的檔案大小,並提供快取撤銷等功能。

如要使用 Cloud CDN,必須搭配外部應用程式負載平衡器,並將 Cloud Storage bucket 設為後端。如需透過 Cloud Storage 值區設定 HTTP(S) 負載平衡器的教學課程,請參閱「託管靜態網站」。

Cloud CDN 快取模式可讓您對所有物件套用統一的快取設定。Cloud CDN 會使用物件上設定的 Cache-Control 中繼資料,判斷物件的快取方式,除非您使用快取模式或 TTL 限制覆寫 Cache-Control 中繼資料。

在 Cloud Storage 內建快取和 Cloud CDN 之間做選擇時,請考量功能差異和價格影響:

功能差異

功能 Cloud Storage Cloud CDN
可快取檔案大小上限 10 MiB 100 GiB 1
預設快取到期時間 1 小時 1 小時 (可設定)
支援透過 HTTPS 使用自訂網域
快取撤銷

1如果原始伺服器支援位元組範圍要求,Cloud CDN 的可快取檔案大小上限為 100 GiB。如果原始伺服器不支援位元組範圍要求,Cloud CDN 可快取的檔案大小上限為 10 MiB。

費用考量事項

就價格而言,選擇 Cloud Storage 內建快取或 Cloud CDN,取決於您每個月提供的資料量,這會決定您產生的網路費用。

  • 如果您每月提供的可快取資料不到幾 GiB,整體而言,依賴 Cloud Storage 內建快取功能可能更便宜。Cloud Storage 快取可能會產生比 Cloud CDN 更高的網路費用,因為系統會對快取和未快取的物件收取相同的輸出資料移轉費用 (也就是說,您要為快取命中支付全額費用)。不過,您只需支付與 Cloud Storage 相關的資料儲存和作業使用費用,不必支付 Cloud Storage、Cloud CDN 和 Cloud Load Balancing 的組合費用。

  • 如果您每月提供的可快取資料量經常達到 100 GiB 以上,或是需要使用單一要求記錄和自訂標頭,整體而言,使用 Cloud CDN 可能會比較便宜。快取填補會產生 Cloud Storage 輸出資料轉移和 Cloud CDN 快取填補費用,快取填滿後則適用 Cloud CDN 網路價格。使用 Cloud CDN 節省的網路費用,可能足以抵銷維護外部應用程式負載平衡器、Cloud CDN 和 Cloud Storage 所產生的較高營運成本。

後續步驟