

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 还原 Amazon EBS 卷或 EC2 实例
<a name="restore"></a>

如果您只需要恢复连接到 EC2 实例的单个卷，则可以单独恢复该卷，分离现有卷，然后将恢复的卷连接到 EC2 实例。如果您需要恢复整个 EC2 实例，包括其所有关联卷，则必须使用实例的 Amazon 机器映像 (AMI) 备份。

为了减少恢复时间和对相关应用程序和进程的影响，您的恢复过程必须考虑它所取代的资源。为了获得最佳结果，请定期在较低环境（例如非生产环境）中测试恢复过程，以验证您的过程是否符合恢复点目标 (RPO) 和恢复时间目标 (RTO)，以及恢复过程是否按预期运行。考虑恢复过程将如何影响依赖于您要恢复实例的应用程序和服务，然后根据需要协调恢复。尽量自动化并测试恢复过程，以降低恢复过程失败或实施不一致的风险。

如果您使用 Elastic Load Balancing，并且有多个实例为流量提供服务，则可能会使出现故障或受损的实例停止服务。然后，您可以恢复一个新实例来替换它，同时其他实例继续为流量提供服务，而不会对用户造成干扰。

描述的以下还原过程适用于未使用 Elastic Load Balancing 的实例：
+ 从 EBS 快照恢复单个文件和目录
+ 从Amazon EBS 快照还原 EBS 卷
+ 从 EBS 快照创建或恢复 EC2 实例
+ 从 AMI 还原正在运行的实例

## 从 EBS 快照恢复文件和目录
<a name="restore-files"></a>

[EBS 快照](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html)提供了用于创建快照的原始卷的 point-in-time精确副本。要还原单个文件或目录，必须执行以下操作：

1. [首先，从 EBS 快照中恢复卷](https://docs.aws.amazon.com/prescriptive-guidance/latest/backup-recovery/restore.html#restore-snapshot)，该快照包含文件或目录。

1. 将卷附加到要将文件还原到的 EC2 实例。

1. 将文件从还原卷复制到 EC2 实例卷。

1. 分离并删除已恢复的卷。

## 从Amazon EBS 快照还原 EBS 卷
<a name="restore-snapshot"></a>



您可以恢复连接到现有 EC2 实例的卷，方法是根据其快照创建卷并将其附加到您的实例。您可以使用控制台、 AWS CLI或 API 操作根据现有快照创建卷。然后，您可以使用操作系统将卷挂载到实例。

请注意，来自 Amazon EBS 快照的数据会异步加载到 EBS 卷中。如果应用程序访问未加载数据的卷，则从 Amazon S3 加载数据时，延迟将比正常情况更高。为避免对延迟敏感的应用程序造成这种影响，您有两种选择：
+ 您可以[初始化 EBS 卷](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-initialize.html)。
+ Amazon EBS 支持 [快速快照恢复](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-fast-snapshot-restore.html)，无需初始化您的卷，但需额外付费。

如果要更换必须使用相同装入点的卷，请卸载该卷，以便可以将新卷装入原处。要卸载该卷，请先停止所有正在使用该卷的进程。如果要替换根卷，则在分离根卷之前必须先停止实例。

例如，按照以下步骤使用控制台将卷恢复到之前的 point-in-time备份：

1. 在 Amazon EC2 控制台的 **弹性块存储** 菜单上，选择 **快照**。

1. 搜索要还原的快照，然后将其选中。

1. 选择 **Actions （操作）**，然后选择 **Create Volume （创建卷）**。

1. 在与 EC2 实例相同的可用区中创建新卷。

1. 在 Amazon EC2 控制台选择实例。

1. 在实例详细信息中，在**根设备**条目或**块设备**条目中记下要替换的设备名称。

1. 附加卷。根卷和非根卷的过程有所不同。

   根卷：

   1. 请停止 EC2 实例。

   1. 在 **EC2 弹性块存储卷**菜单上，选择要替换的根卷。

   1. 依次选择 **操作** 和 **分离卷**。

   1. 在 **EC2 弹性块存储卷**菜单上，选择新卷。

   1. 依次选择 **操作** 和 **附加卷**。

   1. 选择要将卷连接到的实例，并使用您之前记下的相同设备名称。

   非根卷：

   1. 在 **EC2 Elastic Block Store Volumes （EC2 弹性块存储卷）**菜单上，选择要替换的非根卷。

   1. 依次选择 **操作** 和 **分离卷**。

   1. 在 **EC2 弹性块存储卷**菜单上选择新卷，然后依次选择 **操作**、**附加卷**，即可连接新卷。选择要将其附加到的实例，然后选择可用的设备名称。

   1. 使用实例的操作系统，卸载现有卷，然后将新卷装入原处。

      在 Linux 操作系统下，您可以使用 `umount` 命令。在 Windows 中，您可以使用逻辑卷管理器 (LVM)，例如磁盘管理系统实用程序。

   1. 在 **EC2 弹性块存储卷** 菜单上选择该卷，然后依次选择**操作**、**分离卷**，即可分离之前可能要替换的任何卷。

您也可以将 AWS CLI 与操作系统命令结合使用来自动执行这些步骤。

## 从 EBS 快照创建或恢复 EC2 实例
<a name="instance-from-snapshot"></a>

要创建用于还原整个 EC2 实例的备份，我们建议创建 Amazon 机器映像 (AMI)。AMI 会捕获虚拟化类型等计算机信息。他们还为连接到 EC2 实例的每个卷创建快照，包括其设备映射，以便可以在相同的配置下恢复快照。

**注意**  
在大多数情况下， AMIs 对于 Windows，红帽、SUSE 和 SQL Server 需要在 AMI 上提供正确的许可信息。有关更多信息，请参阅[了解 AMI 计费信息](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html)。从快照创建 AMI 时，`RegisterImage` 操作会从快照的元数据获取正确的账单信息，但这需要存在相应的元数据。要验证是否应用了正确的账单信息，请检查新 AMI 上的**平台详细信息**字段。如果该字段为空或不匹配预期的操作系统代码（例如 Windows、Red Hat、SUSE 或 SQL），则 AMI 创建失败，您应丢弃 AMI 并按照[从实例创建 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#how-to-create-ebs-ami) 中的说明操作。

如果您必须使用 EBS 快照来恢复实例，请先从 EBS 快照创建 AMI，该快照将成为新 EC2 实例的根卷：

1. 在 Amazon EC2 控制台的 **弹性块存储** 菜单上，选择 **快照**。

1. 搜索将用于为您的新 EC2 实例创建根卷的快照，然后将其选中。

1. 依次选择 **Actions （操作）** 和 **Create Image from Snapshot （从快照创建映像）**。

1. 输入映像名称（例如 `YYYYMMDD-restore-for-i-012345678998765de`），然后为新映像选择相应的选项。

1. （仅适用于 Windows、Red Hat、SUSE 和 SQL Server）要验证是否应用了正确的账单信息，请检查新 AMI 上的**平台详细信息**字段。如果该字段为空或不匹配预期的操作系统代码（例如 **Windows** 或 **Red Hat**），则 AMI 创建失败，您应丢弃 AMI 并按照[从实例创建 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#how-to-create-ebs-ami) 中的说明操作。

映像创建并可用后，您可以启动一个新的 EC2 实例，该实例将使用 EBS 快照作为根卷。

## 从 AMI 还原正在运行的实例
<a name="restore-ami"></a>

您可以从 AMI 备份中启动新实例，以替换现有正在运行的实例。一种方法是停止现有实例，在从 AMI 启动新实例时将其保持离线状态，然后执行所有必要的更新。这种方法降低了两个实例同时运行时发生冲突的风险。如果您的实例提供的服务出现故障，或者您在维护时段内执行恢复，则这是一种可以接受的方法。测试新实例后，您可以重新指定分配给旧实例的任何弹性 IP 地址。然后，您可以更新任何域名服务 (DNS) 记录以指向新实例。

但是，如果在还原期间必须最大限度地减少服务中实例的停机时间，请考虑从 AMI 备份启动和测试新实例。然后将现有实例替换为新实例。

当两个实例都在运行时，您必须防止新实例造成任何平台级或应用程序级冲突。例如，使用相同 SIDs和计算机名称运行的加入域的 Windows 实例可能会遇到问题。对于需要唯一标识符的网络应用程序和服务，您可能会遇到类似问题。

为防止其他服务器和服务在新实例准备就绪之前连接到该实例，请使用安全组暂时阻止新实例的所有入站连接，但您自己用于访问和测试的 IP 地址除外。您也可以暂时阻止新实例的出站连接，以防止服务和应用程序启动对其他资源的任何连接或更新。新实例准备就绪后，停止现有实例，在新实例上启动服务和进程，然后解除对您实现的所有入站或出站网络连接的封锁。