快照 == EBS 支持的实例、持久性和 S3 存储?

Bar*_*rim 5 amazon-s3 amazon-ec2

我想澄清一些混淆,并澄清对 EBS 支持的 EC2 实例的理解。

如果您从社区映像启动 AMI,根据需要配置服务器,然后使用 EC2 仪表板中的“创建映像”选项创建快照,该快照(映像)可用于创建更多服务器配置并被认为是 EBS 支持的,是吗?

如果您创建快照然后终止您的 AMI EC2 实例,该机器将消失,但快照仍然存在并可用于重新创建您的实例,而如果您不创建映像,您会在终止时丢失所有内容吗?

如果您创建了服务器,创建了一个映像/快照,然后终止了正在运行的实例并从您的快照创建了一个新的 EC2 实例,那么您的更改在终止时是否仍然存在(新数据被保存到快照中),或者它是否恢复到您的除非您创建新快照,否则快照的保存状态?

创建映像/快照(它们的术语是一样的,是吗?)意味着生成的磁盘映像存储在 S3 上,它只是不显示在 S3 存储桶下,对吗?那么数据会被保存在多个站点之间进行无形的冗余吗?

我想我知道这些问题的答案,但我想验证一下。

cyb*_*x86 4

如果您启动 EBS 根社区 AMI - 会根据与该 AMI 关联的快照在您的账户下创建 EBS 卷 - 此后您不再与原始 AMI 建立真正的连接 - 您将进行修改您现在拥有的本地 EBS 卷。

默认情况下,大多数 AMI 设置为在终止时删除根卷 - 即使根卷是 EBS 卷。您可以通过修改实例属性来更改此设置。如果您进行此类更改,终止实例不会删除 EBS 卷 - 因此您可以将其附加到稍后启动的另一个实例,或者在实例终止后对卷进行快照。

您必须使用快照来创建 EBS 支持的 AMI - 因为您通过引用快照来定义根卷。您还可以通过将块设备映射指向 EBS 快照来创建附加了 EBS 卷的 S3 支持的实例。(因此,如果您对根卷使用快照,则映像仅受 EBS 支持)。

快照的持续存在与它们关联的卷或这些卷可能关联的实例无关。

通常,当实例终止时,默认情况下不会删除 EBS 卷(例外情况是根卷,如上所述)。因此,如果您创建 EBS 卷并将其附加到实例、对其进行更改并终止该实例,则尽管实例被终止(即使没有快照),EBS 卷仍将持续存在。

快照是时间点备份。EBS 卷是一种块设备 - Amazon 在其快照中创建这些块的映射,并跟踪哪些块已更改。因此,EBS 快照是差异化的——仅存储更改的块;时间点 - 您可以删除任何以前的快照而不影响任何其他快照 - 并且任何快照都可以随时恢复;和压缩 - 仅存储存在的数据量 - 空块将被忽略。

对 EBS 卷所做的更改不会影响任何预先存在的快照 - 仅当您明确拍摄新快照时,它们才会添加到快照中。因此,当您还原快照时,生成的 EBS 卷将是快照所源自的 EBS 卷的相同块副本(这意味着可以使用常用方法从还原的快照中取消删除已删除的文件 - 它不是文件复制,并且与文件系统无关)。重申一下,拍摄快照后添加的任何内容在恢复快照时都将不可用。

根据 [Amazon 关于 EBS 的页面][1],快照存储在 S3 中并受益于 S3 的冗余。它们不会显示在您的存储桶中 - 或您的 S3 使用报告中。通常,确定您使用了多少快照空间的唯一方法是查看 EBS 类别下的 EC2 使用情况报告 - 其中列出了存储的快照数据。

关于快照的其他一些有趣的点:a) 它们延迟加载 - 您可以在加载所有数据之前访问从快照创建的 EBS 卷,并且将根据请求从 S3 获取必要的数据 - 如果您有大卷,这很方便。b) 您可以从快照创建更大(但不能更小)的 EBS 卷(尽管这样做后您需要调整文件系统的大小)。c) 可以创建 EBS 卷的 RAID 设置并对其进行快照,因为快照在块级别工作。