使用 AMI 和 EBS 快照创建 EBS 卷备份 - AWS 规范性指导

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

使用 AMI 和 EBS 快照创建 EBS 卷备份

AWS 为创建和管理 AMI 和快照提供了大量选项。您可以使用满足您需求的方法。许多客户面临的一个常见问题是管理快照生命周期,并根据目的、保留策略等明确调整快照。如果没有适当的标记,快照可能会被意外删除或作为自动清理过程的一部分删除。您最终还可能要为保留的过时快照付费,因为不清楚是否还需要这些快照。

在创建快照或 AMI 之前准备 EBS 卷

在拍摄快照或创建 AMI 之前,请对 EBS 卷进行必要的准备。创建 AMI 会为连接到实例的每个 EBS 卷生成一个新的快照,因此这些准备工作也适用于 AMI。

您可以通过启动 EC2 实例制作正在使用的已附加 EBS 卷的快照。但是,快照只能捕获发出快照命令时已经写入您的 EBS 卷的数据。其中可能不包括已由应用程序或操作系统缓存的任何数据。最佳做法是让系统处于不执行任何 I/O 的状态。理想情况下,计算机不接受流量并处于停止状态,但这种情况很少见,因为全天候的 IT 运营已成为常态。如果可以将系统内存中的任何数据刷新到应用程序正在使用的磁盘上,并且可以暂停对卷的任何文件写入操作,时间长到可以创建快照,那么快照就是完整的。

要进行干净的备份,必须暂停数据库或文件系统。执行此操作的方式取决于数据库或文件系统。

数据库的过程如下所示:

  1. 如果可能,请将数据库置于热备份模式。

  2. 运行 Amazon EBS 快照命令。

  3. 使数据库退出热备份模式,或者,如果使用只读副本,则终止只读副本实例。

文件系统的过程类似,但它取决于操作系统或文件系统的功能。例如,XFS 是一个可以刷新其数据以实现一致备份的文件系统。有关更多信息,请参阅 xfs_freeze。或者,您可以使用支持冻结 I/O 的逻辑卷管理器简化此过程。

但是,如果您无法刷新或暂停向该卷写入所有文件,请执行以下操作:

  1. 从操作系统中卸载卷。

  2. 发出快照命令。

  3. 重新装载卷以获得一致且完整的快照。当快照状态为“待处理”时,您可以重新挂载并使用卷。

快照过程在后台继续,快照创建速度很快,可以及时捕获某个点。您正在备份的卷将在几秒钟内卸载。您可以安排一个较小的备份窗口,在该窗口中客户端可以正常地处理中断。

当您为充当根设备的 EBS 卷创建快照时,应在拍摄快照之前停止实例。Windows 提供了卷影复制服务 (VSS) 来帮助创建应用程序一致的快照。 AWS 提供了一个 Systems Manager 文档,您可以运行该文档对支持 VSS 的应用程序进行映像级备份。这些快照包括这些应用程序和磁盘之间的挂起事务中的数据。在备份所有已附加的卷时,您无需关闭实例或将其断开连接。有关更多信息,请参阅 AWS 文档

注意

如果您正在创建 Windows AMI 以便可以部署另一个类似实例,请使用 EC2Config 或 EC2Launch 对您的实例进行 Sysprep。然后,从已停止的实例创建一个 AMI。Sysprep 会从 Amazon EC2 Windows 实例中删除唯一信息,包括 SID、计算机名称和驱动程序。重复的 SID 可能会导致 Active Directory、Windows 服务器更新服务 (WSUS)、登录问题、Windows 卷密钥激活、Microsoft Office 和第三方产品出现问题。如果您的 AMI 用于备份目的,并且您想要在所有唯一信息完好无损的情况下还原同一实例,请不要将 Sysprep 用于您的实例。

从控制台手动创建 EBS 卷快照

在进行任何尚未在实例上全面测试的重大更改之前,请创建相应卷或整个实例的快照。例如,您可能需要在实例上升级或修补应用程序或系统软件之前创建快照。

您可以从控制台手动创建快照。在 Amazon EC2 控制台的 Elastic Block Store Volumes (弹性块存储卷)页面上,选择要备份的卷。在 Actions (操作)菜单上,选择 Create snapshot (创建快照)。您可以通过在筛选框中输入实例 ID 来搜索连接到特定实例的卷。

输入描述并添加相应的标签。添加 Name 标签以便日后更容易找到该卷。根据您的标记策略添加任何其他合适的标签。

创建 AMI

AMI 提供启动实例所需的信息。AMI 包括根卷和创建映像时附加到实例的 EBS 卷的快照。您不能仅从 EBS 快照启动新实例;必须从 AMI 启动新实例。

创建 AMI 时,将在您使用的账户和区域中创建。AMI 创建过程会为连接到实例的每个卷创建 Amazon EBS 快照,AMI 指的是这些 Amazon EBS 快照。这些快照存储在 Amazon S3 中,并且非常耐用。

创建 EC2 实例的 AMI 后,您可以使用 AMI 重新创建实例或启动实例的更多副本。您也可以将 AMI 从一个区域复制到另一区域以进行应用程序迁移或 DR。

启动实例、创建映像、然后向实例启动映像并创建映像副本的流程图。

除非您将虚拟机(例如 VMWARE 虚拟机)迁移到,否则必须从 EC2 实例创建 AMI AWS。要从 Amazon EC2 控制台创建 AMI,请选择实例,然后依次选择 操作映像创建映像

Amazon Data Lifecycle Manager

您可以使用 Amazon Data Lifecycle Manager 来自动创建、保留和删除 EBS 快照。自动化快照管理可以帮助您完成以下工作:

  • 通过实施定期备份计划来保护重要数据。

  • 按照审核员的要求或内部合规性保留备份。

  • 通过删除过时的备份来降低存储成本。

使用 Amazon Data Lifecycle Manager,您可以自动执行 EC2 实例(及其附加的 EBS 卷)或单独 EBS 卷的快照管理流程。它支持跨区域复制等选项,因此您可以自动将快照复制到其他 AWS 区域。将快照复制到备选区域是支持备选区域中灾难恢复工作和恢复选项的一种方法。您也可以使用 Amazon Data Lifecycle Manager 创建支持快速快照还原的快照生命周期策略。

Amazon Data Lifecycle Manager 是 Amazon EC2 和 Amazon EBS 的内含功能。Amazon Data Lifecycle Manager 不收取任何费用。

AWS Backup

AWS Backup 与 Amazon Data Lifecycle Manager 截然不同,因为您可以创建包含多项 AWS 服务的资源的备份计划。您可以协调备份以覆盖正在一起使用的资源,而不必单独协调资源的备份。

AWS Backup 还包括备份存储库的概念,它可以限制对已完成备份的恢复点的访问。恢复操作可以从每个资源启动, AWS Backup 而不是继续执行每个单独的资源并恢复创建的备份。 AWS Backup 还包括许多其他功能,例如审计管理和报告。有关更多信息,请参见本指南的 使用 AWS Backup 备份和恢复 部分。

执行多卷备份

如果要使用快照备份 RAID 阵列中 EBS 卷上的数据,则快照必须保持一致。原因在于这些卷的快照是独立创建的。从不同步的快照恢复 RAID 阵列中的 EBS 卷会降低阵列的完整性。

要为您的 RAID 阵列创建一组一致的快照,请使用 CreateSnapshotsAPI 操作,或者登录 Amazon EC2 控制台并选择 “弹性块存储”、“快照”、“创建快照”。

用于创建多卷快照的 “Create Snapshot (创建快照)” 屏幕。

在 RAID 配置中连接了多个卷的实例快照将合并为多卷快照。多卷快照可在连接 point-in-time到 EC2 实例的多个 EBS 卷之间提供数据协调且崩溃一致的快照。您不需要停止实例以在多个卷之间协调来实现一致性,因为快照将跨多个 EBS 卷自动拍摄。启动卷的快照后(通常是一两秒钟),文件系统可以继续其操作。

创建快照后,每个快照将视为单个快照。您可以执行与单卷快照相同的所有快照操作,例如恢复、删除、跨区域和帐户复制。您还可以标记多卷快照,就像您使用单卷快照执行的操作一样。我们建议您标记多卷快照以在恢复、复制或保留操作期间集中管理它们。有关更多信息,请参阅 AWS 文档

您也可以从逻辑卷管理器或文件系统级别的备份中执行这些备份。在这些情况下,使用传统的备份代理可通过网络备份数据。互联网和 AWS Marketplace 中提供了许多基于代理的备份解决方案。

另一种方法是创建存在于单个大卷上的主系统卷的副本。这简化了备份过程,因为只需要备份一个大卷,而且备份不在主系统上进行。但是,首先要确定单个卷在备份期间能否充分发挥作用,以及最大卷大小是否适合应用程序。

保护您的 Amazon EC2 备份

重要的是要考虑备份的安全性,并防止意外或恶意删除备份。您可以综合使用多种方法来实现此目的。为防止由于安全漏洞而丢失重要备份,我们建议您将备份复制到其他 AWS 帐户。如果您有多个 Amazon Web Services account,则可以指定一个单独的账户作为存档账户,所有其他账户都可以将备份复制到该账户。例如,您可以使用 AWS Backup 中的跨账户备份完成此操作。

您的灾难恢复计划可能还要求您能够在另一个 Amazon Web Services Region 重现 EC2 实例,以防出现区域故障。您可以通过将备份复制到同一账户内的其他区域来实现这一目标。这可以提供额外的意外删除保护层,并支持灾难恢复 (DR) 目标。AWS Backup 为跨区域备份提供支持。

考虑阻止 IAM 对 ec2: DeleteSnapshotec2: DeregisterImage 操作的权限。相反,您可以让您的保留策略和方法管理 EBS 快照和 Amazon EC2 AMI 的生命周期。阻止删除操作是为 EBS 快照实施一次写入多次读取 (WORM) 策略的一种方法。您还可以使用AWS Backup 文件库锁定,它为 EBS 快照和其他 AWS 资源提供支持。

此外,可以考虑通过阻止 ec2: 和 ec2: ModifySnapshotAttribute IAM 操作来阻止用户共享 AMI ModifyImageAttribute 和 EBS 快照。这将防止您的 AMI 和快照与组织外部的 AWS 账户共享。如果您正在使用 AWS Backup,请限制用户对备份存储库执行类似的操作。有关更多信息,请参见本指南的 使用 AWS Backup 备份和恢复 部分。

Amazon EC2 包含回收站功能,可帮助您恢复意外删除的 EBS 快照。如果您允许用户删除快照,请开启此功能,这样所需的快照就不会被永久删除。用户在删除多个快照时应特别小心,因为 Amazon EC2 控制台允许您在一次操作中选择多个快照并将其删除。此外,在使用清理脚本和自动化时要小心,以免无意中删除所需快照。回收站功能有助于提供保护,使其免受此类情况的侵害。

归档 EBS 快照

如果您不打算保留在 90 天或更长时间内恢复的卷副本以供参考,归档 EBS 快照是一种经济实惠的方法。在永久删除 EBS 卷的所有相关快照之前,这可能是一个不错的中间步骤。例如,对于不再使用的 EBS 卷,您可以考虑将存档快照作为一个 end-of-lifecycle 步骤。存档而不是删除也是一种更具成本效益的删除保留方法,而不是使用回收站。

使用 Systems Manager、和软件开发工具包自动创建快照和 AMI AWS CLIAWS

您的备份方法可能需要在创建快照或 AMI 之前或之后进行操作。例如,您可能需要停止和启动服务以停止文件系统。或者,您可能需要在 AMI 创建期间停止并启动您的实例。您可能还需要共同创建架构中多个组件的备份,每个组件都有自己的创建前和创建后步骤。

通过自动化备份过程并验证备份过程是否得到一致应用,可以缩短备份的维护时段时间。要自动执行自定义的创建前和创建后操作,请使用 AWS CLI 和 SDK 编写备份过程脚本。

您的自动化可以在 Systems Manager 运行手册中定义,该运行手册可以按需运行,也可以在 Systems Manager 维护时段内运行。您可以向用户授予运行 Systems Manager 运行手册的权限,而无需向他们授予对 Amazon EC2 破坏性命令的权限。这还可以帮助您验证您的用户是否一致地应用了您的备份过程和标记。您可以使用 AWS CreateSnapshot 和 A WS CreateImage 运行手册来创建快照和 AMI,也可以向其他用户授予使用它们的权限。Systems Manager 还包括 AWS UpdateLinuxAmi 和 AWS UpdateWindowsAmi 运行手册,用于自动执行 AMI 修补和 AMI 创建。

您还可以使用 AWS CLI 和AWS Tools for Windows PowerShell自动创建快照和 AMI。您可以使用 aws ec2 create-sn apsho AWS CLI t 命令创建 EBS 卷的快照,这是自动化的一个步骤。您可以使用 aws ec2 create-snapshots 命令为连接到 EC2 实例的所有卷创建崩溃一致的同步快照。

您可以使用 AWS CLI 创建新的 AMI。您可以使用 aws ec2 register-image 命令为 EC2 实例创建新映像。要自动关闭实例、创建映像和重启实例,请将此命令与 aws ec2 stop-instancesaws ec2 start-instances 命令结合使用。