AWS快照和AMI之间的区别

所以我在解决这个问题时遇到了一些麻烦,特别是这两者之间的区别。

据我了解,快照只是磁盘驱动器的备份,而AMI是整个系统(或者我应该说的实例)的备份,但不是整个系统在技术上完全位于磁盘驱动器上? 如果是这样,那么没有明显的区别,我错过了什么?

有两种types的AMI(和相应的实例):

  1. 实例存储(有时称为S3)。 这些不太常见,我不build议他们为初学者。 实例存储AMI是根实例存储卷和某些元数据的副本,全部以特殊格式保存在S3存储桶中

  2. EBS启动。 这可能是你正在使用的。 EBS启动AMI EBS根卷的EBS快照,外加一些元数据,如体系结构,内核,AMI名称,描述,块设备映射等。

您可以拍摄EBS启动卷的快照,并通过将其注册到适当的元数据中,将其转换为EBS启动AMI。 这个最棘手的部分是指定正确的AKI id(内核),以便正确引导。

主要区别在于所提到的服务types。 快照是一个EBS卷,您可以在某个时间点保存状态并使用相同的数据重新启动。

一个AMI是相似的,但它的EC2实例本身。 您无法拍摄非ebs支持的实例的快照,但可以创build一个AMI(系统映像)。

通常我使用EBS快照作为数据库卷的备份解决scheme,并使用AMI来保存实例configuration

AMI可以使用快照创build。 例如,使用单个“快照”,可以使用相同的快照创build多个AMI,例如一个PV和一个HVM AMI。

所以,快照有系统/操作系统数据。 AMI是(快照+机器/硬件元数据)。

以下是AMI和EBS快照之间的更多差异:

1)AMI是可启动的,并且包含指向根设备的链接,并且可以包含指向其他数据卷的快照的链接。

2)AMI中包含的数据映像不代表定义明确的时间点,除非实例重新启动,这是生产环境通常不能接受的。 快照可以以一致的方式进行,因为它们的准确时间点可以被控制,所以在快照启动之前可以确保一切都“准备好备份”。

3)可以从Linux的根设备的现有快照创buildAMI,但不能在Windows上创build。

使用快照作为备份策略的成本较低,因为当你有多个快照时,你只需要支付一次完整的备份,其余的实际上只是差异,通常要小得多。

您可以将AMI视为具有OS且已安装的组件保留的机器的通用模板。

快照可以包含AMI所做的一切,还可以保存EBS卷的磁盘数据。

您决定使用哪一个通常将取决于您的实例是否支持EBS,以及您是否想完整地重新创build一个完整的数据或只需要通用计算机模板的计算机。

从AWS提供的定义中可以明确区别–Amazon机器映像(AMI)是一个包含软件configuration(例如操作系统,应用程序服务器和应用程序)的模板。 从AMI启动一个实例,该实例是在云中作为虚拟服务器运行的AMI的副本。 而对于快照您可以通过获取时间点快照将EBS卷上的数据备份到Amazon S3。 快照是增量式备份,这意味着只有设备上最近一次快照后发生更改的块才被保存。 删除快照时,仅删除该快照专有的数据。