【问题标题】:Shared data for Amazon EC2 instancesAmazon EC2 实例的共享数据
【发布时间】:2011-11-13 15:00:04
【问题描述】:

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

我正在考虑使用 S3 作为此共享数据的存储。

我的问题是:

  • 如果我使用 S3,我是否需要为我的应用程序编写额外的代码来上传和从 S3 获取数据?或者有什么神奇的方法可以将 EC2 实例挂载到 S3,然后 EC2 实例可以像访问本地存储一样访问 S3?

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

我已经阅读了一些关于 Amazon EC2 扩展能力的文档。但他们都没有提到如何处理共享数据。非常感谢任何帮助。谢谢。

【问题讨论】:

    标签: wordpress amazon-s3 amazon-ec2


    【解决方案1】:

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

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

    另一种方法可能是使用 EBS,它您的 EC2 实例本地的 - 它具有与 S3 不同的属性(例如,它不提供用于区域本地化访问的边缘位置)但更多应用程序使用速度更快,因为它位于 EC2 集群内并作为本地存储挂载。

    【讨论】:

    • 感谢您的回答。但是如果我使用 EBS 作为存储,一个文件夹的最大存储是 1TB(只能挂载 1 个 EBS 到那个文件夹)。其他实例无法访问此 EBS。你知道在我的情况下人们通常会做什么吗?他们如何在使用一些 EC2 实例的同时存储大量数据?
    【解决方案2】:

    您可以将 S3 存储桶挂载到所有 EC2 实例上。这是一个 2 路挂载,因此您的所有文件都将同步。您可以使用s3f3 进行安装。

    我使用了本指南并很快设置了我的:Mount S3 onto EC2

    如果你担心速度,可以使用Amazon ElastiCache,甚至可以使用 EBS 作为缓存驱动器。

    【讨论】:

      【解决方案3】:

      首先,您的问题缺少有关您的应用程序架构的一些细节,但有一些可能性。

      首先,如果您的项目是中型项目,您可以在主节点上同时使用 GlusterFS 作为服务器和客户端(使用本机或 NFS 协议),RDS *多可用区* 用于数据库的 MySQL 实例。 CloudFront 作为带有 CDN 链接器 或 W3TC 插件的 CDN。另外,在前面放一个ELB。 在这种特殊情况下,我至少会推荐几个 c3.large 实例。

      其次,当您的项目增长时 - 您应该创建实例 AMI 并创建一个仅连接到您的主存储和计算实例的自动扩展组。 (还可以考虑从这些相当小的实例中提升计算负载)。

      需要额外考虑的事项:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-21
        • 1970-01-01
        • 2014-05-08
        • 1970-01-01
        • 1970-01-01
        • 2022-11-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多