如何使用EBS快照处理AWS EC2备份

亚马逊网络服务(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。

先决条件

本文将是一个教程。如果您计划一步一步跟随,请确保您具备以下条件:

IAM策略创建和AWS应用程序编程接口(API)权限不在本文范围之内。在授权帐户执行操作时,始终遵循最小权限原则

  • 在本地机器上安装并使用您的IAM用户进行身份验证的AWS CLI

从AWS管理控制台创建EBS快照

有几种不同的方式来创建EBS快照。让我们通过AWS管理控制台开始创建快照。

EBS快照可能会产生存储成本。有关如何计算EBS费用的更多信息,请参阅AWS文档

导航至EC2控制台

开始操作:

  1. 打开AWS管理控制台,并使用AWS(根)或IAM账户凭据登录您的AWS账户。

2. 单击屏幕左上角的服务

AWS Management Console showing services drop-down menu.

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

AWS Management Console showing services drop-down menu and EC2 selection.

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

EC2 Console Resources Dashboard showing established resources.

在EC2控制台创建EBS快照

一旦您导航到EC2控制台并查看您预期的区域,就可以创建EBS快照(AWS EC2备份)。完成此任务的步骤如下:

  1. 选择屏幕左侧导航窗格下的快照,位于弹性块存储下。
EC2 Console showing Snapshots selection.

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

Snapshots section of the EC2 Console showing Create Snapshot selection.

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

Create Snapshot menu showing Volume and Instance selection.

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

Create Snapshot menu showing completed Volume field.

5. 现在,在描述字段中为您的EBS快照输入描述。描述字段是可选的,最多可以包含255个字符。

您将在以后将此描述视为EBS快照的属性。本教程将使用ATA博客的卷快照作为描述。

Create Snapshot menu showing the completed Description field.

6. 接下来,您可以使用可选的键/值对给您的EBS快照标记。标记是在AWS中管理和组织资源的强大方式。本教程将使用标记来说明服务器的常见用例。

其他常见的标记包括名称、所有者、环境和用途。

Create Snapshot menu showing completed Tag field.

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

Create Snapshot menu showing Create Snapshot selection.

本教程未涵盖加密字段。从未加密的EBS卷创建的EBS快照在创建快照过程中不能进行加密。要对从未加密的EBS卷获取的EBS快照进行加密,您必须先完成未加密的EBS快照,复制未加密的EBS快照,然后应用所需的加密。从加密卷获取的快照会自动进行加密。

8. 完成后,EC2控制台将显示以下成功消息。通过选择关闭来关闭消息。

Message indicating success Snapshot Create Request.

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

Snapshots section of the EC2 Console showing pending snapshot.

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

一旦快照完成,您将在下面看到状态完成,如下所示。

Snapshots section of the EC2 Console showing completed snapshot.

您现在已经创建了 AWS EC2 备份!

使用 AWS CLI 创建 EBS 快照

在上一节中,您使用 AWS 基于 Web 的控制台创建了 EBS 快照,但这不是唯一的方法!您还可以通过 AWS CLI 创建快照来备份 EC2 实例。

要使用 AWS CLI 创建快照,假设您已安装 AWS CLI 并对您的帐户进行了身份验证:

  1. 在 Windows 计算机上打开命令提示符或 PowerShell 控制台

2. 运行 aws ec2 describe-volumes 命令,使用 --query 参数输出实例和卷 ID 的列表。记下您想要创建快照的卷 ID。

aws ec2 describe-volumes --query 'Volumes[*].Attachments[].{VolumeID:VolumeId,InstanceID:InstanceId}' --output text

3. 运行命令 aws ec2 create-snapshot 并提供以下参数:

  • volume-id – 您要备份的 EBS 卷的唯一卷 ID
  • description – 您想要应用于备份的描述
  • tag-specifications – 您想要附加到备份的标签

以下命令通过使用--volume-id参数,创建了一个指定右侧卷的快照,其中包含通过AWS CLI为ATA博客创建的卷快照的描述以及两个标签;Name: FileServer01Purpose: Enterprise File Storage

# 确保插入您的卷ID 
aws ec2 create-snapshot --volume-id <your volume ID> --description 'Volume Snapshot for ATA Blog via the AWS CLI' --tag-specifications 'ResourceType=snapshot,Tags=[{Key=Name,Value=FileServer01},{Key=Purpose,Value=Enterprise File Storage}]' 
AWS CLI output showing successful command output.

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搜索所有快照。

# 确保插入您的快照ID
aws ec2 describe-snapshots --snapshot-id <your snapshot ID>

最终,describe-snapshots命令应返回Progress100%Statecompleted,如下所示。

AWS CLI output showing completed EBS Snapshot.

干得好!您刚刚通过AWS CLI以编程方式创建了一个EBS快照!

接下来的步骤

在这个教程中,您已经学会了如何使用基于网络的AWS控制台和编程AWS CLI创建Amazon EC2实例的备份,并使用EBS快照。

如果您已经完成了对本教程中创建的快照的测试,请务必删除它以避免产生费用!

要走得更远,不妨尝试恢复一个EC2实例

Source:
https://adamtheautomator.com/aws-ec2-backup/