Amazon EC2 EBS备份:AMI与快照的区别

31

我正在尝试为我们的服务器创建备份机制,以便如果我的系统崩溃,我应该能够通过运行单个脚本来创建整个系统

在查阅了亚马逊的文档后,我对创建备份和恢复的理解如下:

备份

  1. 创建AMI镜像(可以每月更新)
  2. 创建快照(这可以使用每日脚本创建快照来完成)

恢复(一个脚本用于)

  1. 使用AMI创建EBS实例
  2. 将EBS卷附加到创建的实例

现在我的问题是

  1. 这是获取备份和恢复的最佳方式吗?
  2. 我们是否真正需要备份2件事,即AMI和EBS卷(使用快照),我们可以只保留快照吗?
  3. 我知道这对于本地实例存储实例无法起作用,因为没有快照功能。那么,我该如何为本地实例存储实例创建备份和恢复过程?

请仅使用基于EBS的实例,并简单地对EBS进行快照。 - Guy
SO是一个编程问答平台,这个问题与编程无关。请删除这个问题。 - Rob
5个回答

9
由于我找不到更好的替代方案,我将坚持最初的方法。
针对EBS:
备份:
- 创建AMI镜像(可每月更新)。 - 创建快照(可使用每日脚本创建快照)。
恢复(一个脚本):
- 使用AMI创建EBS实例。 - 将EBS卷附加到创建的实例上。
针对实例存储,我只保留应用程序(没有数据库),因此不需要备份。

AMI镜像备份也可以以任意方式自动化,甚至可以进行微调。 - Suncatcher

8

EBS快照是创建备份的绝佳方式。

您可以通过脚本频繁执行EBS卷的快照。每周、每日、每小时或尽可能频繁(视信用卡限制而定)。唯一的限制是同时进行快照的数量 - 当达到该限制时,EBS API将开始返回错误,直到一些正在进行中的操作完成。

为了在发生灾难性事件时提供备份,也可以将快照从区域复制到区域。

当您对EBS卷进行快照时,该快照包含整个卷。即使它是从AMI创建的,您的快照也包含创建卷的所有内容。您可以很容易地自行尝试。


7
如果您的实例是基于Linux的,则在进行快照时无需创建AMI,当您需要恢复时可以从快照中动态创建AMI。如果您已将此过程自动化,则非常容易执行。
在Windows系统中,存在限制,不允许从快照启动EC2实例,因此必须使用AMI。有一些方法可以解决这个限制:您可以查看我在公司博客上写的这篇文章:http://www.n2ws.com/blog/3-ways-ec2-windows-backup-and-recovery.html

在尝试恢复时我学到了一些东西:记下原实例的内核ID。你可能需要使用相同的内核启动未来的AMI,否则它可能无法启动。其他有用的元数据可能包括任何用户数据、安全组、次要IP、实例类型和架构。你可以将其中一些数据存储在快照的描述或标签中。 - Martijn Heemels
2
@MartijnHeemels 唯一的问题是要注意内核 ID 在不同地区是不同的 - 因此,如果您将快照复制到另一个地区,这会更加复杂 :/. - Martin Konecny
为什么这个特定于Linux?不能将相同的过程用于Windows吗? - Scott Willeke
@ScottWilleke 显然这并不适用于所有的Linux发行版。"一些Linux发行版,如Red Hat Enterprise Linux(RHEL)和SUSE Linux Enterprise Server(SLES),使用与AMI相关联的EC2计费产品代码来验证软件包更新的订阅状态。从EBS快照创建AMI不会保留此计费代码,从此类AMI启动的后续实例将无法连接到软件包更新基础设施。同样,虽然您可以从快照创建Windows AMI,但无法成功从AMI启动实例。" - Kevin Wheeler

6
我建议除了使用EBS快照外,还要使用自动扩展。如果实例因硬件故障而死亡或由Amazon计划退役,则自动缩放将自动启动新实例。
但在这种情况下,您必须为您的动态数据设置NAS。根据服务器负载,运行实例的数量将不同,并且所有扩展服务器都必须挂载跨它们共享的NAS存储。
您的数据库也应该在单独的服务器上,或者您可能想使用Amazon RDS,因为它具有出色的自动备份/时点恢复功能,但您必须额外支付费用。

2

1) 是的。快照是备份和恢复EBS卷的最佳方式。

2) 这取决于您是否将根卷作为EBS支持的AMI,如果是,则也可以对其进行快照,并提高可管理性。

3) 对于实例存储,可用的选项是Rsync和AMI。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接