【发布时间】:2013-07-11 06:31:06
【问题描述】:
所以我很难弄清楚这两者之间的区别。
据我了解,快照只是磁盘驱动器的备份,而 AMI 是整个系统(或我应该说的实例)的备份,但从技术上讲,整个系统并非完全位于磁盘上驾驶?如果是这样,那么没有明显的区别,我错过了什么?
【问题讨论】:
标签: amazon-web-services amazon-ec2
所以我很难弄清楚这两者之间的区别。
据我了解,快照只是磁盘驱动器的备份,而 AMI 是整个系统(或我应该说的实例)的备份,但从技术上讲,整个系统并非完全位于磁盘上驾驶?如果是这样,那么没有明显的区别,我错过了什么?
【问题讨论】:
标签: amazon-web-services amazon-ec2
有两种类型的 AMI(和相应的实例):
实例存储(有时称为基于 S3)。这些不太常见,我不建议初学者使用它们。实例存储 AMI 是根实例存储卷和一些元数据的副本,全部以特殊格式保存在 S3 存储桶中
EBS 引导。这可能是您正在使用的。 EBS 启动 AMI 是 EBS 根卷的 EBS 快照以及一些元数据,例如架构、内核、AMI 名称、描述、块设备映射等。
您可以拍摄 EBS 启动卷的快照,并通过使用适当的元数据注册它来将其转换为 EBS 启动 AMI。其中最棘手的部分是指定正确的 AKI id(内核),以便正确启动。
【讨论】:
主要区别在于所指的服务类型。快照是 EBS 卷的快照,您可以在其中保存状态并在某个时间点使用相同的数据重新启动。
AMI 类似,但它适用于 EC2 实例本身。您无法拍摄非 ebs 支持的实例的快照,但您可以创建一个 AMI(系统映像)。
通常我使用 EBS 快照作为数据库卷的备份解决方案,并使用 AMI 来保存实例配置
【讨论】:
我也对此感到困惑。这是最简单的理解方式:
EBS Snapshot经常代表特定EBS卷的备份,它可能是任何卷(根卷、数据卷等)
AMI(亚马逊系统映像)是整个 EC2 实例的备份。例如,通过适当的配置,可以创建包含多个 EBS 卷的 AMI。
现在,这听起来可能令人困惑,但它们都存储为“EBS 快照”。
这样想:
EBS Snapshot 只是一个数据备份。AMI 是特定时间系统状态的表示。您也可以从它启动。【讨论】:
可以使用快照创建 AMI。例如,使用单个“快照”,您可以创建多个 AMI,例如使用同一个快照的一个 PV 和一个 HVM AMI。
因此,快照具有系统/操作系统数据。 AMI 是(快照 + 机器/硬件元数据)。
【讨论】:
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)
快照可用于备份驱动器/卷。它是增量备份操作,这意味着每次拍摄卷的快照时,它只会添加自上次备份(不是整个备份)以来添加/引入卷的新更改,从而节省备份时间、空间并最终节省成本.
快照可用于:
定期备份驱动器
改变volume的类型,比如你有流量或者读写,需要增加IO操作所以你从gp2改成io1更高的IOPs
自定义 AMI 可用于:
用于灾难恢复,以防当前运行的 EC2 实例损坏且无故无法运行。
标准公司的 AMI,所有安装了简化部署过程的必备软件(例如,配置为连接到 `Splunk,安装了一些监控和可观察性软件,安装了 docker,或者配置为连接 Puppet 或 Chef在启动中)
AMI 可用于在不同区域轻松部署您的应用程序。
使用所有已安装的软件及其配置将您的服务器升级到更高或不同的规格
AMI 可以在 AWS 账户之间公开共享。
【讨论】:
以下是 AMI 和 EBS 快照之间的更多区别:
1) AMI 是可启动的,包含指向根设备的链接,并且可能包含指向其他数据卷快照的链接。
2) AMI 中包含的数据映像不代表明确定义的时间点,除非重新启动实例,这对于生产环境通常是不可接受的。快照可以以一致的方式拍摄,因为它们的确切时间点可以控制,因此在快照开始之前可以确保一切都“准备好备份”。
3) AMI 可以从根设备的现有快照创建,适用于 Linux,但不适用于 Windows。
【讨论】:
您可以将 AMI 视为保留操作系统和已安装组件的机器的通用模板。
快照可以包括 AMI 所做的一切,但也可以保存 EBS 卷的磁盘数据。
您决定使用哪一个通常取决于您的实例是否支持 EBS,以及您是想准确地重新创建所有数据完整的机器还是只需要通用机器模板。
【讨论】:
根据AWS提供的定义,
AMI 是一个模板,您可以从中启动 EC2 实例。 EBS 快照是 EBS 卷的块级副本。 EBS 卷可能是引导卷(即包含操作系统)或纯数据卷(例如包含数据库文件)。您使用 RegisterImage 创建 AMI(从快照)。
这是两个不同的概念,应用于不同的级别(EBS 卷与 EC2 模板)但是,这两个概念之间存在一些依赖关系。
对于 EBS 支持的 EC2 实例(即从 EBS 卷启动的 EC2 实例),AMI 实现为启动卷的 EBS 快照 + 一些元数据(机器的架构 - 32 位与 64 位 - ,虚拟化的类型 - HVM vs PV - 等等......)
因此,对于 EBS 支持的 EC2 实例,AMI 是 EBS 快照 + XML 文件。您甚至可以根据您拥有的启动卷的任何快照创建自己的 AMI。
【讨论】:
将快照用作备份策略的成本较低,因为当您有多个快照时,您只需为一个完整备份付费,其余的基本上只是差异,而且通常要小得多。
【讨论】:
根据 AWS 提供的定义,它阐明了区别 - Amazon 系统映像 (AMI) 是一个包含软件配置(例如,操作系统、应用程序服务器和应用程序)的模板。您可以从 AMI 启动一个实例,该实例是作为云中虚拟服务器运行的 AMI 的副本。 而对于快照您可以通过拍摄时间点快照将 EBS 卷上的数据备份到 Amazon S3。快照是增量备份,这意味着仅保存设备上在您最近的快照后发生更改的块。删除快照时,只会删除该快照独有的数据。
【讨论】:
我将用通俗的话来解释这个概念: 假设 EC2 实例为 PC/笔记本电脑 EBS 存储作为硬盘和 AMI 作为操作系统映像 因此,AMI 是 Amazon 系统映像,而 EBS 快照是弹性块存储快照,可随时移动。
AMI 用于新启动 EC2 实例,作为 EBS 快照,您可以在终止 EC2 实例之前备份,并且可以附加到任何 EC2 实例以进行存储和检索。
【讨论】: