【问题标题】:Multiple Applications and DynamoDB, Ideal way to configure?多个应用程序和 DynamoDB,理想的配置方式?
【发布时间】:2014-09-21 01:34:06
【问题描述】:

我们计划将 DynamoDB 用作在 AWS 中运行的不同应用程序的 noSQL 数据库,并计划使用 AWS Identity and Access Management (IAM) 连接到 DynamoDB。

通常您有一个 AWS 账户,您可以为每个应用程序创建新用户,您可以授予他们访问 DynamoDB 中各自表的权限,以确保他们无法访问/修改其他应用程序数据。

我的问题是,应用程序可以在 DynamoDB 中使用同名表吗?例如LOG,所以每个应用程序在 DynamoDB 中都有自己的 LOG 表,但数据不共享? (我们可以通过为每个应用程序定义架构并创建需要访问其架构的用户来在基于 SQL 的数据库中实现这一点)

注意:我们不打算使用不同的 DynamoDB 区域,想知道是否可以使用一个区域?

【问题讨论】:

    标签: amazon-dynamodb


    【解决方案1】:

    DynamoDB 不提供命名空间级别,例如 DatabaseSchema,如常见的 SQL RDBMS,例如PostgreSQL, Oracle.

    [hostname > ] database > schema > table

    DynamoDB 更像这样

    [aws-region > aws-account-id > ] table

    因此,您有两种选择来分离访问 DynamoDB 的应用程序:

    1) 只需使用表名前缀来分隔表 特定于应用程序的使用 IAM 来确保“应用程序 A”只有访问权限 到它需要访问的表。

    • 专业版:
      • 使用方便,只分离需要分离的东西
      • 如果需要,可以在应用程序之间共享 DynamoDB 表
    • 缺点:
      • 计费、报告

    2) 使用单独的 AWS 账户。

    • 专业版:
      • 单独计费、使用统计等
    • 缺点:
      • 管理起来可能很烦人,例如AWS 控制台的登录/注销

    注意:通常,您不应在应用程序中硬编码 DynamoDB 表名。使用逻辑表名到真实表名的一些映射。例如一些变量tableName_LOG = 'AppA_LOG'

    【讨论】:

    • 我遇到了this aws info(参见示例 5),它警告在同一 aws 帐户下使用测试和生产实例,因为其中一个帐户的使用会影响另一个帐户。有道理,但没有创建单独的帐户并没有提供任何其他建议。如果 AWS 有一些命名空间或其他东西,那就太好了。
    • 另外,Cross account acccessOrganizations(希望在 2017 年晚些时候推出)可能有助于解决计费和组织方面的问题。
    • 假设您将所有内容放在一个帐户上,您可以通过提前在资源上分配标签来拆分成本和使用情况统计信息。好吧,至少这就是我现在要尝试的。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    相关资源
    最近更新 更多