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

时间:2015-04-11 08:43:03

标签: amazon-web-services storage

根据此问题的标题,AWS EFS,EBS和S3之间存在哪些实际差异?

我对每个人的理解:

  • S3是可随时随地访问的存储设施
  • EBS是一种可以安装到EC2上的设备
  • EFS是一个可以安装到EC2上的文件系统

那为什么我会使用EBS而不是EFS?看起来他们有相同的用例但是语义差异很小?虽然EFS是在AZ之间复制的,因为EBS只是一个已安装的设备。我想我对EBS的理解是缺乏的,因此我无法区分。

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

13 个答案:

答案 0 :(得分:419)

一个字回答:钱:D

1 GB存储在US-East-1: (2016.dec.20更新)

  • 冰川:每月0.004美元(注:2016年主要降价)
  • S3:$ 0.023 /月
  • S3-IA(2015.09宣布):        $ 0.0125 /月(+ $ 0.01 / gig检索费)
  • EBS:$ 0.045-0.1 /月(取决于速度 - SSD与否)+ IOPS费用
  • EFS:$ 0.3 /月

其他存储选项,可用于在处理数据时/临时存储数据:

  • SNS
  • SQS
  • Kinesis stream
  • DynamoDB,SimpleDB

以上费用只是样品。区域可能存在差异,并且可能随时发生变化。还有额外的数据传输成本(到互联网)。但是,他们显示服务价格之间的比率

这些服务之间存在很多差异:

EFS是:

  • Generally Available (预览外),但您所在地区可能尚未提供
  • 网络文件系统(这意味着它可能有更大的延迟,但可以在多个实例之间共享;甚至在区域之间)
  • 与EBS相比价格昂贵(大约多10倍),但它提供了额外的功能。
  • 这是一项高度可用的服务。
  • 这是一项托管服务
  • 您可以将EFS存储附加到EC2实例
  • 可以同时访问多个EC2实例
  • 自2016.dec.20起,您可以直接将您的EFS存储空间附加到on-premise servers via Direct Connect.()

EBS是:

  • 块存储(因此您需要对其进行格式化)。这意味着您可以选择所需的文件系统类型。
  • 由于它是块存储,您可以将Raid 1(或0或10)与多个块存储一起使用
  • 真的很快
  • 相对便宜
  • 借助亚马逊发布的新消息,您可以在SSD-s上为每个存储存储多达16TB的数据。
  • 出于备份原因,您可以对EBS进行快照(当它仍然在运行时)
  • 但它只存在于特定地区。虽然您可以将其迁移到其他区域,但您不能只跨区域访问它(只有通过EC2共享它;但这意味着您有文件服务器)
  • 您需要一个EC2实例才能将其附加到
  • New feature(2017.Feb.15):您现在可以在使用音量时增加音量,调整音量或更改音量类型。您可以在更改生效时继续使用您的应用程序。

S3是:

  • 对象存储(不是文件系统)。
  • 您可以存储文件和"文件夹"但不能像使用传统文件系统那样拥有锁,权限等
  • 这意味着,默认情况下,您无法安装S3并将其用作您的网络服务器
  • 但它非常适合存储您网站的图片和视频
  • 非常适合短期归档(例如几周)。它对长期存档也有好处,但冰川更具成本效益。
  • 非常适合存储日志
  • 您可以访问每个地区的数据(可能需要支付额外费用)
  • 高度可用,冗余。基本上数据丢失是不可能的(99.999999999%耐久性,99.9正常运行时间SLA)
  • 比EBS便宜得多。
  • 您可以直接将内容提供给互联网,甚至可以直接从S3使用完整的(静态)网站,无需EC2实例

冰川是:

  • 长期存档存储
  • 存储非常便宜
  • 检索可能非常昂贵
  • 最多需要4个小时才能回读"您的数据(因此只存储您知道自己不需要长时间检索的项目)

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

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

答案 1 :(得分:94)

我想知道为什么人们没有强调支持EFS的最有说服力的理由。 EFS可以同时安装在多个EC2实例上,从而可以同时访问EFS上的文件。

答案 2 :(得分:63)

修正比较:

  • S3是可随时随地访问的存储设施
  • EBS是一种可以安装到EC2上的设备
  • EFS是一个可以同时挂载到多个EC2实例的文件系统

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

为什么要使用S3?

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

答案 3 :(得分:6)

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

答案 4 :(得分:5)

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

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添加到混合中

答案 5 :(得分:1)

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

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

答案 6 :(得分:1)

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

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

AWS 存储选项:

Amazon S3 是一种基本的对象存储服务,可用于托管网站图像和视频,以及数据分析和智能手机和 Web 应用程序。数据在对象存储中作为对象进行管理,这意味着所有数据类型都以其原生格式存储。使用对象存储,没有文件关系的层次结构,数据对象可以通过多台机器传播。您可以在任何具有互联网连接的计算机上使用 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 实例,从而可以实时处理和分析大量数据。

答案 7 :(得分:0)

简单地说

Amazon EBS提供块级存储。

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

Amazon S3提供对象存储。

答案 8 :(得分:0)

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

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

答案 9 :(得分:0)

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

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

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

用例:

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

答案 10 :(得分:0)

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

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

另一方面,

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

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

答案 11 :(得分:0)

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

EFS

  1. 网络文件系统:可以在多个服务器之间共享;即使在区域之间。 EBS情况则不一样。 可以将其用于存储ETL程序,而无安全隐患

  2. 高度可用的可扩展服务。

  3. 运行任何具有高工作负载,需要可扩展存储并且必须快速产生输出的应用程序。

  4. 它可以提供更高的吞吐量。即使文件负载高达500,000 IOPS或每秒10 GB,它也可以适应文件系统的突然增长。

  5. 移动应用程序支持:EFS具有弹性,可用性和可伸缩性,使您能够轻松,快速地移动企业应用程序而无需重新架构它们。

  6. 大数据分析:它具有运行大数据应用程序的能力,这些应用程序要求大量的节点吞吐量,低延迟的文件访问和写入后读取操作。

EBS

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

S3:

强大的性能,可伸缩性和可用性:Amazon S3可扩展存储资源,而无需进行资源采购周期或前期投资。

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

  1. 备份和还原:安全,强大的备份和还原解决方案
  2. 数据归档
  3. S3是一个对象存储,擅长存储大量备份或用户文件。与EBS或EFS不同,S3不限于EC2。可以以编程方式或直接从服务(例如AWS CloudFront)访问S3存储桶中存储的文件。许多网站都使用它来保存其内容和媒体文件,可以通过AWS CloudFront有效地对其进行服务。

答案 12 :(得分:0)

其他人对此问题的回答非常多,我只想在决定在 AWS 中使用任何服务时强调一点,即了解每个服务的用例并查看该服务将在以下方面提供的解决方案架构完善的框架,您是否需要高可用性、容错、成本优化。这将有助于决定要使用的任何类型的服务。