亚马逊网络服务(AWS) EC2 实例是在虚拟机上运行工作负载的便捷方式。但是,如果它们所附加的存储失败或损坏会发生什么?是时候开始讨论 AWS EC2 备份了。
当您备份 EC2 实例时,您将谈论 弹性块存储(Elastic Block Store,EBS) 卷,更具体地说是 EBS 快照。EC2 将所有卷与 EBS 一起存储,而创建 EBS 快照是备份数据的绝佳方式。
在本教程中,您将学习如何使用 AWS 管理控制台 和 AWS 命令行界面(AWS CLI) 创建 EBS 快照。
如果您想轻松管理 EC2 备份/EBS 快照,请务必查看 Veeam Backup for AWS。Veeam 不仅负责创建 EBS 快照,还管理复制,智能监视已更改的块,并提供公共 API。
先决条件
本文将是一个教程。如果您计划一步一步跟随,请确保您具备以下条件:
- 一个 AWS 账户
- 一个 AWS 虚拟私有云(VPC)
- 一个 带有附加卷的 EC2 实例
- 一个具有以下内容的IAM用户:
- 访问AWS管理控制台
- 对AWS服务进行编程访问
- 执行与快照相关活动所需的IAM权限
IAM策略创建和AWS应用程序编程接口(API)权限不在本文范围之内。在授权帐户执行操作时,始终遵循最小权限原则
- 在本地机器上安装并使用您的IAM用户进行身份验证的AWS CLI
从AWS管理控制台创建EBS快照
有几种不同的方式来创建EBS快照。让我们通过AWS管理控制台开始创建快照。
EBS快照可能会产生存储成本。有关如何计算EBS费用的更多信息,请参阅AWS文档。
导航至EC2控制台
开始操作:
- 打开AWS管理控制台,并使用AWS(根)或IAM账户凭据登录您的AWS账户。
2. 单击屏幕左上角的服务。

3. 从服务下拉菜单中选择EC2。如下图所示,EC2选项位于计算类别下。此选项将带您进入EC2控制台。

现在,您应该位于资源仪表板上。资源仪表板快速显示在所选区域内建立的与您的AWS账户相关的EC2资源。在下图中,您可以看到本教程的资源仪表板显示已在美国东部(弗吉尼亚北部)区域为登录用户建立了以下资源。

在EC2控制台创建EBS快照
一旦您导航到EC2控制台并查看您预期的区域,就可以创建EBS快照(AWS EC2备份)。完成此任务的步骤如下:
- 选择屏幕左侧导航窗格下的快照,位于弹性块存储下。

2. 接下来,在屏幕顶部选择创建快照。选择创建快照将带您进入一个需要额外输入的菜单。

3. 在创建快照页面上,在选择资源类型字段下,将资源类型设置为卷。将资源类型设置为卷告诉AWS捕获单个EBS卷的快照,而不是所有附加到EC2实例的卷。

4. 接下来,从下拉菜单中选择要对其进行快照的EBS卷的卷ID。卷ID是分配给每个EBS卷的唯一标识符。在下面的截图中,您将看到本教程的卷ID为vol-0b4f056a0b709240a。

5. 现在,在描述字段中为您的EBS快照输入描述。描述字段是可选的,最多可以包含255个字符。
您将在以后将此描述视为EBS快照的属性。本教程将使用ATA博客的卷快照作为描述。

6. 接下来,您可以使用可选的键/值对给您的EBS快照标记。标记是在AWS中管理和组织资源的强大方式。本教程将使用标记来说明服务器的常见用例。
其他常见的标记包括名称、所有者、环境和用途。

7. 现在点击创建快照按钮来创建EBS快照。

本教程未涵盖加密字段。从未加密的EBS卷创建的EBS快照在创建快照过程中不能进行加密。要对从未加密的EBS卷获取的EBS快照进行加密,您必须先完成未加密的EBS快照,复制未加密的EBS快照,然后应用所需的加密。从加密卷获取的快照会自动进行加密。
8. 完成后,EC2控制台将显示以下成功消息。通过选择关闭来关闭消息。

现在您应该在控制台中看到以待定状态列出的EBS快照。在所有修改过的EBS卷块都传输到Amazon S3之前,它将保持在这种状态下。

初始的 EBS 快照创建时间较长,因为它们是完整的备份,不同于后续的增量备份。如果快照花费的时间超过预期,可以使用屏幕右上角的刷新图标触发状态刷新。
一旦快照完成,您将在下面看到状态为完成,如下所示。

您现在已经创建了 AWS EC2 备份!
使用 AWS CLI 创建 EBS 快照
在上一节中,您使用 AWS 基于 Web 的控制台创建了 EBS 快照,但这不是唯一的方法!您还可以通过 AWS CLI 创建快照来备份 EC2 实例。
要使用 AWS CLI 创建快照,假设您已安装 AWS CLI 并对您的帐户进行了身份验证:
- 在 Windows 计算机上打开命令提示符或 PowerShell 控制台
2. 运行 aws ec2 describe-volumes
命令,使用 --query
参数输出实例和卷 ID 的列表。记下您想要创建快照的卷 ID。
3. 运行命令 aws ec2 create-snapshot
并提供以下参数:
volume-id
– 您要备份的 EBS 卷的唯一卷 IDdescription
– 您想要应用于备份的描述tag-specifications
– 您想要附加到备份的标签
以下命令通过使用--volume-id
参数,创建了一个指定右侧卷的快照,其中包含通过AWS CLI为ATA博客创建的卷快照的描述以及两个标签;Name: FileServer01 和 Purpose: Enterprise File Storage。

AWS允许您根据用户偏好配置AWS CLI命令的默认输出格式。输出格式选项包括JSON、YAML、YAML-Stream、Text和Table。您的命令输出取决于AWS CLI的配置,可能与上面显示的输出不同。
4. 现在,通过向--snapshot-id
参数提供快照ID,使用aws ec2 describe-snapshots
命令检查快照的状态。从第2步返回的SnapshotID
属性中查找快照ID。
如果您不知道快照ID,请使用
aws ec2 describe-snapshots --owner self
搜索所有快照。
最终,describe-snapshots
命令应返回Progress
为100%
,State
为completed
,如下所示。

干得好!您刚刚通过AWS CLI以编程方式创建了一个EBS快照!
接下来的步骤
在这个教程中,您已经学会了如何使用基于网络的AWS控制台和编程AWS CLI创建Amazon EC2实例的备份,并使用EBS快照。
如果您已经完成了对本教程中创建的快照的测试,请务必删除它以避免产生费用!
要走得更远,不妨尝试恢复一个EC2实例?