AWS EFS vs EBS vs S3(差异和何时使用?)


315

按照该问题的标题,AWS EFS,EBS和S3之间的实际区别是什么?

我对以下各项的理解:

  • S3是可在任何地方访问的存储设施
  • EBS是可以安装到EC2的设备
  • EFS是可以挂载到EC2的文件系统

那么,为什么要在EFS上使用EBS?似乎它们具有相同的用例,但语义上的细微差别?尽管EFS是跨AZ复制的,而AZ只是一个已安装的设备。我想我对EBS缺乏了解,因此我无法区分。

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


2
EFS就像NFS。EBS本质上是一个SAN。S3 有点像WebDav。冰川可能是蓝光DVD storagemojo.com/2014/04/25/amazons-glacier-secret-bdxl
Neil McGuigan

Answers:


466

一个字答案:MONEY:D

在US-East-1中存储1 GB :( 于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
  • 运动流
  • DynamoDB,SimpleDB

以上费用只是样本。区域之间可能存在差异,并且可以随时更改。此外,还有额外的数据传输费用(传输到Internet)。但是,它们显示了服务价格之间的比例

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

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.Feb.15):现在可以在使用卷时增加卷大小,调整性能或更改卷类型。更改生效后,您可以继续使用您的应用程序。

S3是:

  • 对象存储(不是文件系统)。
  • 您可以存储文件和“文件夹”,但不能像传统文件系统那样具有锁,权限等
  • 这意味着,默认情况下,您不能只挂载S3并将其用作Web服务器
  • 但这是为您的网站存储图像和视频的理想选择
  • 非常适合短期归档(例如几个星期)。这对于长期归档也很有利,但是Glacier更具成本效益。
  • 非常适合存储日志
  • 您可以访问每个地区的数据(可能需要支付额外费用)
  • 高度可用,冗余。基本上不可能丢失数据(99.999999999%的耐久性,99.9的正常运行时间SLA)
  • 比EBS便宜得多。
  • 您可以直接将内容提供给Internet,甚至可以让完整的(静态)网站直接从S3运行,而无需EC2实例

冰川是:

  • 长期档案存储
  • 极其便宜的存储
  • 检索可能非常昂贵
  • 最多需要4个小时来“回读”您的数据(因此,仅存储您知道不需要长时间检索的项目)

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

来源:AWS Storage Update –新型低成本S3存储选项和冰川降价


8
如果需要快速恢复数据,冰川是极其昂贵的。liangzan.net/aws
Anatoly

6
不同意的S3是比便宜EBS。随着S3你只能有2000 PUT和20 000免费获得。与EBS您一起免费进行2,000,000次I / O操作。这里是我的QA stackoverflow.com/questions/34048866/...
格林

2
2000000 S3的读取成本约为0.4美元,2000000的写入成本约为5美元...但是要点是,您需要为任务选择正确的存储。S3(主要)是大型文件,不是经常更改,但可广泛访问的文件是最好的。(有很多例外:D)
Adam Ocsvari

2
比较好。但是EBS与EFS之间的另一个主要区别是EBS是固定的存储量。是的,1 GB的比较是不同的,但是为什么要创建1GB的EBS分区呢?最小值,如果要创建10 GB分区,则对于$ 10.5-1.0,对于存储在10GB数据中的相同1GB数据,则为$ .5-1.0。根据您存储数据的需求增长的速度以及您要支付多少未使用空间,EFS可能是一个更好的选择。
JDL

3
同样值得注意的是:EFS当前仅适用于Linux,不适用于Windows。
安德鲁·克拉克

110

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

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


我也是。提出问题或投票(而不是回答)的人根本不知道UFS和NFS系统之间有什么区别。
宝马

5
同样,这是使用S3和EBS之间的区别-S3和EFS对于跨多个服务器共享的数据非常有效,而EBS则不能。
Geoffrey Wiseman

而且EFS不能用作CDN的来源,S3对此角色更好。如果您有大量需要CDN的资产,请更好地使用S3
Moses Liao GZ

71

修正比较:

  • S3是可在任何地方访问的存储设施
  • EBS是可以安装到EC2的设备
  • EFS是一个文件系统,您可以同时将其安装到多个EC2实例上

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

为什么要使用S3?

  • 您无需将文件“本地”到一个或多个EC2实例。
  • (有效)无限容量
  • 内置网络服务,身份验证

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

7

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


2
那太慢了。起初我以为这是OP的错误,但是在检查了文档之后是正确的(截至2017年)
Jakobovski

7

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

电子业务系统

取自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添加到组合中


2

简单来说

Amazon EBS提供块级存储。

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

Amazon S3提供对象存储。


1

EBS是简单的-块级存储,可以将其附加到来自同一可用区的实例,并且可以不考虑实例寿命而生存。

但是,EFS和S3之间存在有趣的区别,并为此确定了正确的用例。

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

用例:

  • 每当我们有成千上万个需要同时处理文件的实例时,建议在S3上使用EFS。
  • 还要注意,S3是基于对象的存储,而EFS是基于文件的存储,这意味着无论何时我们要求连续更新(刷新)文件,都应使用EFS。
  • S3最终是一致的,而EFS是强一致的。如果您无法承受最终的一致性,则应使用EFS

0

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

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


0

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

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.