本頁面說明如何控管 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 網路中:
- 物件為公開存取。
- 物件未儲存在已啟用要求者付費的 bucket,且不位於虛擬私有雲服務範圍內。
- 物件未以客戶自行管理的加密金鑰或客戶提供的加密金鑰加密。
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 CDN 相比,Cloud Storage 快取可能會產生較高的網路費用,因為系統會對快取和未快取的物件收取相同的傳出資料移轉費用 (也就是說,您要為快取命中支付全額費用)。不過,您只需支付與 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 bucket 的要求提供服務。
- 請參閱外部應用程式負載平衡器和 Cloud CDN 的定價詳細資料。