更新:虽然我在 EBS 方面的经验是积极的,但其他人也遇到了问题。非常具体地,EBS 没有正确实现 fsync()。Ted Dziuba 在他的博客文章Amazon — The Purpose of Pain : Myth 2: Architecture will save you from cloud failures 中谈到了一些有趣的话
使用 Amazon Elastic Block Store 变得更加有趣,正如 Reddit 管理员发现的那样,它会很乐意接受对 fsync() 的调用,并当面撒谎,说数据已写入磁盘,而实际上可能没有到过。
就像其他人所说的,EBS——弹性块存储。现在它已向公众发布,我自己正在使用它。它在多个方面都优于 S3:
到目前为止,我对 EBS 的体验是我迄今为止处理的关于 AWS 的最积极的事情。
更新:虽然我在 EBS 方面的经验是积极的,但其他人也遇到了问题。非常具体地,EBS 没有正确实现 fsync()。Ted Dziuba 在他的博客文章Amazon — The Purpose of Pain : Myth 2: Architecture will save you from cloud failures 中谈到了一些有趣的话
EBS 肯定适用于数据库,并且是 Amazon 的EBS 描述中的示例之一。“Amazon EBS 特别适合需要数据库的应用程序......”
EBS 将像块设备(想想硬盘)一样工作,为您提供广泛的使用自由和舒适性。S3 在概念上更像是真正快速的 FTP,具有特殊的 API。您可以想象将其用作数据库的一部分,但标准数据库并未在其上运行(还没有?)。
您将需要查看 Amazon 对性能 (EBS > S3)、耐用性 (S3 > EBS) 和价格(取决于)的描述。
正如其他答案中提到的,EBS是持久且方便的磁盘存储的标准解决方案。它应该是您的默认选项。实际上,较新的 EC2 实例类型默认使用它,而不是原始的非持久化实例存储。
但是,在考虑持久性时,您还需要仔细考虑数据的可用性(避免数据不可用的时间)和持久性(避免数据丢失)。
EBS 涵盖了基本用例,但请记住:
最近的 AWS 中断,例如2011 年和2012 年的多天严重故障,说明了 EBS 的复杂性以及中断和数据丢失的小但不可忽略的风险。
底线:为确保您不会丢失数据,请将数据备份保存在 S3 中。EBS 快照是对 EBS 执行此操作的一种简单方法。如果高可用性至关重要,还可以考虑在多个可用区中使用实例存储(除了 EBS 之外,或者代替 EBS)。
听起来如果您担心丢失数据,那么您需要上面提到的EBS。这里有一点介绍。
到目前为止,我个人还没有更多地研究它,我目前只是使用S3进行备份。