

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

# 使用快照取代 Amazon EBS 磁碟區
<a name="ebs-restoring-volume"></a>

因為 Amazon EBS 快照快速、方便又和合乎成本效益，所以建議在 Amazon EC2 上使用該備份工具。當您從快照建立磁碟區時，會重新建立其特定時間點的狀態，而在該特定時間點前儲存的資料都保持不變。將從快照建立的磁碟區還原到執行個體，您就可以在區域間複製資料、建立測試環境、取代完全損壞或損毀的生產磁碟區，也可擷取特定檔案和目錄，並將其傳輸到另一個連接的磁碟區。如需詳細資訊，請參閱[Amazon EBS 快照](ebs-snapshots.md)。

您可以使用下列其中一個程序，將 Amazon EBS 磁碟區取代為從該磁碟區的先前快照建立的另一個磁碟區。

**需求**  
您必須在與執行個體相同的可用區域中建立磁碟區。磁碟區必須連接到相同可用區域中的執行個體。

------
#### [ Console ]

**取代磁碟區的步驟**

1. 從快照建立磁碟區，並記下新磁碟區的 ID。如需詳細資訊，請參閱[建立 Amazon EBS 磁碟區](ebs-creating-volume.md)。

1. 在 Instance (執行個體) 頁面上，選取要在其上取代磁碟區的執行個體，並寫下執行個體 ID。

   在仍然選取執行個體的情況下，選取 **Storage** (儲存) 索引標籤。在 **Block devices** (區塊型儲存設備) 區段中，找出要取代的磁碟區，然後寫下磁碟區的裝置名稱，例如 `/dev/sda1`。

1. 在**儲存**索引標籤上，選擇磁碟區 ID，然後[卸載磁碟區並從執行個體分離](ebs-detaching-volume.md#umount-detach-volume)。

1. 選取您在步驟 1 建立的新磁碟區，然後選取 **Actions** (動作)、**Attach volume** (連接磁碟區)。

   對於 **Instance** (執行個體) 和 **Device name** (裝置名稱)，輸入您在步驟 2 中寫下的執行個體 ID 和裝置名稱，然後選擇 **Attach volume** (連接磁碟區)。

1. 連線到您的執行個體，然後掛載磁碟區。如需詳細資訊，請參閱[讓 Amazon EBS 磁碟區可供使用](ebs-using-volumes.md)。

------
#### [ AWS CLI ]

**取代磁碟區的步驟**

1. 從快照建立新磁碟區。使用 [create-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-volume.html) 命令搭配 `--snapshot-id`選項。若為 `--availability-zone`，請指定與執行個體相同的可用區域。請注意輸出中新磁碟區的 ID。

   ```
   aws ec2 create-volume \
       --volume-type gp3 \
       --snapshot-id snap-0abcdef1234567890 \
       --availability-zone us-east-1a
   ```

1. 取得要取代之磁碟區的裝置名稱。使用 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令。若為 `--instance-ids`，請指定要取代磁碟區的執行個體 ID。請注意要取代之磁碟區的裝置名稱和磁碟區 ID。

   ```
   aws ec2 describe-instances \
       --instance-ids i-1234567890abcdef0 \
       --query Reservations[].Instances[].BlockDeviceMappings
   ```

1. 將要取代之磁碟區從執行個體分離。使用 [detach-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/detach-volume.html) 命令。

   ```
   aws ec2 detach-volume --volume-id vol-xxxxxxxxxxxxxxxxx
   ```

1. 將取代磁碟區連接至執行個體。使用 [attach-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/attach-volume.html) 命令。若為 `--volume-id`，請指定取代磁碟區的 ID。針對 `--instance-id`，指定要連接磁碟區的執行個體 ID。若為 `--device`，請指定您先前記下的相同裝置名稱。

   ```
   aws ec2 attach-volume \
       --volume-id vol-01234567890abcdef \
       --instance-id i-1234567890abcdef0 \
       --device /dev/sdf
   ```

1. 連線到您的執行個體，然後掛載磁碟區。如需詳細資訊，請參閱[讓 Amazon EBS 磁碟區可供使用](ebs-using-volumes.md)。

------
#### [ PowerShell ]

**取代磁碟區的步驟**

1. 從快照建立新磁碟區。使用 [New-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Volume.html) cmdlet 搭配 `-SnapshotId`選項。若為 `-AvailabilityZone`，請指定與執行個體相同的可用區域。請注意輸出中新磁碟區的 ID。

   ```
   New-EC2Volume `
       -VolumeType gp3 `
       -SnapshotId snap-0abcdef1234567890 `
       -AvailabilityZone us-east-1a
   ```

1. 取得要取代之磁碟區的裝置名稱。使用 [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet。若為 `-InstanceId`，請指定要取代磁碟區的執行個體 ID。請注意要取代之磁碟區的裝置名稱和磁碟區 ID。

   ```
   (Get-EC2Instance `
       -InstanceId i-1234567890abcdef0).Instances.BlockDeviceMappings | `
        Format-Table DeviceName, @{Name="VolumeId";Expression={$_.Ebs.VolumeId}}
   ```

1. 將要取代之磁碟區從執行個體分離。使用 [Dismount-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/Dismount-EC2Volume.html) cmdlet。

   ```
   DismountEC2Volume -VolumeId vol-xxxxxxxxxxxxxxxxx
   ```

1. 將取代磁碟區連接至執行個體。使用 [Add-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/Add-EC2Volume.html) cmdlet。若為 `-VolumeId`，請指定取代磁碟區的 ID。針對 `-InstanceId`，指定要連接磁碟區的執行個體 ID。若為 `-Device`，請指定您先前記下的相同裝置名稱。

   ```
   Add-EC2Volume`
       -VolumeId vol-01234567890abcdef `
       -InstanceId i-1234567890abcdef0 `
       -Device /dev/sdf
   ```

1. 連線到您的執行個體，然後掛載磁碟區。如需詳細資訊，請參閱[讓 Amazon EBS 磁碟區可供使用](ebs-using-volumes.md)。

------