Amazon EC2数据持久性

根据亚马逊EC2的常见问题解答 ,当一个实例被终止时,数据不见了。 在我的实例重新启动的情况下,可以采取哪些步骤来保留数据? 我一直在研究EBS和S3 – 这些对于存储活动数据库是否有用? 无论如何重启实例的频率是多less?

    像其他人所说,EBS – 弹性块存储。 我现在正在使用它,现在它被释放给大众。 它比S3多点:

    • EBS 速度很快 。 据亚马逊说,甚至比当地的坐骑还要快。
    • EBS 安装为适当的设备 。 不同于S3,你需要在你的代码中使用自定义的S3对象访问逻辑,或者中间件(JungleDisk,ElasticDisk等),它们提出了自己的问题和成本
    • EBS很容易备份 。 亚马逊赋予一个能够拍摄快照的能力,并保存在S3上
    • EBS 在实例之间可移植的 –可以从一个实例卸载卷,并将其连接到另一个实例
    • EBS设备甚至可以一起RAID以提高可靠性

    到目前为止,我在EBS方面的经验是迄今为止我所处理的AWS最积极的一点。


    更新:虽然我对EBS的经验是积极的,但其他人却遇到了问题。 非常特别的EBS不正确地实现fsync()。 Ted Dziuba在他的博客文章Amazon有一些有趣的话- 痛苦的目的 : 神话2:架构将拯救你免于云故障

    Amazon Elastic Block Store更令人愉快,正如Redditpipe理员所发现的那样,他们会高兴地接受fsync()的调用,并且对你的脸说谎,说数据已经写入磁盘,当它没有是。

    EBS肯定会用于数据库,并且是Amazon的EBS描述中的一个例子。 “Amazon EBS特别适合需要数据库的应用程序……”

    EBS将像块设备一样工作(比如硬盘),使用它可以给你更宽的自由度和舒适感。 S3在概念上更像是真正快速的FTP,具有特殊的API。 你可以想象使用它作为数据库的一部分,但标准的数据库不能运行(还?)。

    您需要查看亚马逊对性能(EBS> S3),耐用性(S3> EBS)和价格(取决于)的描述。

    正如其他答案中提到的, EBS是永久和方便磁盘存储的标准解决scheme。 这应该是你的默认选项。 事实上,较新的EC2实例types默认使用它,而不是原始的,非持久实例存储。

    但是,在考虑持久性时,还需要仔细考虑数据的可用性 (避免数据不可用的时间)和持久性 (避免数据丢失)。

    EBS涵盖了基本的使用案例,但请记住:

    • S3的devise比EBS更耐用。 简单地说,他们保留了更多的数据副本,并声称对S3有99.999999999%的耐用性(参见S3 FAQ)。 这里的实际数字概率(这个数字太高了,使得火星入侵看起来更可能)并不像AWS已经在S3持久性方面赢得声誉并且在这里有非常好的logging那样重要。 EBS也是如此。
    • 虽然亚马逊不会直接提供这方面的统计数据,但许多人认为实例存储在历史上比EBS提供更高的可用性。

    最近的AWS中断, 2011年的这种严重的多天的失败和2012 年的 另一次 ,给出了EBS的复杂性以及中断和数据丢失的小但不可忽视的风险的一些例证。

    底线:为了确保您不会丢失数据, 请在S3中保留数据备份 。 EBS快照是EBS的一个简单的方法。 如果高可用性至关重要,则还应考虑在多个可用区中使用实例存储(除EBS之外或代替EBS)。

    听起来好像你担心丢失数据,那么你需要上述的EBS 。 这里有一些介绍。

    到目前为止,我还没有亲自看过它,现在我只是使用S3进行备份。