💡 先搞懂問題
虛構的「青松物流」把三種資料都放進 Cloud Storage:客服每天要查的出貨單據、只有稽核時才翻的系統日誌,以及法規要求保存七年的合約掃描檔。一開始全部放在預設的 Standard,帳單跟著資料量一路往上爬。後來有人為了省錢,把整個值區的物件都改成最便宜的 Archive,下個月帳單反而更高:客服每天照樣調單據,每讀 1 GB 都要多付一筆擷取費,被改級別的檔案還因為不到一年就被覆寫,被收了「提早刪除費」。又有一次,整個值區只放在台灣的單一區域,主管問「如果整個區域出事,我們的合約檔還讀得到嗎?」沒人答得出來。再過一陣子,批次程式把一批單據刪掉,幸好值區預設開著軟刪除,七天內還救得回來。
這幾件事分別對應 Cloud Storage 的三組設定。儲存空間級別(storage class)決定每個物件怎麼計費:越冷的級別儲存費越低,但讀取時要付擷取費(retrieval fee),而且有最短儲存期(minimum storage duration),提早刪除或覆寫要補足天數。和 AWS 不同的是,Cloud Storage 的四個級別全部都是毫秒存取,Archive 也不用先「還原」再讀,差別只在價格結構與可用性 SLA。位置類型(location type)決定資料放在一個區域、兩個指定區域,還是一整個大區,也就決定了能撐過哪一種故障。物件生命週期管理(Object Lifecycle Management)、Autoclass 負責依天數或實際讀取情況自動換級別;軟刪除(soft delete)、物件版本管理(Object Versioning)、保留政策(retention policy)與 Bucket Lock 負責「刪了能不能救、能不能被刪」。
生活比喻:一間分區計租、可以選地點的倉庫
想像青松物流向一家倉儲公司租空間。門口的常用區租金最高,但貨拿了就走、不另收費。往裡走是「偶爾拿的區」,租金便宜一半,可是每搬出一箱都要付搬運費,合約還寫明每箱至少計 30 天租金,放三天就搬走也照收 30 天。再往後是季度才翻的區,租金更低、搬運費更高、最少計 90 天。最便宜的是遠端冷藏庫,最少計一年、每次搬運費最高;但這家倉儲公司有個特別之處:不管放在哪一區,打一通電話,貨都是馬上送到,不用預約、不用等。
簽約時還要選地點:只租一座城市裡的幾棟倉庫(便宜、離工廠近,某一棟淹水不影響,但整座城市停電就沒辦法);或是指定兩座城市各放一份,例如台北和高雄(貴一些,每次入庫還要付一筆跨城運送費,但兩份之間的同步要一點時間);或是交給物流公司在整個大區裡自己分配。倉儲公司另外提供兩種服務:牆上的搬移排程表(入庫 30 天移到偶爾拿的區、一年後銷毀),以及會看進出紀錄自動調位的倉管。
asia-east1,資料在區域內的多個可用區(zone)間備援;兩座指定城市是雙區域(dual-region),例如東京加大阪的 ASIA1;交給物流公司分配是多區域(multi-region),只有 ASIA、EU、US 三個。跨城運送費是寫入雙區域或多區域時的跨區域複寫費。排程表是生命週期規則,自動調位的倉管是 Autoclass。
再看位置:一個值區可以橫跨兩個區域
在 AWS,S3 儲存貯體屬於單一區域,要跨區域保存就得另設複寫規則;Azure 則把備援設在儲存體帳戶上。Cloud Storage 的做法是:建立值區時直接選位置類型。區域型值區把資料放在同一個區域的多個可用區,設計上能承受任何一個可用區失效;雙區域與多區域值區把資料放在兩個以上的區域,整個區域停擺時,Google 會自動改由另一個區域提供資料,應用程式不必換值區名稱或路徑。代價是儲存單價較高、寫入時要付跨區域複寫費,而且複寫是非同步的:預設目標是新寫入的物件 99.9% 在 1 小時內、100% 在 12 小時內完成跨區域備援;雙區域可以另外付費開啟 Turbo replication,目標是 100% 在 15 分鐘內完成。
這個比喻有幾個地方和實際不同。第一,遠端冷藏庫在現實裡通常要等,但 Cloud Storage 的 Archive 一樣是毫秒取得,只是擷取費最高;所以「冷」在這裡只代表價格結構,不代表速度。第二,最短儲存期不是「鎖住不能動」,物件隨時可以刪,只是會補收剩下天數的費用;真正讓物件刪不掉的是保留政策。第三,倉庫可以把貨從冷藏庫搬回門口,Cloud Storage 的生命週期規則卻只能往冷的方向換級別;只有 Autoclass 會在物件被讀取時自動把它移回 Standard。第四,雙區域的「兩座城市各一份」不是瞬間同步,剛寫入的物件可能還沒到另一個區域,這段落差就是復原點目標(RPO,Recovery Point Objective)要回答的問題。
🎮 互動實驗室一:四種級別與 Autoclass 成本試算
先選一個情境,或自己拉滑桿:資料量、每月讀取量、保存天數(之後刪除)。右邊用示意單價算出 Standard、Nearline、Coldline、Archive 在整段保存期間的儲存費、提早刪除費與擷取費。勾選「啟用 Autoclass」會多出一列,依物件平均大小、熱門資料占比與終點級別,模擬 Autoclass 自動換級別的結果。示意單價的單位是「點」,只保留各級別之間大致的高低關係,不是實際價格;實際價格依位置與時間而不同,請以 Cloud Storage 定價頁與 Google Cloud Pricing Calculator 為準。這個試算不計作業(operation)費與網路傳出費。
一、輸入
| 示意單價(點) | 儲存 GB・月 | 擷取 GB | 最短天數 | 存取 |
|---|
二、整段保存期間的總成本(示意)
提早刪除費 = 資料量 × 儲存單價 × max(0, 最短天數 − 保存天數) ÷ 30
擷取費 = 每月讀取 GB × 擷取單價 × 保存天數 ÷ 30
Autoclass = 熱門資料一直在 Standard + 其餘資料依 30/90/365 天轉換的儲存費 + 管理費(每 1,000 個物件每 30 天 1.25 點,小於 128 KiB 的物件不計也不轉換)
最短儲存期(Nearline 30 天、Coldline 90 天、Archive 365 天)、「提早刪除、覆寫或搬移時以最短儲存期計費」、Autoclass 的轉換門檻(30 天未讀轉 Nearline;終點設 Archive 時 90 天轉 Coldline、365 天轉 Archive;讀取後回到 Standard;小於 128 KiB 的物件不轉換)、Autoclass 不收擷取費與提早刪除費但收管理費,依 Cloud Storage 文件「Storage classes」「Autoclass」與定價頁說明,查證時間 2026 年 10 月。Autoclass 另有啟用時對既有物件的一次性費用,本試算假設是新值區、沒有既有物件。示意單價為本頁自訂比例,不代表任何位置的實際價格。
🎮 互動實驗室二:位置類型故障模擬與資料保護時間軸
上半部模擬「放在哪裡」:先選位置類型(雙區域可以加開 Turbo replication),再選「物件在故障前多久寫入」,然後觸發「一個可用區故障」或「整個區域故障」。開著「先猜再看」時,會先請你回答一個是非題,答完才公布四格結果:值區還能不能讀寫、剛寫入的物件讀不讀得到、應用程式要不要改路徑、這種位置的複寫目標是多少。下半部模擬「刪了能不能救」:切換物件版本管理、軟刪除保留期與保留政策,用按鈕上傳、覆寫、刪除、快轉時間與還原,六個任務會在你做到時自動打勾。
值區的資料放在哪裡
值區的資料保護設定
保留政策(retention policy)
行為依 Cloud Storage 文件「Availability and durability」「Bucket locations」「Soft delete」「Object Versioning」「Retention policies and Bucket Lock」,查證時間 2026 年 10 月:跨區域複寫預設目標是新寫入物件 99.9% 在 1 小時內、100% 在 12 小時內,Turbo replication 是 15 分鐘內(RPO 15 分鐘,只限雙區域);區域故障時雙區域與多區域值區自動改由可用的區域提供資料,尚未複寫完成的物件要等故障區域恢復才讀得到。軟刪除預設 7 天,可設 7~90 天或 0 關閉;保留政策期限內刪除或取代物件會回應 403 retentionPolicyNotMet。世代編號(generation)為示意。
🛠️ 操作教學:建立值區並設定生命週期規則
不用登入 Google Cloud,也能先把流程走一遍。左邊是簡化的雲端控制台,照步驟填表、按按鈕;右邊同步顯示等效的 gcloud CLI 與 Terraform,黃色底的那幾行就是目前這一步對應的指令。可以故意把值區名稱打錯、把軟刪除天數填成 3,或在開了 Autoclass 的值區加「變更儲存空間級別」規則,看驗證訊息怎麼說明;也可以改名稱、位置或級別,看指令怎麼跟著變。生命週期規則的 JSON 在「lifecycle.json」分頁。
google_storage_bucket 資源就包含位置、級別、存取控制、資料保護與生命週期。要特別注意:terraform destroy 會刪除它建立的資源;值區裡還有物件時,除非設了 force_destroy = true,否則刪除會失敗,鎖定保留政策的值區更要等所有物件滿保留期才刪得掉。不想自己準備 Terraform 執行環境,可以用 Google 託管的 Infrastructure Manager;舊的 Deployment Manager 已在 2026 年 3 月底結束支援,新設計不要再用。
自己動手時要注意
權限方面,建立與設定值區需要專案上的 Storage Admin(roles/storage.admin)這類角色;只上傳物件用 Storage Object Creator 或 Storage Object User 就夠,平常讀取用 Storage Object Viewer,依最小權限原則分開授予。Cloud Storage API 在新專案通常已預設啟用,沒有的話用 gcloud services enable storage.googleapis.com 啟用;用 Terraform 時,執行者(使用者憑證或透過 Workload Identity Federation 取得的身分)也要有相同權限。
費用方面,Cloud Storage 依儲存量、作業次數、擷取量、網路傳出與跨區域複寫計費;軟刪除與非現行版本都照常收儲存費,Nearline、Coldline、Archive 還有最短儲存期。Free Tier 每月有 5 GB-月的 Standard 儲存,但只限美國的部分區域(查證日期 2026-10-08),選台灣的 asia-east1 練習就會計費;新帳戶的 Free Trial 有 300 美元抵用金、期限 90 天。練習完記得清理:開了軟刪除的值區,刪掉後在保留期內仍可還原、也仍計費,練習用的值區可以先把軟刪除設成 0 再刪;鎖定了保留政策的值區要等物件滿保留期才能刪除,練習時不要真的按鎖定。
# 刪除值區內所有物件與版本,再刪除值區本身
gcloud storage rm --recursive gs://qingsong-logs-2026/
# 值區已經是空的,也可以直接刪除
gcloud storage buckets delete gs://qingsong-logs-2026
# 用 Terraform 建立的
terraform destroy
# 最乾淨的做法:刪除整個練習專案(專案內所有資源一起停用並排入刪除)
gcloud projects delete my-project-id
範例裡的名稱都是示意。不要把服務帳戶金鑰檔下載到電腦或寫進腳本;在自己的電腦上用 gcloud auth login 與 gcloud auth application-default login 取得使用者憑證,在 CI/CD 或其他雲端用 Workload Identity Federation。專案 ID 一律用 my-project-id 或 PROJECT_ID 這類佔位字。
📘 原理補完
四種儲存空間級別的正式定義
儲存空間級別可以設在值區(當作新物件的預設值)或個別物件上,同一個值區裡可以混放。判斷時問三個問題:多久讀一次?要保存多久?資料放在哪一種位置?下表依 Cloud Storage 文件與 SLA 頁整理(查證時間 2026 年 10 月)。四個級別的設計年耐久度都是 99.999999999%,存取延遲都是毫秒級,差別在價格結構與可用性 SLA。
| 級別 | 最短儲存期 | 擷取費 | 存取 | SLA:多區域/雙區域 | SLA:區域 | 適合 |
|---|---|---|---|---|---|---|
| Standard | 無 | 無 | 毫秒 | 99.95% | 99.9% | 常讀的資料、網站內容、運算中的暫存資料、短期保存 |
| Nearline | 30 天 | 有 | 毫秒 | 99.9% | 99.0% | 大約一個月讀一次以內,例如備份、長尾內容 |
| Coldline | 90 天 | 有(較高) | 毫秒 | 99.9% | 99.0% | 大約一季讀一次以內,例如災難復原副本 |
| Archive | 365 天 | 有(最高) | 毫秒 | 99.9% | 99.0% | 一年讀不到一次的長期保存、法規封存 |
SLA 數字是一般區域的值;Mexico 與 Stockholm 區域的部分項目較低。另有兩類不在比較範圍:Rapid 級別只用在位置是單一可用區的 Rapid Bucket,給 AI 與分析的高效能讀取(SLA 99.9%);Multi-Regional、Regional、Durable Reduced Availability 是舊制級別,控制台已無法設定,官方建議改用 Standard。
提早刪除費:最短儲存期怎麼算
最短儲存期不是鎖定期。物件放在 Nearline、Coldline 或 Archive,隨時都能刪除、取代或搬走,只是在那個時間點會被當成「已經放滿最短儲存期」計費,多出來的部分走提早刪除的計費項目。容易忽略的是覆寫也算:同名物件重新上傳、或手動把物件改成其他級別(rewrite),都等於把原本的物件取代掉。兩個例外:生命週期規則換級別不收提早刪除費,而且物件在原級別待的時間會算進新級別的最短儲存期;Autoclass 值區裡的物件也不收。開了軟刪除時,提早刪除費在物件被軟刪除時計算,並依軟刪除保留期扣減;開了版本管理時,則是在非現行版本真正被刪除時才計算。
物件生命週期管理:只往冷的方向走
生命週期設定(lifecycle configuration)掛在值區上,由多條規則組成。每條規則只有一個動作:Delete(刪除)、SetStorageClass(換級別)或 AbortIncompleteMultipartUpload(中止沒完成的分段上傳);條件可以組合,例如 age(從建立算起的天數)、createdBefore、isLive、numNewerVersions、daysSinceNoncurrentTime、matchesStorageClass、matchesPrefix、matchesSuffix,同一條規則的條件要全部符合才執行。換級別只能往冷的方向:Standard 可以換到 Nearline、Coldline、Archive;Nearline 可以換到 Coldline 或 Archive;Coldline 只能換到 Archive。Cloud Storage 不會檢查你寫的轉換是否合法,寫錯方向的規則會被接受,但永遠不會發生。設定變更最多要 24 小時才生效,執行也是非同步的;保留政策或物件保留留置還沒解除時,Delete 動作會等到可以刪的時候才執行。
Autoclass:依實際讀取自動換級別
Autoclass 在值區層級開啟。開啟後新物件一律從 Standard 開始,連續 30 天沒被讀取就轉到 Nearline,這是預設的終點級別;把終點設成 Archive 時,90 天沒讀轉 Coldline、365 天沒讀轉 Archive。物件資料一被讀取就移回 Standard(只讀或改中繼資料不算);小於 128 KiB 的物件永遠留在 Standard,也不計管理費。它不收擷取費與提早刪除費,代價是每 1,000 個物件的管理費,以及對既有物件的一次性啟用費用(包含把既有物件移回 Standard 的作業費、未滿最短儲存期的提早刪除費與擷取費)。Autoclass 不能和使用 SetStorageClass 或 matchesStorageClass 的生命週期規則並用,但可以搭配 Delete 規則清掉過期資料。存取模式可以預測(例如日誌 30 天後幾乎沒人看)就用生命週期規則,預測不了就用 Autoclass。
位置類型:比較與 RPO
| 位置類型 | 例子 | 撐得住 | 跨區域複寫 | Standard SLA | 何時選 |
|---|---|---|---|---|---|
| 區域 | asia-east1(台灣) | 一個可用區故障 | 無(也沒有複寫費) | 99.9% | 運算在同區域、要最低延遲與成本、資料要留在單一地點 |
| 雙區域 | ASIA1、NAM4、EUR4,或同一位置代碼內自選兩區 | 整個區域故障 | 非同步;可開 Turbo(15 分鐘) | 99.95% | 要指定兩個地點、要可預期的 RPO、高可用的分析資料 |
| 多區域 | ASIA、EU、US | 整個區域故障 | 非同步;不能開 Turbo | 99.95% | 對大範圍使用者提供內容、不需要指定是哪個區域 |
RPO 是「出事時最多可能損失多少時間內的資料」。在 Cloud Storage,雙區域與多區域的「損失」其實是「暫時讀不到」:還沒複寫完成的物件仍在故障的區域裡,要等那個區域恢復;已複寫完成的物件則由另一個區域繼續提供,Google 自動處理切換,應用程式不必改值區名稱。預設複寫的 RPO 是 12 小時(多數物件 1 小時內完成);Turbo replication 的 RPO 是 15 分鐘,另有專屬的複寫時間 SLA,只能用在雙區域。位置在建立時決定,之後要搬家得用值區搬遷(需要 Storage Intelligence)或把資料複製到新值區。
存取控制:統一值區層級存取與禁止公開存取
存取控制和級別、位置是同一次建立值區時要決定的設定。統一值區層級存取(uniform bucket-level access)停用物件 ACL、只用 IAM 授權,好稽核;開啟後 90 天內可以關回去,連續開滿 90 天就永久生效。精細(fine-grained)模式是 IAM 與物件 ACL 並用,可以針對單一物件授權,但官方提醒比較容易意外外洩。禁止公開存取(public access prevention)擋下授予 allUsers 與 allAuthenticatedUsers 的權限,也可以用機構政策替整個機構強制開啟。要給沒有 Google 帳戶的人臨時下載或上傳單一物件,用有時效的簽署網址(signed URL),而不是把值區設成公開。
資料保護:軟刪除、版本管理、保留政策與 Bucket Lock
| 功能 | 防什麼 | 預設與範圍 | 能不能被關掉 | 費用 |
|---|---|---|---|---|
| 軟刪除 | 誤刪、惡意刪除、被覆寫;連值區被刪也能還原 | 新值區預設 7 天,可設 7~90 天或 0 關閉 | 可以改或關 | 保留期間照收儲存費 |
| 物件版本管理 | 想保留固定數量的舊版本 | 預設關閉 | 可以開關 | 每個非現行版本都照原級別計費 |
| 保留政策 | 保留期內任何人刪除或取代物件 | 最長 100 年,回溯套用到既有物件 | 未鎖定時可改、可移除 | 物件要放滿保留期 |
| Bucket Lock | 有人縮短或移除保留政策 | 鎖定保留政策 | 不能,只能延長保留期 | 值區要等所有物件滿保留期才能刪 |
官方建議防誤刪優先用軟刪除,它涵蓋覆寫、刪除,還能救回整個被刪掉的值區(用 gcloud 或 API 還原時只還原空值區,物件要另外還原);需要保留多個舊版本時才開物件版本管理,兩者可以同時使用,記得用 numNewerVersions 或 daysSinceNoncurrentTime 的生命週期規則清理舊版本。Cloud Storage 的版本管理沒有 S3 那種「刪除標記」:刪除現行版本後它直接變成非現行版本,不帶世代編號讀取會失敗,還原方式是把非現行版本複製回同名物件。法規要求「寫入後不得竄改、保存 N 年」時用保留政策加 Bucket Lock;若要針對單一物件設定保留,另有物件保留鎖(Object Retention Lock)與事件型、暫時型的物件保留留置(hold)。
判斷步驟
- 先決定位置:資料要留在哪裡、運算在哪個區域、要不要撐過整個區域故障。單一區域選區域型;要指定兩地並掌握 RPO 選雙區域(需要 15 分鐘 RPO 再開 Turbo);對大範圍使用者提供內容選多區域。
- 再看保存天數:短於 30 天的資料留在 Standard,冷的級別會被提早刪除費吃掉。
- 依讀取頻率選級別:每月讀很多次 Standard、約每月一次 Nearline、約每季一次 Coldline、一年不到一次 Archive;邊界情況用實際讀取量試算。
- 存取模式說不準、物件又大於 128 KiB,開 Autoclass;說得準就用生命週期規則寫下「幾天後換、幾天後刪」。
- 存取控制:統一值區層級存取+禁止公開存取,依最小權限授予 IAM 角色,對外分享用簽署網址。
- 資料保護:保持軟刪除;要留舊版本再開版本管理並加清理規則;法規不可竄改用保留政策+Bucket Lock。
容易考錯的地方
冷級別讀取要等:這是 AWS Glacier Flexible Retrieval、Deep Archive 與 Azure Archive 層的行為。Cloud Storage 的 Archive 也是毫秒存取,題目寫「一年讀一兩次、但讀時要立即取得」仍可以選 Archive,差別只在擷取費。
最短儲存期等於鎖定期:不是。物件隨時能刪,只是補收剩餘天數;真正讓物件刪不掉的是保留政策與保留留置。題目寫「資料只保存 7 天」,放 Nearline 反而更貴。
要跨區域就得設複寫:在 Cloud Storage,直接建立雙區域或多區域值區就有跨區域備援,不需要另設複寫規則;這是和 S3 跨區域複寫最大的不同。干擾選項常寫「建立兩個區域型值區並用 Storage Transfer Service 同步」,在需要自動切換的情境下不是最佳解。
多區域可以開 Turbo replication:不行,Turbo 只限雙區域。題目要求「可預期的 15 分鐘 RPO」時答案是雙區域加 Turbo。
Autoclass 和換級別規則可以一起用:不行。Autoclass 不能和 SetStorageClass 或 matchesStorageClass 規則並用,但可以搭配 Delete 規則;Autoclass 也不會幫你刪除過期資料。
生命週期能把資料搬回 Standard:不行,只能往冷的方向;讀取後自動回 Standard 是 Autoclass 的行為。
版本管理是最好的防誤刪:官方建議優先用軟刪除,它還能救回被刪除的值區;版本管理用在需要保留多個舊版本的情況,而且要配清理規則。
Bucket Lock 可以事後取消:不行,鎖定無法復原,保留期只能延長;保留期未滿的物件讓整個值區也刪不掉。
相關考試:Cloud Storage 儲存空間級別是 Cloud Digital Leader(CDL)資料管理產品、Associate Cloud Engineer(ACE)儲存與資料規劃的考點;ACE 另涵蓋 Cloud Storage 物件生命週期與成本估算,Associate Data Practitioner(ADP)與 Professional Data Engineer(PDE)的 exam guide 也點名 Cloud Storage。查證時間 2026 年 10 月。
✅ 自我檢測
6 題原創題,選完立即顯示對錯與解析,全部作答後會出現總分。目前得分:0 / 6