MogileFS/GlusterFS/等 + Amazon EBS + Amazon EC2

MogileFS/GlusterFS/等 + Amazon EBS + Amazon EC2

我有一个提供二进制文件(图像等)的 Web 应用程序。我们的应用程序运行在亚马逊 EC2。我们原本打算使用亚马逊 S3存储和提供这些文件,这不再是一个选择。

我们需要传输这些文件HTTPS用一个别名记录。这显然是不可能的亚马逊 S3由于许多技术原因。亚马逊提供弹性块存储 (EBS)允许您安装最大 1TB 的块到实例。我们将有多个实例并行访问此数据。

我在想的是使用像移动文件系统/格鲁瑟夫/[在此处插入更多]弹性块存储 (EBS)

我的问题是:其他人目前正在做什么来创建一个可扩展(几百 TB)的文件存储系统?亚马逊 EC2无需使用亚马逊 S3那是多余的吗?数据仍将备份在亚马逊 S3但所有读取都将脱离文件系统。

提前致谢。如果有人需要澄清任何事情,请随时询问。

答案1

Azouk(以前链接域处于休眠/停放状态)中,我们不使用 Amazon EC2,而是使用 GlusterFS(1.4.0qa92)来提供所有内容,如 PDF、用户文件、缩略图,以及离线数据分析。恕我直言,在 Amazon 的云上部署相同的架构应该没有问题——我们已经大量使用虚拟化(尤其是 OpenVZ)。唯一的潜在限制是通过 fuse 安装 GFS(虚拟化可能会禁止这样做),但据我所知,在 Amazon 上是可能的。

因此,我推荐 Gluster,很抱歉我无法特别帮助亚马逊 :)

答案2

一个非常古老的问题突然再次出现在头版上...:-)

所以我的问题是:其他人目前正在做什么来在 Amazon EC2 上创建可扩展(几百 TB)的文件存储系统,而不使用冗余的 Amazon S3?

没什么,在 AWS 上您可以使用 S3 作为 100 TB 的 BLOB 存储,其他任何事情都是毫无意义的。

我们需要使用 CNAME 通过 HTTPS 传输这些文件。由于许多技术原因,这显然无法通过 Amazon S3 实现。

没错,但是通过其他方式也是可以的。

由于您需要在自己的域名上进行 HTTPS 访问,因此您需要在 EC2 节点上设置几个 HTTPS 服务器(或代理),作为 Internet 和 S3 之间的 SSL 加密/解密网关。

我从未与Apache 流量服务器(以前称为 Inktomi),但它看起来非常适合。否则,可以使用 nginx 或 Apache 进行 SSL 处理,如果需要缓存,可以使用 Squid 或 Varnish。

从高层次来看,请求-响应看起来像这样:

Internet request via https -->
(optional) Elastic Load Balancing -->
EC2 instance with SSL capable HTTP proxy (fx nginx) -->
plain unencrypted http to S3

此外,您需要一种确定的方式来处理 URL 重写。Fx.https://secure.yourdomain.com/<id>被重写为http://<bucket>.s3.amazonaws.com/<id>

答案3

我知道Acquia 在 EBS 上运行 Gluster使用 EC2。因此从技术上来说,它似乎可以工作。

答案4

我目前正在构建一个基于 Gluster 3.1 和 EBS 的复制集群文件系统,并通过 FUSE 客户端进行访问。

如果您对包含大量文件调用的 Web 应用程序进行了大量投资,并且想要升级到从多个负载平衡应用服务器进行访问 - 并创建可扩展的复制存储而无需重写所有文件访问代码,这似乎是您唯一简单的选择。

我还没有完成这个项目,所以我对最终结果没有太多的反馈。有一个简单的教程这里

相关内容