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

Int*_*ist 299 storage amazon-web-services

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

我对每个人的理解:

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

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

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

Ada*_*ari 447

一个字回答:钱: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流
  • DynamoDB,SimpleDB

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

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

EFS是:

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

EBS是:

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

S3是:

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

冰川是:

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

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

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

  • 如果需要快速恢复数据,冰川是非常昂贵的http://liangzan.net/aws-glacier-calculator/ (8认同)
  • 不同意"S3"比"EBS"便宜.使用`S3`,您只能免费获得2000 PUT和20 000 GET.使用`EBS`,您可以免费进行2 000 000次I/O操作.这是我的质量保证http://stackoverflow.com/questions/34048866/aws-ec2-doesnt-display-instance-usage-report-why-answered (6认同)
  • 2 000 000 S3读取成本~0.4美元,2 000 000写入成本〜5美元......但重点是,您需要为任务选择合适的存储空间.S3(主要)用于大型,不太频繁更改但广泛可访问的文件最佳.(有很多例外:D) (2认同)
  • 很好的比较.但EBS和EFS之间的另一个主要区别是EBS是固定数量的存储.所以是的,1 GB的比较是不同的,但为什么要创建一个1GB的EBS分区?最小,如果你要创建一个10 GB的分区,那么对于存储在10GB数据上的相同1GB数据,你会看到$ .5-1.0.根据您存储数据的需求增长速度以及您希望继续支付多少未使用空间,EFS可能是更好的选择. (2认同)
  • 另外值得注意的是:EFS目前仅适用于Linux,而不适用于Windows. (2认同)

Kab*_*eer 106

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

  • 同样,这是使用S3和EBS之间的区别 - S3和EFS适用于跨多个服务器共享的数据,而EBS则不然. (5认同)

ted*_*r42 67

修正比较:

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

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

你为什么要用S3?

  • 您不需要将文件作为一个或多个EC2实例的"本地".
  • (有效)无限的能力
  • 内置Web服务,身份验证

  • 我最近建立了一个EFS卷,因为它现在可以在West-2中使用.我好像有大文件写问题.例如,创建一个docker容器失败,"file too large"并且创建sqlite db也失败了.在我使用的EBS卷上没有这些问题.因此,EFS可能存在需要"修复"的可用性/可靠性问题. (2认同)

use*_*120 7

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

  • 那是疯狂的慢.起初我认为OP是一个错误,但在检查文档后它是正确的(截至2017年) (2认同)

han*_*ast 7

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

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) |
Run Code Online (Sandbox Code Playgroud)

请注意,对于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 |
Run Code Online (Sandbox Code Playgroud)

基本吞吐量得到保证,突发吞吐量会消耗您在低于基本吞吐量时收集的信用额度(因此您只能在有限的时间内使用信息,请参阅此处了解更多详细信息.

S3

S3是完全不同的东西,因此无法与EBS和EFS进行比较.另外:S3没有公布的吞吐量指标.您可以通过并行下载来提高吞吐量(我在某处读取AWS状态,您可以通过这种方式获得基本无限的吞吐量),或者将CloudFront添加到混合中


小智 6

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