ChatGPT解决这个技术问题 Extra ChatGPT

AWS EFS vs EBS vs S3(差异和何时使用?)[关闭]

关闭。此问题不符合 Stack Overflow 准则。它目前不接受答案。我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便可以用事实和引用来回答它。 11 个月前关闭。社区上个月审查了是否重新打开此问题并将其关闭:原始关闭原因未解决 改进此问题

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

我对每一个的理解:

S3 是一个可在任何地方访问的存储设施

EBS 是一种可以挂载到 EC2 上的设备

EFS 是一个可以挂载到 EC2 上的文件系统

那么我为什么要使用 EBS 而不是 EFS?似乎它们具有相同的用例但语义差异很小?虽然 EFS 是跨 AZ 复制的,而 EBS 只是一个挂载的设备。我想我对 EBS 的理解不足,因此我无法区分。

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

EFS 就像 NFS。 EBS 本质上是一个 SAN。 S3 有点像 WebDav。 Glacier可能是蓝光 DVDstoragemojo.com/2014/04/25/amazons-glacier-secret-bdxl

A
Adam Ocsvari

一个字回答:钱:D

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

冰川:0.004 美元/月(注:2016 年大幅降价)

S3:0.023 美元/月

S3-IA(2015.09 宣布):0.0125 美元/月(+0.01 美元/演出检索费用)

EBS:0.045-0.1 美元/月(取决于速度 - SSD 与否)+ IOPS 成本

EFS:0.3 美元/月

更多存储选项,可用于在处理数据时/之前临时存储数据:

社交网络

SQS

运动流

动态数据库、简单数据库

上面的费用只是样品。可能因地区而异,并且随时可能发生变化。数据传输(到互联网)也有额外的费用。但是,它们显示了服务价格之间的比率。

这些服务之间还有很多不同之处:

EFS 是:

普遍可用(不在预览版中),但在您所在的地区可能尚不可用

网络文件系统(这意味着它可能有更大的延迟,但它可以在多个实例之间共享;甚至在区域之间)

与 EBS 相比,它价格昂贵(大约 10 倍以上),但它提供了额外的功能。

这是一项高度可用的服务。

这是一项托管服务

您可以将 EFS 存储附加到 EC2 实例

可以被多个EC2实例同时访问

自 2016 年 12 月 20 日起,可以通过 Direct Connect 将您的 EFS 存储直接附加到本地服务器。 ()

EBS 是:

块存储(因此您需要对其进行格式化)。这意味着您可以选择所需的文件系统类型。

由于它是块存储,您可以将 Raid 1(或 0 或 10)与多个块存储一起使用

真的很快

它相对便宜

借助 Amazon 的新公告,您可以在 SSD-s 上的每个存储存储多达 16TB 的数据。

出于备份原因,您可以对 EBS(仍在运行时)进行快照

但它只存在于特定区域。虽然您可以将其迁移到另一个区域,但您不能只是跨区域访问它(仅当您通过 EC2 共享它时;但这意味着您有一个文件服务器)

您需要一个 EC2 实例将其附加到

新功能(2017 年 2 月 15 日):您现在可以在使用卷时增加卷大小、调整性能或更改卷类型。在更改生效期间,您可以继续使用您的应用程序。

S3 是:

对象存储(不是文件系统)。

您可以存储文件和“文件夹”,但不能像使用传统文件系统那样拥有锁、权限等

这意味着,默认情况下,您不能只挂载 S3 并将其用作您的网络服务器

但它非常适合为您的网站存储图像和视频

非常适合短期存档(例如几周)。它也适合长期存档,但 Glacier 更具成本效益。

非常适合存储日志

您可以访问每个地区的数据(可能需要支付额外费用)

高度可用,冗余。基本上不可能丢失数据(99.999999999% 的持久性,99.9 的正常运行时间 SLA)

比EBS便宜很多。

您可以将内容直接提供到 Internet,甚至可以让完整(静态)网站直接从 S3 运行,无需 EC2 实例

冰川是:

长期存档存储

非常便宜的存储

检索可能非常昂贵

“读回”您的数据最多需要 4 小时(因此只存储您知道不需要长时间检索的项目)

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

来源:AWS Storage Update – New Lower Cost S3 Storage Option & Glacier Price Reduction


如果需要快速恢复数据,Glacier 会非常昂贵liangzan.net/aws-glacier-calculator
不同意 S3EBS 便宜。使用 S3,您只能免费获得 2000 PUT 和 20 000 GET。使用 EBS,您可以免费进行 2 000 000 次 I/O 操作。这是我的 QA stackoverflow.com/questions/34048866/…
2 000 000 次 S3 读取成本约为 0.4 美元,2 000 000 次写入成本约为 5 美元……但重点是,您需要为任务选择合适的存储。 S3(主要)最适合用于大型、不太频繁更改但可广泛访问的文件。 (有很多例外:D)
好对比。但 EBS 和 EFS 之间的另一个主要区别是 EBS 是固定数量的存储。所以是的,1 GB 的比较是不同的,但你为什么要创建一个 1 GB 的 EBS 分区呢?最低限度,如果您要创建一个 10 GB 的分区,那么对于存储在 10 GB 数据上的相同 1 GB 数据,您需要花费 0.5-1.0 美元。根据您存储数据的需求增长速度以及您想要继续支付多少未使用空间,EFS 可能是更好的选择。
另外值得注意的是:EFS 目前仅适用于 Linux,不适用于 Windows。
A
Adrian Mole

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

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


我也是。提出问题或投票问题(而不是答案)的人只是不知道 UFS 和 NFS 系统之间有什么不同。
同样,这是使用 S3 和 EBS 之间的区别——S3 和 EFS 可以很好地用于跨多个服务器共享数据,而 EBS 则不行。
EFS也不能作为CDN的来源,S3更适合这个角色。如果您有很多资产需要使用 CDN,最好使用 S3
EBS 的 IO1 和 IO2 现在可以是多连接位,在这种情况下不能用作引导卷。
t
tedder42

修复比较:

S3 是一个可在任何地方访问的存储设施

EBS 是一种可以挂载到 EC2 上的设备

EFS 是一种文件系统,您可以同时挂载到多个 EC2 实例上

此时比较 EFS 和 EBS 还为时过早——EFS 的性能未知,其可靠性也未知。

为什么要使用 S3?

您不需要文件是一个或多个 EC2 实例的“本地”文件。

(有效地)无限容量

内置网络服务,身份验证


我最近设置了一个 EFS 卷,因为它现在在 West-2 中可用。我似乎遇到了大文件的写入问题。例如,创建 docker 容器因“文件太大”而失败,创建 sqlite 数据库也失败。在我使用的 EBS 卷上没有这些问题。因此,是的,EFS 可能存在此时需要“修复”的可用性/可靠性问题。
h
hansaplast

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

EBS

取自 EBS docs

| 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,具体取决于卷大小。

您可以通过例如 deploying EBS volumes as RAID0 进一步提高吞吐量

EFS

取自 EFS docs

| 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 |

基本吞吐量是有保证的,突增吞吐量会在低于基本吞吐量的情况下用完您收集的积分(因此您只能在有限的时间内获得此积分,有关更多详细信息,请参阅 here

S3

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


u
user1677120

添加到比较中:EFS 上的(突发)读/写性能取决于收集的积分。积分的收集取决于您存储在其上的数据量。更多日期 -> 更多学分。这意味着当您只需要经常读取或写入的几 GB 存储空间时,您很快就会用完信用并且吞吐量下降到大约 50kb/s。解决此问题的唯一方法(在我的情况下)是添加大型虚拟文件以增加获得的信用额度。但是更多的存储空间-> 更多的成本。


那是疯狂的慢。起初我认为这是 OP 的错误,但在检查文档后它是正确的(截至 2017 年)
P
Pallavi Sengupta

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

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 实例,从而可以实时处理和分析大量数据。


T
Tejaskumar

EBS 很简单——块级存储,可以从同一可用区附加到一个实例,并且无论实例寿命如何都可以生存。

然而,有趣的区别在于 EFS 和 S3 之间,并为它确定适当的用例。

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

用例:

每当我们有数千个需要同时处理文件的实例时,推荐使用 EFS 而不是 S3。

另请注意,S3 是基于对象的存储,而 EFS 是基于文件的存储,这意味着每当我们需要连续更新(刷新)文件时,我们都应该使用 EFS。

S3 是最终一致的,而 EFS 是强一致的。如果您负担不起最终的一致性,您应该使用 EFS


S3 现在支持强一致性:aws.amazon.com/fr/s3/consistency
您能否进一步解释一下为什么在同时访问期间建议使用 EFS 而不是 S3(如您的第一种情况)。
@Krupa:与同一文件上的 S3 相比,EFS 每秒允许更多的读/写操作。 EFS - 在通用模式下,每秒限制为 35,000 次文件操作。读取数据或元数据的操作消耗一个文件操作,写入数据或更新元数据的操作消耗五个文件操作。即每秒最多 35,000 次读取操作,或 7,000 次写入操作或两者的某种组合。 S3 - 存储桶中每个前缀每秒 3,500 个 PUT/COPY/POST/DELETE 或 5,500 个 GET/HEAD 请求
M
Mandrek

简单来说

Amazon EBS 提供块级存储。

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

Amazon S3 提供对象存储。


B
BigData-Guru

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

EFS:

网络文件系统:可以在多个服务器之间共享;甚至区域之间。同样不适用于 EBS 案例。这可用于存储 ETL 程序而没有安全风险 高度可用、可扩展的服务。运行任何具有高工作负载、需要可扩展存储并且必须快速产生输出的应用程序。它可以提供更高的吞吐量。它与文件系统的突然增长相匹配,即使对于高达 500,000 IOPS 或 10 GB/秒的工作负载也是如此。直接迁移应用程序支持:EFS 具有弹性、可用性和可扩展性,使您能够轻松快速地移动企业应用程序,而无需重新构建它们。大数据分析:它能够运行需要大量节点吞吐量、低延迟文件访问和写后读操作的大数据应用程序。

EBS:

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

S3:

强大的性能、可扩展性和可用性:Amazon S3 无需资源采购周期或前期投资即可扩展存储资源。

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

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


r
reema dass

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

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


S
Suresh Chandra Joshi

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

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


M
Marjun Villegas

EFS & S3 具有相同的目的,可以存储任何类型的对象或文件。

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

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

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


a
anir

这个问题得到了很多人的回答,我只想在决定使用 AWS 中的任何服务时指出一点,即了解每个服务的用例,并查看该服务将提供的解决方案。 Architected Framework,您是否需要高可用性、容错、成本优化。这将有助于决定要使用的任何类型的服务。


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅