【问题标题】:Storing assets within the AWS ecosystem在 AWS 生态系统中存储资产
【发布时间】:2020-10-25 21:11:57
【问题描述】:

我是 AWS 开发的新手(但对传统开发有丰富的经验)。

我需要使用 ReactJS 前端、NodeJs/Express 后端、MySQL 构建一个 Web 应用程序。它的 SaaS 应用程序可能拥有成千上万的客户。会有一个用例,我们的父客户端有数百个子客户端。

因此,客户本身内部的父子关系。孩子的设置取代了父母。每个客户(无论是孩子还是父母)都将拥有其独特的徽标和风格。 Child 可能会或可能不会覆盖徽标和样式。如果 Child 没有覆盖它,它会从父客户端获取。等等..

我可以在客户入职时使用一些配置工具处理徽标/样式/设置。因此,我将在客户端实施时上传/更改父和/或子客户端的徽标/样式/设置。我需要能够在以后根据客户要求更改这些徽标/样式/设置。

对于如何设计应用程序,我有哪些选择:(同样,我是 AWS 的新手)?

  1. 存储方面,存储徽标/样式/设置的最佳位置是什么?如果是 AWS S3,它会为我提供某些文件夹布局来处理父子,还是我应该将所有图像/样式(css)转储到单个文件夹中,每个项目都带有客户端前缀?
  2. 其他选项,在站点呈现时在运行时拉取图像/样式/设置。因此,我将确定每次点击 web 应用程序的父子关系,并确定从哪里获取资源。运行时的开销很小,因为我在运行时推送父子逻辑而不是配置时间/一次性。

关于 AWS 环境的任何想法/替代设计/建议/优缺点?

【问题讨论】:

    标签: node.js reactjs amazon-web-services amazon-s3 design-patterns


    【解决方案1】:

    正如 Chris Williams 已经提到的,使用 S3 作为图像、js、css、html 和其他资产的原始数据存储。此外,您可以在这些资产前设置云端分发,以便快速为您的客户提供服务。 Cloudfront 也提供边缘支持,因此您的网站将在全球范围内运行。

    在 S3 + Cloudfront 上有很多很棒的资源,可用于在线提供网站内容。

    【讨论】:

      【解决方案2】:

      资产绝对是Amazon S3 中的最佳位置,每个资产在 Amazon S3 中被称为一个对象。你给对象一个键,例如client/main.css。通过这样做,您可以将每个客户端分离到它们自己的 prefix 中(您可能会看到它看起来像 GUI 中的子文件夹)。

      通过设置它取决于它们的敏感程度,如果它只是用于您的前端,那么您可以在 S3 中以与您的资产相同的前缀存储一个 JSON 文件。否则,如果设置应该有一些安全性,您可以使用DynamoDB,它拥有"DynamoDB offers consistent single-digit millisecond latency"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-31
        • 2018-07-02
        • 2013-11-22
        • 2014-10-31
        • 1970-01-01
        • 2019-06-18
        • 2017-08-30
        • 1970-01-01
        相关资源
        最近更新 更多