Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon dynamodb 多个应用程序和DynamoDB,理想的配置方式?_Amazon Dynamodb - Fatal编程技术网

Amazon dynamodb 多个应用程序和DynamoDB,理想的配置方式?

Amazon dynamodb 多个应用程序和DynamoDB,理想的配置方式?,amazon-dynamodb,Amazon Dynamodb,我们计划使用DynamoDB作为在AWS中运行的不同应用程序的noSQL数据库,并计划使用AWS身份和访问管理(IAM)连接到DynamoDB 通常情况下,您有一个AWS帐户,您可以为每个应用程序创建新用户,您可以让他们访问DynamoDB中各自的表,以确保他们无法访问/修改其他应用程序数据 我的问题是,应用程序可以在DynamoDB中使用相同的名称表吗?e、 g.LOG,那么每个应用程序在DynamoDB中都有自己的日志表,但数据不共享?(我们可以在基于SQL的数据库中通过为每个应用程序定义模

我们计划使用DynamoDB作为在AWS中运行的不同应用程序的noSQL数据库,并计划使用AWS身份和访问管理(IAM)连接到DynamoDB

通常情况下,您有一个AWS帐户,您可以为每个应用程序创建新用户,您可以让他们访问DynamoDB中各自的表,以确保他们无法访问/修改其他应用程序数据

我的问题是,应用程序可以在DynamoDB中使用相同的名称表吗?e、 g.LOG,那么每个应用程序在DynamoDB中都有自己的日志表,但数据不共享?(我们可以在基于SQL的数据库中通过为每个应用程序定义模式并创建需要访问其模式的用户来实现这一点)


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

DynamoDB不提供名称空间级别,如
数据库
模式
,如常见的SQL RDBMS

[hostname>]数据库>架构>表

DynamoDB更像这样

[aws地区>aws帐户id>]表

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

1) 只需使用表名前缀来分隔正在使用的表 特定于应用程序的应用程序使用IAM确保“应用程序A”只能访问 访问它需要访问的表

  • 赞成者:
    • 易于使用,只需分开需要分开的部分
    • 如果需要,可以在应用程序之间共享DynamoDB表
  • 反对:
    • 计费、报告

2) 使用单独的AWS帐户

  • 赞成者:
    • 单独计费、使用统计等
  • 反对:
    • 管理起来可能很烦人,例如登录/注销AWS控制台
注意:一般来说,您不应该在应用程序中硬编码DynamoDB表名。使用逻辑表名到实际表名的一些映射。e、 g.我遇到了一些变量
tableName\u LOG='AppA\u LOG'

(参见示例5),它警告在同一aws帐户下使用测试和生产实例,因为在其中一个帐户中使用会影响另一个。这是有道理的,但如果没有创建单独的帐户,则不会提供任何其他建议。如果AWS有一些名称空间或类似的东西,那就太好了。而且,(希望在2017年晚些时候)可能会在计费和组织方面有所帮助。