EC2 机器持久性

EC2 机器持久性

我注意到 EBS 支持的 AMI 非常类似于 VMWare 实例——我可以停止它们并将它们保存到磁盘,并且所有这些都可以相对较快地完成。

但是,我认为 S3 支持的机器有所不同。它们无法“停止”,而只能关闭、写入 S3 磁盘并重新启动;这样做至少需要 15 分钟的延迟。

为什么会有差异?AMI 提供商如何决定使用 EBS 还是 S3?如果我需要相对频繁地停止/保留/重新启动机器,那么我是否只能使用 EBS 支持的机器?

答案1

让 AMI 从 EBS 分区启动的替代方法是使用非持久性实例存储。这有点类似于使用现场 CD,其中 Live CD 将代表 S3 存储桶中的 AMI,它是不可变的。在这两种情况下,当操作系统关闭时,您都会丢失所有内容。

请记住,具有 EBS 根实例的 AMI 已得到支持自 2009 年 12 月以来。这可能是为什么仍然有更多公共和社区 AMI 使用实例存储而不是 EBS 作为根分区的原因之一。另一方面,EBS 根的一个固有缺点是您需要为 EBS 存储和 I/O 流量付费,而使用实例存储是免费的。但是,这种成本通常并不高,但取决于您的应用程序的性质。另请注意,即使实例停止,您仍将继续支付存储费用。

此外,我认为这篇文章来自常见问题解答证实了上述内容,并描述了一个首选实例存储的场景:

对于根设备使用本地实例存储和 Amazon Elastic Block 存储 (Amazon EBS) 有什么区别?

启动 Amazon EC2 实例时,您可以将根设备数据存储在 Amazon EBS 或本地实例存储中。通过使用 Amazon EBS,根设备上的数据将独立于实例的生命周期而保留。这使您能够在以后停止并重新启动实例,这类似于关闭笔记本电脑并在再次需要时重新启动它。

或者,本地实例存储仅在实例的生命周期内持续存在。这是一种启动实例的廉价方法,其中数据不会存储在根设备上。例如,一些客户使用此选项来运行大型网站,其中每个实例都是一个克隆,以处理网络流量。

答案2

我没有足够的信誉来评论 Daniel Vassallo 的回答,但请查看 Ubuntu EBS AMI:

http://uec-images.ubuntu.com/releases/lucid/release/

它们是最好的,因为它们得到 Canonical 的支持,是服务器级的,并且包管理系统经过了您将在 ec2 上使用的实际内核的充分测试。

相关内容