挑戰賽過一半了!今天我們要介紹的是 AWS S3 的儲存類別及生命週期管理。
AWS S3 五大儲存類別包含 S3 Standard、S3 Standard-IA、S3 One Zone-IA、S3 Glacier 以及 S3 Glacier Deep Archive(下圖#1),而在五類別之外,還有一個 Expiration 類別(下圖#2)。
下文將從五個指標包括 Durability、How many AZ、Availability、Retrieve Time 和 Retrive Frequency,兩大成本 Storage Cost 與 Retrieve Cost,來細部比較 AWS S3 五大儲存類別的不同之處。
假設以 × 代表備份數量,可以看到五大儲存方案的 Durability 都是一樣高的,如下圖:
(為方便講解,此處假設為 5 個備份數量,實際上並非只能存 5 個備份數量。)
AWS S3 五大儲存類別分別會存在幾個 AZ 上呢?
Standard 類別的情況下,在文件上說是大於等於 3 個 AZ,這裡以 5 個 ○ 來代表(下圖#1)。
S3 Standard-IA 類別的情況下,在文件上也是寫大於等於 3 個 AZ,不過 S3 Standard-IA 可存到的 AZ 數量會比 S3 Standard 少一點,故以 4 個 ○ 代表(下圖#2)。
S3 One Zone-IA 則如同其名稱,只會儲存在 1 個 Availability zone 上(下圖#3)。
S3 Glacier 及 S3 Glacier Deep Archive 則是幾乎與 S3 Standard 一樣,可存到的 AZ 數量是幾乎差不多的,所以同樣用 5 個 ○ 代表(下圖#4)。
Durability、AZ 的數量及 Availability 三者之間的關係是什麼?
在 S3 Standard 的儲存類別下,假設把 5 個備份平分到 5 個 AZ 上儲存,也就是說,就算 4 個 AZ 上的資料都壞掉了,資料還是完整保留在剩下 1 個沒有壞掉的 AZ 上,而能夠對外完整的運作。這就是 S3 Standard 的 Availability 非常高的原因(下圖#1)。
在 S3 Standard-IA 的儲存類別下,是把 5 個備份存在 4 個 AZ 上, Availability 自然會低一點點(下圖#2)。
在 S3 One Zone-IA 的儲存類別下,全部 5 個備份都在 1 個 AZ 上,很明顯的,只要這個僅此唯一的 AZ 壞掉的話,資料就會不見,所以 S3 One Zone-IA 的 Availability 是最差的(下圖#3)。
而 S3 Glacier 與 S3 Glacier Deep Archive 等同於 S3 Standard,所以 Availability 同樣是非常高的(下圖#4)。
Retrieve Time 指的是拿取一個資料所需花費的時間。
前三個類別,也就是 S3 Standard、S3 Standard-IA 及 S3 One Zone-IA,拿取一個檔案的速度都是非常快的(下圖#1),沒有太大的差異。
S3 Glacier 獲取資料的速度很慢(下圖#2),S3 Glacier Deep Archive 取得資料的速度則超級慢(下圖#3)。
Retrieve Frequency 指的是拿取資料的頻率。
通常在 S3 Standard 裡面存放的會是存取拜訪頻率最高的資料,而 S3 Glacier Deep Archive 則是存放使用頻率最低的資料。
S3 五大儲存類別的資料取用頻率如下圖所示,從左而右,由高到低。
之所以列出這麼多指標,最重要的目的是為了節省使用S3儲存空間的成本,而節省的成本主要有兩種,分別是 Storage Cost (下圖#1)跟 Retrieve Cost (下圖#2)。
Storage Cost 從左到右,由貴到便宜(下圖#1);反之,Retrieve Cost 由左到右,由便宜到貴(下圖#2)。
下圖橘色底色的部分即是會選擇節省花費的部分。
為了節省成本,會利用 S3 Standard-IA 與 S3 One Zone-IA,來犧牲一點 Availability,以換取較便宜的儲存花費(下圖#1)。同時也會透過 S3 Glacier 和 S3 Glacier Deep Archive,犧牲拿取資料的等待時間,換取更低的成本(下圖#2)。
但又看到下方拿取資料的成本,從左至右,是越來越高的(下圖#1),而針對此問題,可以來往上看到 Retrive Frequency,從左到右,是大幅下降的(下圖#2)。
簡單來說,儘管取用資料的成本越來越高(下圖#1),但同時,取用資料的成本(下圖#1)會跟取用資料的頻率抵銷掉(下圖#2)。結果會發現,真正拿到省錢的地方,其實也就在 Storage Cost 上(下圖#3)。
針對這五大儲存類別,除了可以透過手動,慢慢把檔案從左到右移過去(下圖#1),AWS 還有提供一個好用的功能,叫作 Lifecycle Management (下圖#2),可以透過設定自動化的方式,讓檔案根據特定的設定,一步一步的往右邊的儲存類別移動,也一步一步的來節省移動成本。
當檔案變成 Expire 狀態時,S3 就會定期把這些檔案給刪除掉,進而節省更多成本,如下圖:
下圖為本文推導出 AWS S3 Storage Class 的架構圖。
在多項指標的比較下,我們更深入的了解在五大儲存類別上的使用時機。
並且在使用 S3 儲存空間上,可以選擇犧牲一點 Availability 及 Retieve Time,節省儲存及拿取資料的成本,並透過 Lifecycle Management 來得到較低的移動資料成本。
簡單來說,若是能依據指標良好判別,對資料做適當分類,設定生命週期管理,即能讓 S3 儲存空間發揮更好的效用。
那麼明天,我們將接著介紹「儲存寶石:【Lab】S3 儲存類別 & 生命週期管理」!
您好,
感謝您分享實用的 AWS 教學,
這邊有個小問題想請問,
文章中有提到:
「 在 S3 Standard 的儲存類別下,假設把 5 個備份平分到 5 個 AZ 上儲存,也就是說,就算 4 個 AZ 上的資料都壞掉了,資料還是完整保留在剩下 1 個沒有壞掉的 AZ 上,而能夠對外完整的運作。這就是 S3 Standard 的 Availability 非常高的原因(下圖#1)。 」
想釐清您在這邊提到 Availability 的觀念,
請問這邊提到的 Availability 是指把資料備份在不同的地方然後就算有一個地方資料損壞了,
還是可以從其他地方找回資料,並且繼續使用服務。
如果是的話,想請問這觀念和 Durability 差在哪裡?
上網找到相關資料定義 Availability:
「 Availability is how much time the storage provider guarantees that your data and services are available to you. 」
資料來源
意思好像是可以提供服務的時間保證,而不是對於資料會不會遺失的保證。
目前看完網路上的資料得到的結論,
Durability 是資料遺失程度的保證,
Availability 是系統服務可以使用時間的保證。
因此對於您提到 Availability 的觀念有點疑惑,
因為裡面好像也有包含資料遺失程度保證的觀念,
因此想要向您詢問,
以釐清自己的觀念。
感謝