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

我对每一个的理解:

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

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

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


当前回答

除了价格和功能之外,吞吐量也有很大差异(正如user1677120所提到的):

EBS

摘自EBS文档:

| EBS volume | Throughput |           Throughput          |
|    type    |   MiB/s    |         dependent on..        |
|------------|------------|-------------------------------|
| gp2 (SSD)  | 128-160    | volume size                   |
| io1 (SSD)  | 0.25-500   | IOPS (256Kib/s per IOPS)      |
| st1 (HDD)  | 20-500     | volume size (40Mib/s per TiB) |
| sc1 (HDD)  | 6-250      | volume size (12Mib/s per TiB) |

请注意,对于io1, st1和sc1,您可以将吞吐量流量突发到至少125Mib/s,但也可以突发到500Mib/s,这取决于卷大小。

您可以通过将EBS卷部署为RAID0来进一步提高吞吐量

EFS

摘自EFS文档

| Filesystem |    Base    |   Burst    |
|    Size    | Throughput | Throughput |
|    GiB     |   MiB/s    |   MiB/s    |
|------------|------------|------------|
|         10 |        0.5 |        100 |
|        256 |       12.5 |        100 |
|        512 |       25.0 |        100 |
|       1024 |       50.0 |        100 |
|       1536 |       75.0 |        150 |
|       2048 |      100.0 |        200 |
|       3072 |      150.0 |        300 |
|       4096 |      200.0 |        400 |

基本吞吐量是有保证的,爆发吞吐量会消耗你在低于基本吞吐量时所收集到的积分(所以你只能在有限的时间内拥有它,参见这里了解更多详细信息。

S3

S3是完全不同的东西,所以它不能真正与EBS和EFS相比。另外:S3没有公布的吞吐量指标。您可以通过并行下载来提高吞吐量(我在某个地方读到AWS的声明,这样基本上可以获得无限的吞吐量),或者将CloudFront添加到组合中

其他回答

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

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

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

AWS(亚马逊网络服务)以其广泛的产品线而闻名。(可能)有一些亚马逊Web服务高手确切地知道如何以及何时使用哪种亚马逊产品完成哪种任务。我们其余的人迫切需要帮助。

AWS提供三种常见的存储服务:S3、弹性块存储(EBS)和弹性文件系统(EFS),它们的功能各不相同,并提供不同级别的性能、成本、可用性和可伸缩性。我们将比较这些存储选项的性能、成本和存储数据的可访问性,以及它们的用例。

AWS存储选项:

Amazon S3是一种基本的对象存储服务,可用于托管网站图像和视频,以及数据分析、智能手机和web应用程序。在对象存储中,数据作为对象进行管理,这意味着所有数据类型都以其原生格式存储。使用对象存储,没有文件关系的层次结构,数据对象可以分布在许多机器中。您可以在任何一台有internet连接的计算机上使用S3服务。

AWS EBS提供持久的块级数据存储。块存储系统比标准文件存储更通用,提供更好的容量,因为文件存储在称为块的几个卷中,这些卷充当独立的硬盘驱动器。Amazon EC2实例必须用EBS挂载。业务连续性、软件测试和数据库管理都是用例的示例。

AWS EFS是一个共享的弹性文件存储框架,可以根据文件的添加和删除进行扩展和收缩。它遵循传统的文件存储模型,将数据组织到文件夹和子目录中。EFS对于内容管理系统和SaaS应用程序非常有用。EFS可以同时挂载在几个EC2实例上。

哪个AWS云存储服务是最好的?

一如既往,这要视情况而定。

仅就数据存储而言,Amazon S3是最便宜的选择。另一方面,S3有一系列其他的定价标准,包括每次上传的成本、S3分析和每gb从S3传输的数据。EFS的成本结构是最直接的。

Amazon S3是一种可以从任何地方访问的云存储服务。AWS EBS只能在单个区域中访问,而多个EFS实例可以跨多个区域共享文件。

EBS和EFS在IOPS和延迟方面都优于Amazon S3。

通过一个API调用,EBS可以扩展或缩小。您可以将EBS用于数据库备份和其他需要可靠、可预测性能的低延迟交互式应用程序,因为它的成本低于EFS。

EFS可以更好地处理大量数据,例如大型分析工作负载。用户必须分解数据并将其分布到EBS实例之间,因为这种规模的数据不能存储在EBS中允许的单个EC2实例上。EFS服务允许同时访问数千个EC2实例,允许实时处理和分析大量数据。

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

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

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

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

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