你几乎无法把EFS和S3进行比较,因为它们是两个非常不同的东西,尽管它们的功能有些重叠或者至少表面上看起来是这样。
它们都用于存储数据,并且它们的存储价格模型随着时间的推移呈线性增长。
但是S3是一个具有HTTP接口和混合一致性模型的对象存储...
而EFS是一个实际的文件系统,具有NFS接口,因此几乎肯定会提供即时一致性。
使用像s3fs这样的工具将S3与其它组件结合使用可以模拟文件系统的方式,但并不能在所有情况下完全像实际的文件系统那样运行。
从某种意义上说,EFS是回答“如何将EBS卷同时附加到多个实例?”这个问题的答案。以前,当然是“你不能”。您可以在任意数量的实例上挂载EFS公开的文件系统,结果应该与您拥有“共享卷”时看到的非常相似。
与S3相比,它的性能并不是一个公平的比较,因为它们是为不同目的而设计的不同东西,但从任何有意义的定义来看,EFS几乎毫无疑问会更“快”。
另外,在Linux系统上挂载EFS文件系统不需要任何软件。
如前所述,EFS与S3完全不同。最简单的方法是查看底层技术。
S3是对象存储,意味着它是一种更高层次的数据存储系统,本质上是一个数据库“blob”存储,将数据以对象的形式存储在底层的简单数据库中。它被设计为“一次写入,多次读取”访问,非常适合像图像或视频这样的媒体数据,特别是因为它是分布式的,并提供非常高的冗余性。
EFS是网络存储系统,底层是存储阵列(SAN),并且它提供了用于多会话网络文件系统(NFS)的标准协议。它构建在高速SSD驱动器上,旨在用于您的EC2实例的共享存储,类似于文件服务器。这对于AWS来说是一个漫长的过程,我认为这是AWS缺失的最重要的关键组件之一,以便真正成为竞争对手。
EFS的性能将是可扩展的,虽然我还没有看到详细信息,但我相信它将允许像EBS一样提供预配置的IOPS。
EFS比S3要贵很多(10倍),价格为0.30美元/GB vs 0.03美元/GB。从IOPs的角度来看,EFS应该会表现得更好,因为它是基于SSD的,而且不像S3那样在顶部有HTTP的开销。它是必要的作为一项NAS服务。
两者之间的两个额外差异: