DynamoDB does not provide namespace levels such as Database and Schema , like regular SQL RDBMS, for example. PostgreSQL , Oracle .
[hostname > ] database > schema > table
With DynamoDB, this is more like
[aws-region > aws-account-id > ] table
So, you have two options for splitting applications into DynamoDB:
1) Just use table name prefixes to split tables, an application using IAM to make sure that "application A" has only access to the tables to which it requires access.
- Pro:
- easy to use, only a separate section to be separated.
- the ability to exchange DynamoDB tables between applications, if necessary
- Con:
or
2) Use AWS split accounts.
- Pro:
- split billing, usage statistics, etc.
- Con:
- can be annoying control, for example. AWS console in / out
Note: In general, you should not hard-code DynamoDB table names in your application. Use some mapping between logical table names and real table names. for example, some variable tableName_LOG = 'AppA_LOG' .
source share