【问题标题】:Comparative Application ebs vs s3比较应用 ebs 与 s3
【发布时间】:2016-11-03 09:25:39
【问题描述】:

我是云环境的新手。我确实了解 EBS 和 S3 的定义和存储类型。我想了解 EBS 与 S3 相比的应用。

我确实了解 EBS 看起来像是一种用于繁重但放置操作的设备。与 S3 相比,我找不到任何可以使用它的应用程序。我可以考虑将服务器日志放在磁存储上的 EBS 上,因为一个 EBS 可以附加到一个实例。

S3 你可以使用缩放属性来添加一些重数据并实时扩展。我们可以在此服务上部署我们的 slef 托管数据库。

如果我错了,请纠正我。请帮助我了解什么最适合它们之间的比较以及它们的应用。

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-ebs


    【解决方案1】:

    正如您所说,它们主要是不同类型的存储:

    • Amazon Elastic Block Store (EBS) 是一种永久性磁盘存储服务,可为虚拟机提供存储卷(类似于 VMWare 中的 VMDK 文件)
    • Amazon Simple Storage Service (S3) 是一个对象存储系统,可将文件存储为对象,并可选择让它们在 Internet 上可用。

    那么,人们如何选择使用哪个?这很简单……如果他们需要在 Amazon EC2 实例上安装卷,他们需要使用 Amazon EBS。它在 Windows 中为他们提供了C:、D: 驱动器等,在 Linux 中为他们提供了可挂载的卷。计算机传统上期望具有本地连接的磁盘存储。简单地说:如果操作系统或运行在 Amazon EC2 实例上的应用程序想要在本地存储数据,它将使用 EBS。

    EBS 卷实际上存储在两个物理设备上以防出现故障,但一个 EBS 卷显示为单个卷。创建卷时必须选择卷大小。该卷存在于单个可用区内,并且只能附加到同一可用区内的 EC2 实例。即使附加的 EC2 实例已停止,EBS 卷保留;当实例再次启动时,磁盘保持连接状态,所有数据都已保存。

    然而,

    Amazon S3 则完全不同。它是一种存储服务,允许上传/下载文件(PutObject、GetObject),并且文件可以在至少三个数据中心之间复制。可以选择通过 HTTP/HTTPS 通过 Internet 访问文件,而无需 Web 服务器。可以存储的数据量没有限制。可以通过存储桶策略或 IAM 用户和组为每个对象、每个存储桶授予访问权限。

    当需要共享数据(本地和跨 Internet)、长期保留、备份(甚至用于存储备份)并可供其他系统访问时,Amazon S3 是一个不错的选择。但是,应用程序需要专门编码才能使用 Amazon S3,而许多传统应用程序希望将数据存储在本地驱动器而不是单独的存储服务上。

    虽然 Amazon S3 有很多好处,但在某些情况下,Amazon EBS 是更好的存储选择:

    • 使用希望在本地存储数据的应用程序时
    • 用于存储临时文件
    • 当应用程序想要部分更新文件时,因为 S3 中最小的存储单元是文件,更新文件的一部分需要重新上传整个文件
    • 适用于非常高 IO 的情况,例如数据库(EBS 预置 IOPS 可提供高达 20,000 IOPS 的容量)
    • 用于创建卷快照作为备份
    • 用于创建可用于启动 EC2 实例的 Amazon 系统映像 (AMI)

    底线:它们主要是不同类型的存储,每种都有自己的使用最佳点,就像数据库是一种根据情况而定的良好存储形式。

    【讨论】:

    • 感谢您的回答。所以我们可以说我们使用 EBS 进行挂载,使用 S3 通过服务进行远程访问(使用 URL - 内部或外部)。但是我们仍然可以在 s3 实例上部署我们拥有的数据库,对吗?但可以通过 db access url 访问它,对吧?
    • 数据库不能使用 S3 进行存储。数据库喜欢将数据存储在文件系统上,而 S3 不是文件系统。有一些可用的工具(例如 Expandrive、Cloudberry Drive)可以将 S3 挂载为文件系统,但这些工具的速度不足以支持数据库更新。没有“S3 实例”之类的东西。
    • 我找到了相同 aws.amazon.com/ebs/details/#availabilityanddurability 的用例,请在阅读文档后纠正我的假设,一次可以将一个 EBS 附加到一个 EC2 实例,但它在 AZ 中是可见的,一个EBS 不能一次附加多个 EC2 实例?
    • 所以如果我想使用我自己管理的 MySQL 服务器,我可以把它放在哪里,并且多个 EC2 实例必须指向同一个。我假设,为此我将在连接到 EBS 的 ec2 上部署 mysql 服务器,其中 db 文件将位于 EBS 卷上,mysql 应用程序将在 ec2 实例上运行。我的应用层 ec2 实例将与这个 db 的 ec2 实例进行通信,对吧?
    • 没错。 Amazon S3 不会参与其中。或者,您可以使用 Amazon RDS,它是一个完全托管的数据库,可以部署在单独的服务器上。
    猜你喜欢
    • 2018-04-10
    • 2013-05-12
    • 2011-09-15
    • 1970-01-01
    • 2022-10-19
    • 2021-07-14
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    相关资源
    最近更新 更多