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

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

總覽

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

如需更進階的控制功能,請搭配使用 Cloud Storage 快取和 Cloud CDN,或瞭解 Rapid Cache。

使用 Rapid Cache 快取

Rapid Cache 提供全代管、始終一致、採用 SSD 的可用區讀取快取,可在與運算工作負載相同的可用區中建立。快取用於加速大型、資料密集型工作負載的資料提供。與直接從多區域 bucket 讀取資料相比,從快取讀取資料的資料移轉費用較低,可讓您最佳化成本。

詳情請參閱「Rapid 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 Storage 搭配 Cloud CDN

為確保向使用者提供內容時能發揮最佳效能,建議您搭配使用 Cloud Storage 和 Cloud CDN。相較於單獨使用 Cloud Storage 的快取功能,Cloud CDN 提供更強大的效能、更大的可快取檔案大小,以及快取撤銷等功能。

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

Cloud CDN 快取模式可讓您對所有物件套用統一的快取設定。Cloud CDN 會根據物件上設定的 Cache-Control 中繼資料,判斷應如何快取物件,除非您使用快取模式或存留時間限制覆寫 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 的營運成本。

後續步驟