根据问题的标题,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)

其他回答

答案: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存储选项和冰川降价

EBS是简单的块级存储,可以连接到来自相同AZ的实例,并且可以不受实例寿命的影响而存活。

但是,EFS和S3之间存在有趣的区别,并为其确定适当的用例。

成本:EFS的成本大约是S3的10倍。

可变性:

当我们有数千个需要同时处理文件的实例时,建议EFS优于S3。 还要注意,S3是基于对象的存储,而EFS是基于文件的存储,这意味着只要我们需要不断更新文件(刷新),我们就应该使用EFS。 S3是最终一致的,而EFS是强一致的。如果您无法提供最终的一致性,您应该使用EFS

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

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

修正比较:

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

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

为什么要使用S3?

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

AWS EFS、EBS和S3。从功能的角度来看,这是区别所在

EFS:

Network filesystem :can be shared across several Servers; even between regions. The same is not available for EBS case. This can be used esp for storing the ETL programs without the risk of security Highly available, scalable service. Running any application that has a high workload, requires scalable storage, and must produce output quickly. It can provide higher throughput. It match sudden file system growth, even for workloads up to 500,000 IOPS or 10 GB per second. Lift-and-shift application support: EFS is elastic, available, and scalable, and enables you to move enterprise applications easily and quickly without needing to re-architect them. Analytics for big data: It has the ability to run big data applications, which demand significant node throughput, low-latency file access, and read-after-write operations.

EBS:

对于NoSQL数据库,EBS为NoSQL数据库提供了峰值性能所需的低延迟性能和可靠性。

S3:

健壮的性能、可伸缩性和可用性:Amazon S3在资源采购周期或前期投资中免费扩展存储资源。

2)数据湖和大数据分析:创建一个数据湖,以原生格式保存原始数据,然后使用机器学习工具,分析来获得见解。

备份与恢复:安全、健壮的备份与恢复解决方案 数据归档 S3是一个善于存储大量备份或用户文件的对象存储。与EBS或EFS不同,S3不局限于EC2。存储在S3桶中的文件可以通过编程方式访问,也可以直接从AWS CloudFront等服务访问。许多网站使用它来保存他们的内容和媒体文件,这些文件可以通过AWS CloudFront有效地提供。