根据问题的标题,AWS EFS、EBS和S3之间的实际区别是什么?

我对每一个的理解:

S3是一种在任何地方都可以访问的存储设施 EBS是可以挂载到EC2上的设备 EFS是一个可以挂载到EC2上的文件系统

为什么要用EBS而不是EFS呢?看起来他们有相同的用例,但有轻微的语义差异?尽管EFS是跨az复制的,因为EBS只是一个挂载设备。我想我对EBS的理解不足,所以我无法区分。

为什么选择S3而不是EFS?它们都可以存储文件、缩放和复制。我想S3必须使用SDK,而EFS是文件系统,您可以使用您选择的编程语言中的标准I/O方法来创建文件。但这是唯一真正的区别吗?


当前回答

我想知道为什么人们不强调支持EFS的最令人信服的原因。EFS可以同时挂载到多个EC2实例上,从而允许同时访问EFS上的文件。

(编辑2020年5月,EBS现在也支持同时挂载到多个EC2,请参阅: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html)

其他回答

补充比较:EFS上的读/写性能取决于所收集的积分。积分的收集取决于你在上面存储的数据量。更多的约会-更多的学分。这意味着当你只需要几GB的存储空间(经常读写)时,你很快就会耗尽信用额度,吞吐量下降到大约50kb/s。 解决这一问题的唯一方法便是添加大型虚拟文件去提高玩家获得积分的比率。然而,更多的存储->更多的成本。

修正比较:

S3是一种在任何地方都可以访问的存储设施 EBS是可以挂载到EC2上的设备 EFS是一个可以同时挂载到多个EC2实例上的文件系统

在这一点上,比较EFS和EBS还为时过早——EFS的性能还不知道,可靠性也不知道。

为什么要使用S3?

对于一个或多个EC2实例,您不需要文件是“本地”的。 (有效地)无限容量 内置web服务,身份验证

Amazon EBS提供块级存储—用于在其上创建文件系统并存储文件。 Amazon EFS—它的共享存储系统类似于NAS/SAN。您需要将它挂载到unix服务器并使用它。 Amazon S3—它是基于对象的存储,其中每个项目都使用http URL存储。

区别之一是EBS一次可以附加到一个实例,而EFS可以附加到多个实例,这就是共享存储的原因。 S2普通对象存储无法挂载。

EFS和S3有相同的用途,你可以存储任何类型的对象或文件。

但对我来说,唯一的区别是EFS允许您在VM(EC2)云中拥有一个传统的文件系统,具有更大的灵活性,例如可以附加到多个实例。

另一方面,S3是对象的一个独立的灵活且有弹性的服务器。它可以用于你的静态文件,图像,视频,甚至托管静态应用程序(js)。

EBS显然是用于块存储的,您可以在其中安装操作系统或与操作系统相关的任何东西。

EBS和EFS之间的主要区别在于,EBS只能从特定AWS区域中的单个EC2实例访问,而EFS允许跨多个区域和实例挂载文件系统。

最后,Amazon S3是一个善于存储大量备份或用户文件的对象存储。