本頁面將說明可用來控制 Cloud Storage 物件快取方式的選項。本頁面將著重介紹 Cloud Storage 內建快取和 Cloud CDN,但 Cloud Storage 也支援第三方 CDN。
總覽
當 Cloud Storage 物件快取時,物件資料的副本會儲存在 Google 或網路快取中,以便在日後的請求中更快速地提供物件。雖然快取可改善效能,但如果您對物件進行更新,而快取仍繼續提供舊版物件,就可能會提供過時的內容。
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 拒絕政策,限制 主體 ID allUsers
對物件的讀取存取權,則系統會停用物件的內建快取功能,即使有值區層級的 IAM 政策將物件的讀取存取權授予 allUsers
也一樣。不過,如果 IAM 拒絕政策只限制個別使用者,則系統仍會為物件啟用內建快取功能。
效能注意事項
如果您使用的是可公開快取的物件,效能會大幅提升。如果您是透過單一物件控管多個用戶端,並想停用快取功能來提供最新資料,請採取以下步驟:
建議將物件的
Cache-Control
中繼資料改為public
,並將max-age
設為 15 至 60 秒。大多數應用程式都能容許物件在幾秒內過時,以換取效能提升。將物件設為
Cache-Control: no-store
,禁止系統將該物件儲存於任何快取,供後續要求使用。
搭配值區使用 Anywhere Cache
Anywhere Cache 是完全受管理且一律保持一致的 Cloud Storage 功能,可讓您在與工作負載相同的區域中建立快取。接著,您就可以使用快取來完成資料讀取要求,而非使用多區域儲存桶,這樣一來,您就能在執行大量資料密集工作負載時控管儲存空間成本,否則這類工作負載會產生多區域資料傳輸費用,並影響效能。如要進一步瞭解 Anywhere Cache、其優點,以及何時應使用這項功能,請參閱Anywhere Cache 總覽。
搭配 Cloud CDN 使用 Cloud Storage
為了在為使用者提供內容時發揮最佳效能,建議您搭配使用 Cloud Storage 和 Cloud CDN。
如要使用 Cloud CDN,您必須使用外部應用程式負載平衡器,並將 Cloud Storage 值區做為後端。如要瞭解如何透過 Cloud Storage 值區設定 HTTP(S) 負載平衡器,請參閱「託管靜態網站」一文。
Cloud CDN 快取模式可讓您在所有物件中套用統一的快取設定。除非您使用快取模式或 TTL 限制覆寫 Cache-Control
中繼資料,否則 Cloud CDN 會使用物件上的 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 的營運成本可能會提高,因此這項節省的網路成本可能不值得。
後續步驟
- 進一步瞭解
Cache-Control
中繼資料。 - 進一步瞭解 RFC
Cache-Control
指令。 - 請參閱 Cloud CDN 快取總覽。
- 瞭解如何建立外部 HTTP(S) 負載平衡器,以便處理 Cloud Storage 值區的要求。
- 請參閱 外部 Application Load Balancer 和 Cloud CDN 的定價詳細資料。