2011-09-09 174 views
0

为了处理高流量,我计划扩展,在一些EC2实例(我对AWS非常陌生)上运行我的Web应用程序(基于WordPress)。这些实例需要处理相同的数据(图像,视频...)。Amazon EC2实例的共享数据

我在想使用S3作为这个共享数据的存储。

我的问题是:

  • 如果我使用S3,我需要编写额外的代码我的应用程序上传和S3获得的数据/?或者有一种神奇的方法将EC2实例安装到S3,之后EC2实例可以访问S3来访问本地存储?

  • 我听说S3是通过网络服务访问(如果用户上传文件需要时间将文件上传到S3),有点慢。那么有没有更好的方式来存储共享数据?

我读过一些关于扩展Amazon EC2能力的文档。但是他们没有提到如何处理共享数据。任何帮助,高度赞赏。谢谢。

回答

0

尽管有几个第三方应用程序提供了使S3存储作为虚拟驱动器或存储库可用的机制,但没有本地工具可将S3存储区“挂载”为存储到EC2实例。他们中的大多数都提供预设数量的免费存储空间,然后采用分级收费机制,以获得更大的数量 - 谷歌为“S3存储接口”,并看看。

无论您是通过API编写代码以使用S3还是使用接口层,您的应用程序和存储之间总会有一些延迟。这是物理学的事实,因为S3存储库不是EC2集群本地的,所以您无法做到消除延迟,因此您永远无法实现“本地”存储访问速度。

另一种可能是使用EBS这您的本地EC2实例 - 它有不同的属性S3(例如,它不提供区域定位的接入边缘位置),但速度更快的应用程序中使用因为它位于EC2集群内并作为本地存储装载。

+0

谢谢你的回答。但是如果我使用EBS作为存储,文件夹的最大存储量为1TB(只能将1个EBS挂载到该文件夹​​)。其他实例无法访问此EBS。你通常知道人们在我的情况下做什么?他们如何在使用一些EC2实例的同时存储大量数据? – Jack

0

您可以将S3存储桶挂载到所有EC2实例上。这是一个双向安装,所以你的所有文件将被同步。您可以使用s3f3进行安装。

我用这个指南,建立矿山相当快:Mount S3 onto EC2

如果你是那么在意速度,您可以使用Amazon ElastiCache甚至使用EBS作为缓存驱动器。

0

对于开始您的问题缺乏关于您的应用程序体系结构的一些细节,但有一些可能性。

首先,如果你的项目是中型的,你可以在同一时间(使用本地或NFS协议)在您的服务器和客户机主节点使用GlusterFSRDS * 多AZ的MySQL DataBase实例。 CloudFront作为CDN与CDN链接器或W3TC插件。另外,把ELB放在前面。 在这种特殊情况下,我会推荐一对夫妇c3。至少大的实例。其次,当您的项目增长时 - 您应该创建一个实例AMI并创建一个自动扩展组,以便连接到您的主存储和计算实例。 (也考虑从这些相当小的实例中提升计算负载)。

观光另外考虑: