快照和AMI之间的AWS差异


107

所以我很难弄清楚这两者之间的区别是什么。

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

Answers:


70

AMI有两种类型(以及相应的实例):

  1. 实例存储(有时称为基于S3)。这些不太常见,我不建议初学者使用。实例存储AMI是根实例存储卷加上一些元数据的副本,所有这些都以特殊格式保存在S3存储桶中

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

您可以拍摄EBS引导卷的快照,并通过向相应的元数据进行注册将其转换为EBS引导AMI。最棘手的部分是指定正确的AKI ID(内核),以便其正确引导。


谢谢eric,我备份了AMI映像,并且可以选择启动和注册它吗?我对这里的区别感到困惑……
Melbourne2991

我不知道“备份AMI映像”是什么意思。
埃里克·哈蒙德

8
单击“创建AMI”时,EC2将创建该实例的EBS卷的EBS快照并将其注册为AMI。您可以启动将AMI指定为起点的新实例。如果您只想查看其上的文件而不运行新实例,则也可以创建EBS快照的新卷。
埃里克·哈蒙德

6
或者,您可以自己创建EBS卷的EBS快照,然后在以后将该快照注册为AMI。这是创建AMI的稍微困难的方法,因为它要求您知道要设置的适当AMI注册属性。“创建AMI”将为您完成所有这一切。
埃里克·哈蒙德

1
@ cosbor11您无法删除AMI的快照。
Eric Hammond

24

主要区别在于所引用的服务类型之间。快照属于EBS卷,您可以在其中保存状态并在特定时间点使用相同的数据重新启动。

AMI很相似,但适用于EC2实例本身。您不能为非ebs备份的实例制作快照,但是可以创建一个实例的AMI(系统映像)。

通常,我使用EBS快照作为数据库卷的备份解决方案,并且使用AMI保存实例配置。


1
如果我的卷包含数据库和实例配置,该怎么办?AMI如何保存EBS快照不能保存的内容(反之亦然)?谢谢
Melbourne2991

1
AMI可立即启动到新实例。可以将EBS快照复制到新卷(虚拟磁盘)。该虚拟磁盘可以用作新实例的基础,但它本身并不是实例。
丹·普里兹

16

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

因此,快照具有系统/ OS数据。AMI是(快照+机器/硬件元数据)。


1
如果我有一个AMI,则从中创建一个实例。AMI是否包括该实例上的数据?我的意思是,如果实例包含tomcat WAR文件,那么创建该实例的AMI也包括吗?
Dejell 2015年

1
如果从包含tomcat(或任何文件)的实例中创建AMI,则新创建的AMI将包含那些文件/数据。从此AMI进一步创建的任何实例都将具有这些文件。但是,从中创建实例的源AMI将没有它们(假设您在实例创建后将文件添加到实例中)。
Anshu Prateek

15

我也对此感到困惑。这是理解它的最简单方法:

  • EBS Snapshot 通常代表特定EBS卷的备份,它可以是任何卷(根卷,数据卷等)

  • AMI(Amazon Machine Image)是整个EC2实例的备份。例如,通过适当的配置,可以创建包括多个EBS卷的AMI。

现在,这听起来有些混乱,但是它们都存储为“ EBS快照”。

只要想一想:

  • EBS Snapshot 只是数据备份。
  • AMI是特定时间的系统状态的表示。您也可以从中启动。

因此,如果我创建了根卷的快照,该快照可用于启动实例吗?
gaurav parashar

1
简短的答案:不能。仅使用卷不能直接完成,因为AMI是EC2唯一可用的“启动选项”。但是,您可以从该卷创建AMI,并从最近创建的AMI启动实例(如间接选项)。
skryvets

7

EBS Volume是EC2背后的基础磁盘。Snapshot是特定时间点的备份,volume而AMI是整个EC2实例的备份,该实例可能具有多个附加卷,就像虚拟机一样。

使用Packer,您可以构建自动化的机器映像,包括用于EC2的AMI,用于VMware的VMDK / VMX文件,用于VirtualBox的OVF导出等。

EC2  <-- EBS Volume (Boot) + EBS Volume 
                        ^
                        |
                     Snapshot (only of specific volume)       
                        ^
                        |
                       AMI (Combined snapshots of all volumes, snapshot must have boot volume) 
                        ^
                        | 
                  Launch a new Instance (same installed softwares and configs, different specs) 

快照可用于备份驱动器/卷。这是增量备份操作,这意味着每次您对卷进行快照时,它将仅添加自上次备份(不是整个备份)以来添加/引入的新更改(节省了备份时间,空间和最终成本) 。

快照可用于:

  • 定期备份驱动器

  • 更改卷的类型,例如您有流量或读写操作,并且需要增加IO操作,因此请从 gp2io1具有更高IOPs

定制AMI可用于:

  • 为了进行灾难恢复,以防当前正在运行的EC2实例损坏并且无缘无故无法运行。

  • 标准公司的AMI已安装了所有必备软件,从而简化了部署过程(例如,配置为连接到`Splunk,已安装一些监视和可观察性软件,已安装docker或已配置为在启动时连接Puppet或Chef)

  • AMI可用于轻松地在不同区域中部署应用程序。

  • 使用所有已安装的软件及其配置将服务器升级到更高或不同的规格

  • 可以在AWS账户之间公开共享AMI。


您的第一段是我到目前为止阅读的最清晰的定义。谢谢!
specialk1st

5

以下是AMI和EBS快照之间的更多区别:

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

2)除非重新启动实例,否则AMI中包含的数据映像并不代表定义明确的时间点,这通常对于生产环境是不可接受的。由于可以控制快照的确切时间点,因此可以以一致的方式拍摄快照,因此可以在快照启动之前确保所有内容都“可以备份”。

3)可以从适用于Linux的根设备的现有快照创建AMI,而不能针对Windows。


2

根据AWS提供的定义,

AMI是可以从中启动EC2实例的模板。EBS快照是EBS卷的块级副本。EBS卷可以是引导卷(即包含操作系统),也可以是仅数据卷(例如包含数据库文件)。您使用RegisterImage创建AMI(从快照)。

这是两个不同的概念,适用于不同的级别(EBS卷与EC2模板)。但是,这两个概念之间存在一些依赖关系。

对于EBS支持的EC2实例(即从EBS卷启动的EC2实例),AMI被实现为启动卷的EBS快照+几个元数据(机器的体系结构-32位对64位-类型)虚拟化-HVM与PV-等等...)

因此,对于EBS支持的EC2实例,AMI是EBS快照+ XML文件。您甚至可以根据自己拥有的启动卷的任何快照来创建自己的AMI。


1

快照用作备份策略的成本较低,因为当您拥有多个快照时,您只需支付一次完整备份的费用,而其余的备份实质上就是差异,并且通常要小得多。


6
因为他们这不是EBS启动的AMI真的恰好EBS快照再加上一点点的元数据。费用将是相同的。
Eric Hammond 2013年

1

您可以将AMI视为保留了OS和已安装组件的计算机的通用模板。

快照可以包括AMI的所有操作,还可以保存EBS卷的磁盘数据。

您决定使用哪个实例通常取决于您的实例是否支持EBS,以及是否要完全重新创建所有数据完整的机器还是只需要通用机器模板。


因此,AMI是否不保存EBS音量?
Melbourne2991

1
可以将AMI设置为包括一个或多个EBS卷,但是这些卷在启动时将为空白,它们将不包含原始源计算机所包含的数据。
CIGuy

因此,AMI实际上只是元数据(不确定这是否正确)?像您使用的是什么操作系统,实例的大小等?从技术上讲,它应该只有几kb大小吗?
Melbourne2991

1
AMI还存储您已在计算机上安装的所有程序,操作系统级别的配置选项等,因此它实际上不只是元数据,是的,它们通常比快照小得多。
CIGuy

1
这个答案是错误的。AMI包含一个或多个快照。也就是说,它引用一个或多个快照(没有数据复制),并且还保存一些其他元数据。这就是为什么如果AMI当前正在使用快照,则无法删除该快照。docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html另请参见Eric Hammond在此主题中的贡献。
马克斯·巴拉克拉夫

0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.