【问题标题】:AWS EC2 and S3 adviceAWS EC2 和 S3 建议
【发布时间】:2015-11-16 06:05:14
【问题描述】:

我是 AWS 新手,但我已经非常喜欢它了。

我们正在为我们的交互式应用程序创建一个新的 CMS,并且我正在做一些 POC 工作。

系统简要说明:每个客户都有一个帐户。此帐户有一个或多个用户。每个帐户都可以创建和编辑我们称之为站的东西(它基本上是一个交互式应用程序)。这些站将保存不同的数据,可以是文本、图像和视频。数据将每天同步一次到一组计算机。

在当前的解决方案中,我们为每位客户配备一个 VPS,为了同步视频和图像,我们使用 rsync。这是手动设置的,但现在我们想通过在多租户解决方案中使用 EC2 和 S3 来扩大规模。

我最初的想法是为每个工作站创建一个文件夹,然后创建一个 IAM 用户并将其连接到我们应用程序中的每个用户帐户。您将如何解决同步部分?

我的另一个问题是关于从 S3 获取文件时的最佳实践。所有上传的媒体都应该受到身份验证的保护。是否可以对用户进行身份验证,然后使用 EC2 实例上的 API 获取文件,还是应该以其他方式解决?

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-ec2 architecture


    【解决方案1】:

    这两个问题都很容易解决。

    您无需担心同步问题。只需将所有内容上传到 S3 并直接从 S3 提供。如何组织文件取决于您,最终您的应用程序将跟踪哪个对象属于哪个客户。

    如果您需要保护文件,可以在 S3 上将其设置为私有,并使用签名 URL 提供。

    您还可以将 Cloud Front 与 s3 结合使用,以实现更好的交付。虽然如果您使用签名 URL,您将获得较少的好处

    【讨论】:

    • 感谢您的回复!我忘了说同步数据的目的是为了获得离线支持。这些应用程序将经常在没有互联网连接的情况下使用。这就是为什么我们需要使用我们的应用程序在机器上本地可用的数据。签名 URL 是个好主意,谢谢。
    • 这确实使系统有些复杂。尽管我仍然认为您可能可以做到。有一些工具可以从 s3 文件夹同步文件。但是,何时以及如何同步将必须由您的应用程序确定。您是否在离线设备上运行应用程序?还是您依赖于所有客户端处理?
    • 是的。我们当前的解决方案涉及手动设置一个调度事件,该事件调用一个 rsync 脚本,该脚本每晚下载内容(和一个 sqlite 数据库)。我查看了一些 s3 的类似解决方案:github.com/clarete/s3sync,但我觉得我需要一些输入。新的解决方案必须更容易。例如,客户的 IT 部门应该能够安装我们的同步应用程序并针对我们的 cms 进行身份验证以同步内容。
    • s3 同步工具可以工作。如果这不太符合您的需求,您还可以使用 API 构建您自己的同步工具。如果您可以预先构建哪些文件已更改的清单而不是检查所有文件,这将有所帮助。这将减少整体同步时间。
    • 输入很好,谢谢!绝对可以为更改文件创建某种清单。
    猜你喜欢
    • 2013-02-02
    • 2015-09-30
    • 2021-07-07
    • 2016-11-15
    • 1970-01-01
    • 2013-04-01
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多