我想消除一些困惑并澄清对 EBS 支持的 EC2 实例的理解。
如果您从社区映像启动 AMI,根据需要配置服务器,然后使用 EC2 仪表板中的“创建映像”选项创建快照,则该快照(映像)可用于创建具有您的配置的更多服务器,并且被视为 EBS 支持的,是吗?
如果您创建快照并稍后终止 AMI EC2 实例,则该机器将消失,但快照将保留并可用于重新创建实例,而如果您不创建映像,您会在终止时丢失所有内容?
如果您创建了服务器,创建了映像/快照,然后终止了正在运行的实例并从快照中创建了一个新的 EC2 实例,那么在终止后您的更改是否会保留(新数据会保存到快照中)或者它是否会恢复到快照的保存状态除非您创建新的快照?
创建映像/快照(从术语上看,它们是同一个东西,对吧?)意味着生成的磁盘映像存储在 S3 上,只是不会显示在 S3 存储桶下,对吗?那么数据将以不可见的方式保存在多个站点上以实现冗余吗?
我想我知道这些问题的答案,但我想验证一下。
答案1
如果您启动 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 使用报告中。通常,确定您使用了多少快照空间的唯一方法是查看您的 EC2 使用报告下的 EBS 类别 - 其中列出了存储的快照数据。
关于快照,还有其他一些有趣的点:a)它们会延迟加载 - 您可以在加载所有数据之前访问从快照创建的 EBS 卷,并且将根据请求从 S3 获取必要的数据 - 如果您有大量卷,这将非常方便。b)您可以从快照创建更大(但不能更小)的 EBS 卷(尽管这样做之后,您需要调整文件系统的大小)。c)可以创建 EBS 卷的 RAID 设置,并对这些卷进行快照,因为快照在块级别工作。
答案2
- EBS 支持的实例是任何以 EBS 卷作为其根设备的实例。这涵盖了几乎所有新实例。
- 快照会一直存在,直到被删除。它们不直接与实例或卷绑定,但您可以查看快照是从哪个卷创建的。
- 您可以从快照创建卷,然后将该卷挂载为实例的根目录,或将其附加到实例并从实例内部挂载到您想要的任何位置。您不能直接挂载快照。
- 由此可见,如果您基于快照(或基于快照创建的 AMI)创建新实例,则您正在使用体积。快照本身完全不受影响。您可以从快照创建另一个新卷,它将与最初拍摄快照时完全相同。
- 快照肯定保存到 S3。我相信 EBS 卷本身也是如此。
如果我遗漏了您的任何问题,或者某些内容仍不清楚,请发表评论。