

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 封存 Amazon EBS 快照的指導方針和最佳實務
<a name="archiving-guidelines"></a>

本節為封存快照提供一些指導方針和最佳實務。

**Topics**
+ [封存磁碟區的唯一快照](#guidelines-single-snapshot)
+ [封存單一磁碟區的增量快照](#guidelines-incremental-snapshot)
+ [基於合規原因，封存完整快照](#guidelines-full-snapshot)
+ [判斷標準層儲存成本是否降低](#archive-guidelines)

## 封存磁碟區的唯一快照
<a name="guidelines-single-snapshot"></a>

當一個磁碟區只有一個快照時，快照的大小一律與建立快照時寫入至磁碟區的區塊相同。當您封存這類快照時，標準層中的快照會轉換為同等大小的完整快照，並將其從標準層移至封存層。

封存這些快照可協助您以較低的儲存成本節省費用。如果不再需要來源磁碟區，您可以刪除該磁碟區，以進一步節省儲存成本。

![\[建立快照、封存該快照，然後刪除來源磁碟區。\]](http://docs.aws.amazon.com/zh_tw/ebs/latest/userguide/images/archive-single-snap.png)


## 封存單一磁碟區的增量快照
<a name="guidelines-incremental-snapshot"></a>

當您封存增量快照時，該快照會轉換為完整快照，且其會移至封存層。例如，在下圖中，如果封存 **Snap B** (快照 B)，快照會轉換為大小為 10 GiB 的完整快照，並移至封存層。同樣地，如果您封存 **Snap C** (快照 C)，則封存層中完整快照的大小為 14 GiB。

![\[封存磁碟區的增量快照。\]](http://docs.aws.amazon.com/zh_tw/ebs/latest/userguide/images/snapshot_1e.png)


如果您要封存快照以降低標準層中的儲存成本，則不應將第一個快照封存在一組增量快照中。這些快照由快照關係中的後續快照參考。在大多數情況下，封存這些快照並不會降低儲存成本。

**注意**  
您不應將最後一個快照封存在一組增量快照中。最後一個快照是最近取得的磁碟區快照。您將需要此快照在標準層中，如果您想要在磁碟區損毀或遺失時從這個快照建立磁碟區的話。

如果您封存的快照包含關係中後續快照所參考的資料，與參考資料相關聯的資料儲存與儲存成本會配置給關係中的後續快照。在此情況下，封存快照將不會降低資料儲存或儲存成本。例如，在上述影像中，如果您封存 **Snap B** (快照 B)，其 4 GiB 的資料屬於 **Snap C** (快照 C)。 在此情況下，您的整體儲存成本會增加，因為您對 **Snap B** (快照 B) 的完整版本產生儲存成本，而且標準層的儲存成本維持不變。

如果您封存 **Snap C** (快照 C)，則標準層儲存將減少 4 GiB，因為關係中的任何其他後續快照都不會參考資料。您的封存層儲存將增加 14 GiB，因為快照會轉換為完整快照。

## 基於合規原因，封存完整快照
<a name="guidelines-full-snapshot"></a>

基於合規原因，您可能需要根據每月、每季或每年建立磁碟區的完整備份。對於這些備份，您可能需要獨立快照，而不需要向後或向前參考快照關係中的其他快照。使用 EBS 快照封存來封存的快照是完整快照，而且它們不會參考關係中的其他快照。此外，您可能需要為合規理由保留這些快照數年。EBS 快照封存可讓您以符合成本效益的方式封存這些完整快照，以進行長期保留。

## 判斷標準層儲存成本是否降低
<a name="archive-guidelines"></a>

如果您想要封存增量快照以降低儲存成本，則應考慮封存層中完整快照的大小，以及標準層中儲存的降低。本節說明如何做到這一點 。

**重要**  
API 回應是在呼叫 API 的時間點準確的資料。由於快照關係中的變更，因此與快照相關聯的資料變更時，API 回應可能會有所不同。

若要判斷標準層中的儲存與儲存成本是否降低，請使用下列步驟。

1. 對於您要存檔的快照，請檢查完整快照大小及其建立來源磁碟區。使用 [ describe-snapshots](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-snapshots.html) 命令，對於 `--snapshot-id`，指定您要封存的快照 ID。

   ```
   $ aws ec2 describe-snapshots --snapshot-id snapshot_id
   ```

   `FullSnapshotSizeInBytes` 回應值表示完整快照大小，以位元組為單位，`VolumeId`回應值表示來源磁碟區的 ID。

   例如，下列命令傳回快照 `snap-09c9114207084f0d9` 的相關資訊。

   ```
   $ aws ec2 describe-snapshots --snapshot-id snap-09c9114207084f0d9
   ```

   下列範例輸出顯示完整快照大小為`5678912341`位元組 (5.28 GiB)，而來源磁碟區為 。 `vol-0f3e2c292c52b85c3`

   ```
   {
       "Snapshots": [
           {
               "Description": "", 
               "Tags": [], 
               "Encrypted": false, 
               "VolumeId": "vol-0f3e2c292c52b85c3",
               "State": "completed", 
               "VolumeSize": 8, 
               "StartTime": "2021-11-16T08:29:49.840Z", 
               "Progress": "100%", 
               "OwnerId": "123456789012", 
               "FullSnapshotSizeInBytes" : "5678912341",
               "SnapshotId": "snap-09c9114207084f0d9"
           }
       ]
   }
   ```

1. 尋找已從來源磁碟區建立的所有快照。使用 [describe-snapshots](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-snapshots.html) 命令。指定 `volume-id` 篩選條件，並針對篩選條件值，指定來自上一個步驟的磁碟區 ID。

   ```
   $ aws ec2 describe-snapshots --filters "Name=volume-id, Values=volume_id"
   ```

   例如，下列命令會傳回已從磁碟區 `vol-0f3e2c292c52b85c3` 建立的所有快照。

   ```
   $ aws ec2 describe-snapshots --filters "Name=volume-id, Values=vol-0f3e2c292c52b85c3"
   ```

   以下是命令輸出，其中指出這些快照是從磁碟區 `vol-0f3e2c292c52b85c3` 建立的。

   ```
   {
       "Snapshots": [
           {
               "Description": "", 
               "Tags": [], 
               "Encrypted": false, 
               "VolumeId": "vol-0f3e2c292c52b85c3", 
               "State": "completed", 
               "VolumeSize": 8, 
               "StartTime": "2021-11-14T08:57:39.300Z",
               "Progress": "100%", 
               "OwnerId": "123456789012", 
               "SnapshotId": "snap-08ca60083f86816b0"
           }, 
           {
               "Description": "", 
               "Tags": [], 
               "Encrypted": false, 
               "VolumeId": "vol-0f3e2c292c52b85c3", 
               "State": "completed", 
               "VolumeSize": 8, 
               "StartTime": "2021-11-15T08:29:49.840Z", 
               "Progress": "100%", 
               "OwnerId": "123456789012", 
               "SnapshotId": "snap-09c9114207084f0d9"
           }, 
           {
               "Description": "01", 
               "Tags": [], 
               "Encrypted": false, 
               "VolumeId": "vol-0f3e2c292c52b85c3", 
               "State": "completed", 
               "VolumeSize": 8, 
               "StartTime": "2021-11-16T07:50:08.042Z", 
               "Progress": "100%", 
               "OwnerId": "123456789012", 
               "SnapshotId": "snap-024f49fe8dd853fa8"
           }
       ]
   }
   ```

1. 使用上一個命令的輸出，依快照的建立時間排序，從最舊到最新。每個快照的 `StartTime` 回應參數指出其建立時間，以 UTC 時間格式表示。

   例如，從最舊到最新的建立時間在上一個步驟中傳回的快照，如下所示：

   1. `snap-08ca60083f86816b0` （最舊 – 在您要封存的快照之前建立）

   1. `snap-09c9114207084f0d9` (要封存的快照)

   1. `snap-024f49fe8dd853fa8` (最新 – 在您要封存的快照之後建立)

1. 識別您要封存的快照之前和之後立即建立的快照。在此情況下，您想要封存快照 `snap-09c9114207084f0d9`，這是在三個快照組成的快照集中建立的第二個增量快照。快照 `snap-08ca60083f86816b0` 是在之前立即建立，而快照 `snap-024f49fe8dd853fa8` 是在之後立即建立。

1. 在您要封存的快照中尋找未參考的資料。首先，尋找在您要封存的快照之前立即建立的快照與您要封存的快照之間不同的區塊。使用 [list-changed-blocks](https://docs.aws.amazon.com/cli/latest/reference/ebs/list-changed-blocks.html) 命令。對於 `--first-snapshot-id`，指定在您要封存的快照之前立即建立的快照 ID。對於 `--second-snapshot-id`，指定您要封存的快照 ID。

   ```
   $ aws ebs list-changed-blocks --first-snapshot-id snapshot_created_before --second-snapshot-id snapshot_to_archive
   ```

   例如，下列命令會顯示區塊的區塊索引，這些區塊在快照 `snap-08ca60083f86816b0` (在您要封存的快照之前建立的快照) 與快照 `snap-09c9114207084f0d9` (您要封存的快照) 之間有所不同。

   ```
   $ aws ebs list-changed-blocks --first-snapshot-id snap-08ca60083f86816b0 --second-snapshot-id snap-09c9114207084f0d9
   ```

   以下顯示命令輸出，省略了一些區塊。

   ```
   {
       "BlockSize": 524288, 
       "ChangedBlocks": [
           {
               "FirstBlockToken": "ABgBAX6y+WH6Rm9y5zq1VyeTCmEzGmTT0jNZG1cDirFq1rOVeFbWXsH3W4z/", 
               "SecondBlockToken": "ABgBASyx0bHHBnTERu+9USLxYK/81UT0dbHIUFqUjQUkwTwK5qkjP8NSGyNB", 
               "BlockIndex": 4
           }, 
           {
               "FirstBlockToken": "ABgBAcfL+EfmQmlNgstqrFnYgsAxR4SDSO4LkNLYOOChGBWcfJnpn90E9XX1", 
               "SecondBlockToken": "ABgBAdX0mtX6aBAt3EBy+8jFCESMpig7csKjbO2Ocd08m2iNJV2Ue+cRwUqF", 
               "BlockIndex": 5
           }, 
           {
               "FirstBlockToken": "ABgBAVBaFJmbP/eRHGh7vnJlAwyiyNUi3MKZmEMxs2wC3AmM/fc6yCOAMb65", 
               "SecondBlockToken": "ABgBAdewWkHKTcrhZmsfM7GbaHyXD1Ctcn2nppz4wYItZRmAo1M72fpXU0Yv", 
               "BlockIndex": 13
           }, 
           {
               "FirstBlockToken": "ABgBAQGxwuf6z095L6DpRoVRVnOqPxmx9r7Wf6O+i+ltZ0dwPpGN39ijztLn", 
               "SecondBlockToken": "ABgBAUdlitCVI7c6hGsT4ckkKCw6bMRclnV+bKjViu/9UESTcW7CD9w4J2td", 
               "BlockIndex": 14
           }, 
           {
               "FirstBlockToken": "ABgBAZBfEv4EHS1aSXTXxSE3mBZG6CNeIkwxpljzmgSHICGlFmZCyJXzE4r3", 
               "SecondBlockToken": "ABgBAVWR7QuQQB0AP2TtmNkgS4Aec5KAQVCldnpc91zBiNmSfW9ouIlbeXWy", 
               "BlockIndex": 15
           },
           .....
           {
               "SecondBlockToken": "ABgBAeHwXPL+z3DBLjDhwjdAM9+CPGV5VO5Q3rEEA+ku50P498hjnTAgMhLG", 
               "BlockIndex": 13171
           }, 
           {
               "SecondBlockToken": "ABgBAbZcPiVtLx6U3Fb4lAjRdrkJMwW5M2tiCgIp6ZZpcZ8AwXxkjVUUHADq", 
               "BlockIndex": 13172
           }, 
           {
               "SecondBlockToken": "ABgBAVmEd/pQ9VW9hWiOujOAKcauOnUFCO+eZ5ASVdWLXWWC04ijfoDTpTVZ", 
               "BlockIndex": 13173
           }, 
           {
               "SecondBlockToken": "ABgBAT/jeN7w+8ALuNdaiwXmsSfM6tOvMoLBLJ14LKvavw4IiB1d0iykWe6b", 
               "BlockIndex": 13174
           }, 
           {
               "SecondBlockToken": "ABgBAXtGvUhTjjUqkwKXfXzyR2GpQei/+pJSG/19ESwvt7Hd8GHaUqVs6Zf3", 
               "BlockIndex": 13175
           }
       ], 
       "ExpiryTime": 1637648751.813, 
       "VolumeSize": 8
   }
   ```

   接下來，使用相同的命令來尋找區塊，這些區塊在您要封存的快照與之後立即建立的快照之間有所不同。對於 `--first-snapshot-id`，指定您要封存的快照 ID。對於 `--second-snapshot-id`，指定在您要封存的快照之後立即建立的快照 ID。

   ```
   $ aws ebs list-changed-blocks --first-snapshot-id snapshot_to_archive --second-snapshot-id snapshot_created_after
   ```

   例如，下列命令會顯示區塊的區塊索引，這些區塊在快照 `snap-09c9114207084f0d9` (您要封存的快照) 與快照 `snap-024f49fe8dd853fa8` (在您要封存的快照之後建立的快照) 之間有所不同。

   ```
   $ aws ebs list-changed-blocks --first-snapshot-id snap-09c9114207084f0d9 --second-snapshot-id snap-024f49fe8dd853fa8
   ```

   以下顯示命令輸出，省略了一些區塊。

   ```
   {
       "BlockSize": 524288, 
       "ChangedBlocks": [
           {
               "FirstBlockToken": "ABgBAVax0bHHBnTERu+9USLxYK/81UT0dbSnkDk0gqwRFSFGWA7HYbkkAy5Y", 
               "SecondBlockToken": "ABgBASEvi9x8Om7Htp37cKG2NT9XUzEbLHpGcayelomSoHpGy8LGyvG0yYfK", 
               "BlockIndex": 4
           }, 
           {
               "FirstBlockToken": "ABgBAeL0mtX6aBAt3EBy+8jFCESMpig7csfMrI4ufnQJT3XBm/pwJZ1n2Uec", 
               "SecondBlockToken": "ABgBAXmUTg6rAI+v0LvekshbxCVpJjWILvxgC0AG0GQBEUNRVHkNABBwXLkO", 
               "BlockIndex": 5
           }, 
           {
               "FirstBlockToken": "ABgBATKwWkHKTcrhZmsfM7GbaHyXD1CtcnjIZv9YzisYsQTMHfTfh4AhS0s2", 
               "SecondBlockToken": "ABgBAcmiPFovWgXQio+VBrxOqGy4PKZ9SAAHaZ2HQBM9fQQU0+EXxQjVGv37", 
               "BlockIndex": 13
           }, 
           {
               "FirstBlockToken": "ABgBAbRlitCVI7c6hGsT4ckkKCw6bMRclnARrMt1hUbIhFnfz8kmUaZOP2ZE", 
               "SecondBlockToken": "ABgBAXe935n544+rxhJ0INB8q7pAeoPZkkD27vkspE/qKyvOwpozYII6UNCT", 
               "BlockIndex": 14
           }, 
           {
               "FirstBlockToken": "ABgBAd+yxCO26I+1Nm2KmuKfrhjCkuaP6LXuol3opCNk6+XRGcct4suBHje1", 
               "SecondBlockToken": "ABgBAcPpnXz821NtTvWBPTz8uUFXnS8jXubvghEjZulIjHgc+7saWys77shb", 
               "BlockIndex": 18
           },
           .....
           {
               "SecondBlockToken": "ABgBATni4sDE5rS8/a9pqV03lU/lKCW+CTxFl3cQ5p2f2h1njpuUiGbqKGUa", 
               "BlockIndex": 13190
           }, 
           {
               "SecondBlockToken": "ABgBARbXo7zFhu7IEQ/9VMYFCTCtCuQ+iSlWVpBIshmeyeS5FD/M0i64U+a9", 
               "BlockIndex": 13191
           }, 
           {
               "SecondBlockToken": "ABgBAZ8DhMk+rROXa4dZlNK45rMYnVIGGSyTeiMli/sp/JXUVZKJ9sMKIsGF", 
               "BlockIndex": 13192
           }, 
           {
               "SecondBlockToken": "ABgBATh6MBVE904l6sqOC27s1nVntFUpDwiMcRWGyJHy8sIgGL5yuYXHAVty", 
               "BlockIndex": 13193
           }, 
           {
               "SecondBlockToken": "ABgBARuZykaFBWpCWrJPXaPCneQMbyVgnITJqj4c1kJWPIj5Gn61OQyy+giN", 
               "BlockIndex": 13194
           }
       ], 
       "ExpiryTime": 1637692677.286, 
       "VolumeSize": 8
   }
   ```

1. 比較前一個步驟中兩個命令傳回的輸出。如果相同的區塊索引出現在兩個指令輸出中，則表示區塊包含未參考的資料。

   例如，前一個步驟中的命令輸出指示區塊 4、5、13 和 14 對快照 `snap-09c9114207084f0d9` 是唯一的，並且它們不會被快照關係中的任何其他快照參考。

   若要判斷標準層儲存是否減少，請將兩個命令輸出中出現的區塊數目乘以 512 KiB，也就是快照區塊大小。

   例如，如果 9,950 個區塊索引出現在兩個命令輸出中，則表示您將減少標準層儲存約 4.85 GiB (9,950 個區塊 \$1 512 KiB = 4.85 GiB)。

1. 判斷將未參考區塊儲存在標準層 90 天的儲存成本。將此值與封存層中步驟 1 所述儲存完整快照的成本進行比較。假設您沒有在最短 90 天期間從封存層還原完整快照，您可以比較這些值來判斷節省的成本。如需詳細資訊，請參閱[封存 Amazon EBS 快照的定價和帳單](snapshot-archive-pricing.md)。