Azure Blob Storage

Azure Blob Storage 學習心得

2023-04-08

什麼是 Azure Blob Storage

在學習雲端服務的過程中,遇到需要儲存大量非結構化資料的情境時,通常會需要一個無上限、高可用性的儲存空間。在微軟的 Azure 生態系中,這個服務就是 Azure Blob Storage(二進位大型物件儲存體)。

Blob Storage 主要用來存放任何格式的文字或二進位資料,像是圖片、影片、備份檔案、日誌檔(log),或是網頁應用程式需要提供給使用者的靜態檔案。它的設計可以應付從單一網站的圖床,到企業級的巨量資料分析來源。

階層結構

Azure Blob Storage 的資源組織方式有三個主要層級:Storage Account(儲存體帳戶)、Container(容器)和 Blob(二進位大型物件)。

1. Storage Account (儲存體帳戶)

這是使用 Azure 儲存體服務的最上層節點。所有的 Blob 都必須建立在儲存體帳戶之中。帳戶名稱會成為主要網址的一部分(例如:https://<你的帳戶名稱>.blob.core.windows.net)。在這裡可以設定儲存體的安全層級、備援機制(如本地備援 LRS 或跨區域備援 GRS)等總體配置。

2. Container (容器)

容器的概念很像檔案系統中的「資料夾」,用來組織和管理一組 Blob。一個儲存體帳戶可以包含無限多個容器,而一個容器也可以存放無限多個 Blob。 需要特別注意的是,容器不能再包一層容器(沒有子資料夾的概念),雖然我們可以在 Blob 的名稱中加入斜線(例如 images/photo.png)來模擬出虛擬目錄的結構,但本質上資源還是只有帳戶、容器和 Blob 這三層。 另外,存取權限的控制也是在容器這個層級設定的,可以決定裡面的資料是私有、還是可以公開存取。

3. Blob (二進位大型物件)

Blob 就是實際儲存的檔案本身。

Blob 的三種類型

Azure 提供了三種不同設計的 Blob 類型,以對應不同的寫入與讀取需求:

  1. Block Blobs (區塊 Blob) 最常用的類型,適合用來儲存大部分的一般檔案,如文字檔、圖片、影片等。它將資料切分成多個區塊來上傳,最高可以支援到大約 4.75 TB(舊版)到 190 TB(新版)的單一檔案大小。對於讀取寫入都是整體的檔案,這是最佳選擇。

  2. Append Blobs (附加 Blob) 專門為「只附加」的操作最佳化。它跟 Block Blob 類似,但所有的寫入操作都強制被加在檔案的最後面。這個特性非常適合用來儲存系統或應用程式的日誌檔(Log),因為你只需要不斷把新的紀錄寫入檔尾,而不需要修改前面的內容。

  3. Page Blobs (分頁 Blob) 被設計為頻繁的隨機讀寫操作。它的讀寫是以 512-byte 的 page 為單位,主要應用於 Azure 虛擬機(VM)的虛擬硬碟(VHD)檔案。如果是資料庫這類需要高效能隨機存取的場景,就會使用 Page Blob。

存取層 (Access Tiers)

為了節省成本,Azure Blob Storage 提供了不同的存取層級:

  • Hot (經常存取):適合經常被讀寫的資料,儲存成本較高,但存取費用較低。
  • Cool (非經常存取):適合存放至少 30 天不會動到的資料,儲存成本較低,存取費用較高。
  • Archive (封存):適合長期備份、可能好幾個月都不會讀寫的資料(需保存至少 180 天),儲存成本極低,但讀取資料需要經過「解凍」的過程(可能耗時幾小時),且存取費用最高。

小結

Azure Blob Storage 是一個概念簡單卻極具彈性的雲端儲存方案。理解它的三層式結構(帳戶、容器、檔案)以及三種 Blob 類型的差異後,在面對系統架構設計時,就能更準確地選擇最符合成本與效能需求的儲存方式。對於需要管理大量靜態資源或是做系統備份的專案來說,是非常實用且核心的基礎設施。