使用 EBS 直接 API 來存取 EBS 快照的內容
您可以使用 Amazon Elastic Block Store (Amazon EBS) 直接 API 來建立 EBS 快照、將資料直接寫入快照、讀取快照上的資料,以及識別兩個快照之間的差異或變更。如果您是為 Amazon EBS 提供備份服務的獨立軟體開發廠商 (ISV),EBS 直接 API 可讓您以更輕鬆且更符合成本效益的方式透過快照追蹤 EBS 磁碟區的增量變更。這無需從快照建立新磁碟區即可完成,然後使用 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體來比較差異。
您可以直接從內部部署的資料建立增量快照到 EBS 磁碟區和雲端,以便快速災難復原。有了寫入和讀取快照的能力,您可以在災難期間將內部部署資料寫入 EBS 快照。然後在復原之後,您可以將其從快照還原到 AWS 或內部部署。您不再需要建置和維護複雜的機制來從 Amazon EBS 複製資料。
本使用者指南提供組成 EBS 直接 API 的元素概觀,以及如何有效使用這些元素的範例。如需 API 的動作、資料類型、參數和錯誤的詳細資訊,請參閱 EBS 直接 API 參考。如需有關 EBS 直接 API 支援的 AWS 區域、端點和服務配額詳細資訊,請參閱《AWS 一般參考》中的 Amazon EBS 端點和配額。
目錄
了解 EBS 直接 API
開始使用 EBS 直接 API 之前,應該先了解下列關鍵元素。
快照
快照是從 EBS 磁碟區備份資料的主要方法。使用 EBS 直接 API,您也可以將內部部署磁碟的資料備份至快照。為了節省儲存體成本,連續快照是增量式,只會包含自上一個快照之後變更的磁碟區資料。如需更多詳細資訊,請參閱 Amazon EBS 快照。
注意
EBS 直接 API 不支援 Outpost 上的公開快照和本機快照。
區塊
區塊是快照內的資料片段。每個快照可以包含數千個區塊。快照中的所有區塊都是固定大小。
區塊索引
區塊索引是一個邏輯索引,單位為 512
KiB 區塊。若要識別區塊索引,請將邏輯磁碟區中資料的邏輯位移除以區塊大小 (資料的邏輯位移/524288
)。資料的邏輯位移必須為 512
KiB 對齊。
區塊標記
區塊標記是快照中區塊的識別雜湊,用於定位區塊資料。EBS 直接 API 傳回的區塊標記是暫時的。它們會在為他們指定的到期時間戳記上變更,或者如果您執行相同快照集的另一個清單快照集或清單 Change DBlock 請求。
檢查總和
檢查總和是從資料區塊衍生的小型基準,用於偵測在傳輸或儲存期間導致的錯誤。EBS 直接 API 使用檢查總和來驗證資料完整性。當您從 EBS 快照讀取資料時,此服務會針對每個傳輸的資料區塊提供 Base64 編碼的 SHA256 檢查總和,供您進行驗證。將資料寫入 EBS 快照時,您必須為每個傳輸的資料區塊提供 Base64 編碼的 SHA256 檢查總和。此服務會使用提供的檢查總和來驗證接收的資料。如需詳細資訊,請參閱本主題後述的「使用檢查總和」。
加密
加密會將資料轉換成無法讀取的程式碼,只有有權存取用來加密資料 KMS 金鑰 的人才能解讀這些程式碼。您可以使用 EBS 直接 API 讀取和寫入加密的快照,但有一些限制。如需詳細資訊,請參閱本主題後述的「使用加密」。
API 動作
EBS 直接 API 由六個動作組成。有三個讀取動作和三個寫入動作。讀取動作為:
-
ListSnapshotBlocks – 傳回指定快照中區塊的區塊索引和區塊字符
-
ListChangedBlocks – 傳回相同磁碟區/快照關係的兩個指定快照之間不同的區塊索引和區塊字符。
-
GetSnapshotBlock – 針對指定的快照 ID、區塊索引和區塊字符傳回區塊中的資料。
寫入動作為:
-
StartSnapshot – 以現有快照的增量快照或新快照的形式啟動快照。啟動的快照將保持待處理狀態,直至使用 CompleteSnapshot 操作完成快照。
-
PutSnapshotBlock – 以個別區塊的形式,將資料新增至已啟動的快照。您必須為傳輸的資料區塊指定 Base64 編碼的 SHA256 檢查總和。傳輸完成後,該服務將驗證檢查總和。若服務運算的檢查總和與您指定的不相符,則請求失敗。
-
CompleteSnapshot – 完成處於待定狀態的已啟動快照。然後將快照變更為完成狀態。
EBS 直接 API 的定價
API 的定價
您使用 EBS 直接 API 支付的價格視您提出的請求而定。如需詳細資訊,請參閱 Amazon EBS 定價
-
ListChangedBlocks 和 ListSnapshotBlocks API 依請求收費。例如,如果您在一個區域中提出 100,000 個 ListSnapshotBlocks API 請求,該區域每 1,000 個請求收取 0.0006 USD 費用,您須支付 0.06 USD (每 1,000 個請求 0.0006 USD x 100)。
-
GetSnapshotBlock 依傳回的區塊收費。例如,如果您在一個區域中提出 100,000 個 GetSnapshotBlock API 請求,該區域每傳回 1,000 個區塊收取 0.003 USD 費用,您須支付 0.30 USD (每 1,000 個區塊收取 0.003 USD x 100)。
-
PutSnapshotBlock 依寫入的區塊收費。例如,如果您在一個區域中提出 100,000 個 PutSnapshotBlock API 請求,該區域每寫入 1,000 個區塊收取 0.006 USD 費用,您須支付 0.60 USD (每寫入 1,000 個區塊 0.006 USD x 100)。
聯網費用
資料傳輸費用
使用非 FIPS 端點,在相同 AWS 區域的 EBS 直接 API 和 Amazon EC2 執行個體間傳輸的資料免費。如需詳細資訊,請參閱 AWS 服務端點。如果其他 AWS 服務在您的資料傳輸路徑中,您須支付其相關資料處理費用。這些服務包括但不限於 PrivateLink 端點、NAT 閘道和 Transit Gateway。
VPC 介面端點
如果您正在使用 Amazon EC2 執行個體的 EBS 直接 API 或私有子網的 AWS Lambda 函式,您可以使用 VPC 介面端點 (而非使用 NAT 閘道),降低網路資料傳輸成本。如需詳細資訊,請參閱 搭配介面 VPC 端點使用 EBS 直接 API。