恢复 Amazon EBS 卷或EC2实例 - AWS 规范性指导

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

恢复 Amazon EBS 卷或EC2实例

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

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

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

描述的以下还原过程适用于未使用 Elastic Load Balancing 的实例:

  • 从EBS快照恢复单个文件和目录

  • 从 Amazon EBS 快照恢复EBS卷

  • 从EBS快照创建或恢复EC2实例

  • 从中恢复正在运行的实例 AMI

从EBS快照恢复文件和目录

EBS快照提供了用于创建快照的原始卷的 point-in-time精确副本。要还原单个文件或目录,必须执行以下操作:

  1. 首先,从包含文件或目录的EBS快照中恢复卷

  2. 将该卷连接到要将文件还原到的EC2实例。

  3. 将文件从已恢复的卷复制到您的EC2实例卷。

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

从 Amazon EBS 快照恢复EBS卷

您可以通过从现有EC2实例的快照创建卷并将其连接到您的实例来还原已挂载到现有实例的卷。您可以使用控制台 AWS CLI、或API操作从现有快照创建卷。然后,您可以使用操作系统将卷挂载到实例。

请注意,来自 Amazon EBS 快照的数据是异步加载到EBS卷中的。如果应用程序访问未加载数据的卷,则从 Amazon S3 加载数据时,延迟将比正常情况更高。为避免对延迟敏感的应用程序造成这种影响,您有两种选择:

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

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

  1. 在 Amazon EC2 控制台的 Elastic Block Store 菜单上,选择快照

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

  3. 选择 Actions (操作),然后选择 Create Volume (创建卷)

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

  5. 在 Amazon EC2 控制台上,选择实例。

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

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

    根卷:

    1. 停止实EC2例。

    2. EC2Elastic Block Store 卷菜单上,选择要替换的根卷。

    3. 依次选择 操作分离卷

    4. EC2Elastic Block Store 存储卷菜单上,选择新卷。

    5. 依次选择 操作附加卷

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

    非根卷:

    1. EC2Elastic Block Store Volumes 菜单上,选择要替换的非根卷。

    2. 依次选择 操作分离卷

    3. EC2Elastic Block Store Volumes 菜单上选择新卷,然后选择操作附加卷,即可连接新卷。选择要将其附加到的实例,然后选择可用的设备名称。

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

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

    5. 在 Ela EC2stic Block Store Volumes 菜单上选择之前可能要替换的任何卷,然后选择操作分离卷,即可将其分离。

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

从EBS快照创建或恢复EC2实例

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

但是,如果您必须使用EBS快照来恢复实例,请先AMI从快照中创建一个,该EBS快照将成为新EC2实例的根卷:

  1. 在 Amazon EC2 控制台的 Elastic Block Store 菜单上,选择快照

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

  3. 依次选择 Actions (操作)Create Image from Snapshot (从快照创建映像)

  4. 输入映像名称(例如 YYYYMMDD-restore-for-i-012345678998765de),然后为新映像选择相应的选项。

映像创建并可用后,您可以启动一个将EBS快照用于根卷的新EC2实例。

从中恢复正在运行的实例 AMI

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

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

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

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