MogileFS / GlusterFS / etc + Amazon EBS + Amazon EC2

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

我们需要使用CNAME通过HTTPS传输这些文件。 出于许多技术原因, Amazon S3显然是不可能的。 Amazon提供弹性块存储(EBS) ,允许您在一个实例上安装最大1TB的块。 我们将有多个实例并行访问这些数据。

我在想的是使用分布式文件系统,如MogileFS / GluserFS / [insert-more-here]和弹性块存储(EBS) 。

所以我的问题是:其他人目前正在做什么来在不使用Amazon S3的情况下在Amazon EC2上创build可扩展的(几个100TB)文件存储系统? 数据仍将在Amazon S3上进行备份,但是所有的读取操作都不在文件系统中。

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

Azouk (以前连接的域名处于hibernate/停泊状态),我们不使用Amazon EC2,但我们使用GlusterFS(1.4.0qa92)来提供PDF,用户文件,缩略图等所有内容,也用于离线数据分析。 恕我直言,在亚马逊云上部署相同架构应该没有问题 – 我们已经大量使用虚拟化(特别是OpenVZ)。 唯一的潜在约束是通过熔丝装入GFS(虚拟化可能会禁止这个),但是AFAIK可能在亚马逊上。

所以,我build议Gluster和对不起,我不能专门与亚马逊:)

一个非常古老的问题,突然在首页上冒出来… 🙂

所以我的问题是:其他人目前正在做什么来在不使用Amazon S3的情况下在Amazon EC2上创build可扩展的(几个100TB)文件存储系统?

没有什么,在AWS上你会使用S3的100 TB的BLOB存储,其他任何东西都是荒谬的。

我们需要使用CNAME通过HTTPS传输这些文件。 出于许多技术原因,Amazon S3显然是不可能的。

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

由于您需要对自己的域名进行HTTPS访问,因此您可以在EC2节点上设置两个HTTPS服务器(或代理),以充当Internet和S3之间的SSLencryption/解密网关。

我从来没有使用过Apache Traffic Server (以前的Inktomi),但是看起来这很适合。 否则nginx或Apache可以用于SSL处理,如果你想要caching的话,可以使用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>

我知道Acquia在EBS上运行Gluster和EC2。 所以在技术上看来似乎工作。

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

如果您在networking应用程序中投入了大量的文件,那么您需要升级到从多个负载平衡的应用程序服务器访问 – 并且 – 创build可扩展的复制存储,而无需重新编写所有的文件访问代码,这似乎是你的唯一简单的select。

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