本頁討論可用的選項,說明如何控管 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 所產生的較高營運成本。
後續步驟
- 進一步瞭解
Cache-Control中繼資料。 - 進一步瞭解 RFC
Cache-Control指令。 - 閱讀 Cloud CDN 快取總覽。
- 瞭解如何建立外部 HTTP(S) 負載平衡器,以便處理來自 Cloud Storage 值區的要求。
- 請參閱外部應用程式負載平衡器和 Cloud CDN 的定價詳細資料。