本頁討論可用的選項,說明如何控管 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 拒絕政策時的內建快取行為
如果組織層級 IAM 拒絕政策限制主體 ID allUsers
讀取物件,即使值區層級 IAM 政策授予 allUsers
讀取物件的權限,系統也會停用物件的內建快取。不過,如果 IAM 拒絕政策只限制個別使用者,物件的內建快取功能仍會啟用。
效能注意事項
如果您使用的是可公開快取的物件,效能會大幅提升。如果您是透過單一物件控管多個用戶端,並想停用快取功能來提供最新資料,請採取以下步驟:
建議將物件的
Cache-Control
中繼資料改為public
,並將max-age
設為 15 至 60 秒。為了提升效能,多數應用程式可容許物件過時幾秒。利用
Cache-Control: no-store
限制物件,禁止系統將該物件存入任何快取以供後續要求使用。
搭配 bucket 使用 Anywhere Cache
Anywhere Cache 是全代管的 Cloud Storage 功能,可確保資料一致性,讓您在工作負載所在的區域建立快取。然後,系統會使用快取完成資料讀取要求,而非多區域值區,協助您控管儲存空間費用,同時執行大型資料密集型工作負載,否則這些工作負載會產生多區域資料傳輸費用,並影響效能。如要進一步瞭解 Anywhere Cache、其優點,以及這項功能的使用時機,請參閱 Anywhere Cache 總覽。
搭配 Cloud CDN 使用 Cloud Storage
如要以最佳效能將內容傳遞給使用者,建議搭配使用 Cloud Storage 和 Cloud CDN。
如要使用 Cloud CDN,您必須使用外部應用程式負載平衡器,並將 Cloud Storage 值區做為後端。如需透過 Cloud Storage bucket 設定 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 的定價詳細資料。