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

我对每一个的理解:

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

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

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


当前回答

答案:D

1 GB存储在US-East-1: (更新至2016年12月20日)

冰川:0.004美元/月(注:2016年大幅降价) S3: 0.023美元/月 S3-IA(2015年9月公布): $0.0125/月(+$0.01/gig检索费用) EBS: $0.045-0.1/月(取决于速度- SSD与否)+ IOPS成本 EFS: 0.3美元/月

进一步的存储选项,可用于在处理数据时/之前临时存储数据:

SNS SQS 运动流 DynamoDB, SimpleDB

以上成本仅为样本。不同地区之间可能存在差异,并且在任何时候都可能发生变化。此外,数据传输(到互联网上)还需要额外的费用。然而,它们显示了服务价格之间的比率。

这些服务之间有很多区别:

EFS 是:

Generally Available (out of preview), but may not yet be available in your region Network filesystem (that means it may have bigger latency but it can be shared across several instances; even between regions) It is expensive compared to EBS (~10x more) but it gives extra features. It's a highly available service. It's a managed service You can attach the EFS storage to an EC2 Instance Can be accessed by multiple EC2 instances simultaneously Since 2016.dec.20 it's possible to attach your EFS storage directly to on-premise servers via Direct Connect. ()

EBS是:

A block storage (so you need to format it). This means you are able to choose which type of file system you want. As it's a block storage, you can use Raid 1 (or 0 or 10) with multiple block storages It is really fast It is relatively cheap With the new announcements from Amazon, you can store up to 16TB data per storage on SSD-s. You can snapshot an EBS (while it's still running) for backup reasons But it only exists in a particular region. Although you can migrate it to another region, you cannot just access it across regions (only if you share it via the EC2; but that means you have a file server) You need an EC2 instance to attach it to New feature (2017.Feb.15): You can now increase volume size, adjust performance, or change the volume type while the volume is in use. You can continue to use your application while the change takes effect.

S3是:

An object store (not a file system). You can store files and "folders" but can't have locks, permissions etc like you would with a traditional file system This means, by default you can't just mount S3 and use it as your webserver But it's perfect for storing your images and videos for your website Great for short term archiving (e.g. a few weeks). It's good for long term archiving too, but Glacier is more cost efficient. Great for storing logs You can access the data from every region (extra costs may apply) Highly Available, Redundant. Basically data loss is not possible (99.999999999% durability, 99.9 uptime SLA) Much cheaper than EBS. You can serve the content directly to the internet, you can even have a full (static) website working direct from S3, without an EC2 instance

冰川是:

长期存档存储 储存非常便宜 回收可能非常昂贵 “回读”你的数据需要4个小时(所以只存储你知道你在很长一段时间内不需要检索的项目)

正如JDL的评论中提到的,在定价方面有几个有趣的方面。例如,Glacier、S3、EFS根据您的使用情况为您分配存储,而在EBS,您需要预先定义分配的存储。也就是说,你需要高估。(然而,向EBS卷添加更多存储是很容易的,这需要一些工程,这意味着您总是“多付”EBS存储,这使得它更加昂贵。)

来源:AWS存储更新-新的低成本S3存储选项和冰川降价

其他回答

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

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

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

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

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

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

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

简单地说

Amazon EBS提供块级存储。

Amazon EFS提供网络连接的共享文件存储。

Amazon S3提供对象存储功能。