AWS EFS vs EBS vs S3(差异&什么时候使用?)

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

我对每一个的理解:

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

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

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

178612 次浏览

修正比较:

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

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

为什么要使用S3?

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

答案: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是:

  • 一般可用(超出预览),但在您的地区可能还不可用
  • 网络文件系统(这意味着它可能有更大的延迟,但它可以跨几个实例共享;即使在地区之间)
  • 与EBS相比,它的价格昂贵(大约是EBS的10倍),但它提供了额外的功能。
  • 这是一个高可用性的服务。
  • 这是一个托管服务
  • 您可以将EFS存储附加到EC2实例
  • 可以同时被多个EC2实例访问吗
  • 自2016年12月20日起,可以将EFS存储直接附加到内部服务器通过直接连接。 ()

EBS是:

  • 块存储(所以你需要格式化它)。这意味着您可以选择所需的文件系统类型。
  • 由于它是块存储,您可以将Raid 1(或0或10)用于多个块存储
  • 它真的很快
  • 它相对便宜
  • 有了亚马逊发布的新产品,你可以在ssd上存储高达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存储更新-新的低成本S3存储选项冰川降价

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

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

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

除了价格和功能之外,吞吐量也有很大差异(正如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添加到组合中

简单地说

Amazon EBS提供块级存储。

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

Amazon S3提供对象存储功能。

Amazon EBS提供块级存储-用于在其上创建文件系统并存储文件。 Amazon EFS—它的共享存储系统类似于NAS/SAN。您需要将它挂载到unix服务器并使用它。 Amazon S3—它是基于对象的存储,其中每个项目都使用http URL存储。< / p > 其中一个区别是- EBS可以一次附加到一个实例,而EFS可以附加到多个实例,这就是为什么共享存储。 S2普通对象存储无法挂载。< / p >

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

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

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

可变性:

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

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

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

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

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

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

EFS:

  1. 网络文件系统:可以跨多个服务器共享;甚至在地区之间。这对于EBS情况是不可用的。 这可以用于存储ETL程序而没有安全风险

  2. 高可用性,可伸缩的服务。

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

  4. 可以提供更高的吞吐量。它可以匹配突然的文件系统增长,即使是高达500000 IOPS或10gb /秒的工作负载。

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

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

EBS:

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

S3:

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

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

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

这个问题很多人都回答了,我只是想说明一点,无论何时决定在AWS中加入任何服务,都要了解每个服务的用例,并看到该服务将提供的良好架构框架的解决方案,你是否需要高可用性,故障相关,成本优化。这将有助于决定要使用的任何类型的服务。

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

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

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实例,允许实时处理和分析大量数据。