所以我不知道具体是什么,这两者之间的区别。
按照我的理解,快照只是磁盘驱动器的备份,而 AMI 是整个系统的备份(或者应该说是实例) ,但是从技术上讲,整个系统不是完全位于磁盘驱动器上吗?如果是这样的话,那么就没有明显的区别了,我是不是遗漏了什么?
主要区别在于所引用的服务类型之间。快照是 EBS 卷的快照,您可以在该卷中保存状态并在某个时间点用相同的数据重新启动。
AMI 是类似的,但它针对的是 EC2实例本身。您不能获取非 ebs 备份实例的快照,但是您可以创建一个非 ebs 备份实例的 AMI (系统映像)。
通常,我使用 EBS 快照作为数据库卷的备份解决方案,并使用 AMI 保存实例配置
使用快照作为备份策略的成本较低,因为当有多个快照时,只需支付一个完整备份的费用,而其他备份实质上只是不同的备份,通常要小得多。
您可以将 AMI 视为保留了 OS 和已安装组件的计算机的通用模板。
快照可以包含 AMI 执行的所有操作,但也可以保存 EBS 卷的磁盘数据。
您决定使用哪一个通常取决于您的实例是否受到 EBS 支持,以及您是否希望精确地重新创建一台具有完整的所有数据的机器,还是仅仅希望使用一个通用的机器模板。
有两种类型的 AMI (以及相应的实例) :
Instance-store (有时称为基于 S3的)。这些是不太常见的,我不建议他们的初学者。实例存储 AMI 是根实例存储卷加上一些元数据的副本,所有这些都以特殊格式保存在 S3存储桶中
EBS 启动。这可能就是你正在使用的东西。EBS 引导 AMI 是、 EBS 根卷的 EBS 快照以及一些元数据,如体系结构、内核、 AMI 名称、描述、块设备映射等。
您可以获取 EBS 引导卷的快照,并通过使用适当的元数据注册它,将其转换为 EBS 引导 AMI。最棘手的部分是指定正确的 AKI id (内核) ,以便正确引导。
以下是 AMI 和 EBS 快照的一些不同之处:
1) AMI 是可启动的,包含到根设备的链接,并且可能包含到其他数据卷快照的链接。
2) AMI 中包含的数据映像并不代表一个定义良好的时间点,除非实例被重新启动,这是生产环境通常不能接受的。由于可以控制快照的确切时间点,因此可以以一致的方式拍摄快照,所以在快照开始之前,可以确保一切都“准备好备份”。
3)可以从 Linux 的根设备的现有快照创建 AMI,但是不能为 Windows 创建 AMI。
可以使用快照创建 AMI。例如,使用一个“快照”可以创建多个 AMI,比如使用相同的快照创建一个 PV 和一个 HVM AMI。
因此,快照具有系统/操作系统数据。
根据 AWS 提供的定义,它澄清了两者的区别—— Amazon Machine Image (AMI)是一个包含软件配置(例如,操作系统、应用服务器和应用程序)的模板。从一个 AMI 启动一个实例,它是作为云中的虚拟服务器运行的 AMI 的副本。 而对于快照,您可以通过采用时间点快照将 EBS 卷上的数据备份到 AmazonS3。快照是增量备份,这意味着只保存最近一次快照后更改的设备上的块。删除快照时,只删除该快照独占的数据。
我对此也感到困惑,这里有一个最简单的理解方法:
EBS Snapshot通常表示特定 EBS 卷的备份,它可能是任何卷(根卷、数据卷等)
EBS Snapshot
AMI(Amazon Machine Image)是整个 EC2实例的备份。例如,通过适当的配置,可以创建包含多个 EBS 卷的 AMI。
AMI
现在,它可能听起来令人困惑,但它们都存储为“ EBS 快照”。
想想看:
根据 AWS 提供的定义,
AMI 是一个模板,您可以从中启动 EC2实例。EBS 快照是 EBS 卷的块级别副本。EBS 卷可以是引导卷(即包含操作系统) ,也可以是仅数据卷(例如包含数据库文件)。使用 RegisterImage 创建 AMI (从快照)。
这是两个不同的概念,应用于不同的级别(EBS 卷与 EC2模板) ,但是,这两个概念之间有一些依赖关系。
对于 EBS 支持的 EC2实例(即从 EBS 卷引导的 EC2实例) ,AMI 实现为一个引导卷的 EBS 快照 + 一对元数据(机器的架构——32位 vs 64位——虚拟化类型—— HVM vs PV-etc...)
因此,对于支持 EBS 的 EC2实例,AMI 是 EBS 快照 + XML 文件。您甚至可以根据自己的引导卷的任何快照创建自己的 AMI。
EBS Volume是 EC2后面的底层磁盘。Snapshot是特定 volume的时间点备份,而 AMI 是可能具有多个附加卷的整个 EC2实例的备份,与虚拟机完全一样。
EBS Volume
Snapshot
volume
使用 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 操作,因此您可以将 gp2更改为 io1,使用更高的 IOPs
gp2
io1
IOPs
自定义 AMI 可用于:
用于灾难恢复,以防当前正在运行的 EC2实例损坏并且无故无法运行。
标准公司的 AMI 已经安装了所有的先决条件软件,简化了部署过程(例如,配置为连接到‘ Splunk,安装了一些监控和可观测软件,安装了 docker,或者配置为在启动时连接到 Puppet 或 Chef)
可以使用 AMI 轻松地将应用程序部署到不同的区域。
使用所有已安装的软件及其配置将服务器升级到更高或不同的规格
AMI 可以跨 AWS 帐户公开共享。
我将用外行人的话来解释这个概念: 假设 EC2实例为 PC/膝上型电脑 存储为硬盘和 作为操作系统形象的 AMI 因此,AMI 是一个亚马逊机器图像和 EBS 快照是弹性块存储快照在任何运动的时间。
AMI 用于新启动 EC2实例,其中作为 EBS 快照,您可以在终止 EC2实例之前进行备份,并且可以附加到任何 EC2实例以用于存储和检索。