Eu fiz muito com bancos de dados relacionais e um pouco com bancos de dados NoSQL (só para você saber de onde estou vindo). Os bancos de dados IMHO e NoSQL são mais adequados para cenários em que um ou mais são verdadeiros:
- Os dados são essencialmente planos (não há muitas relações, quase como um antigo arquivo simples)
- Há um registro do tipo "pai" definido com registros "filhos" que são pequenos o suficiente/acessados com frequência suficiente com o pai para justificar a incorporação deles diretamente no registro.
- Você precisa de liberdade para adicionar/preencher campos dentro do razoável. Eu gosto de pensar nisso como herança, onde cada item na tabela compartilha alguns traços comuns (ID, Nome), mas registros diferentes podem ter traços diferentes. Por exemplo, um catálogo de produtos online pode conter livros, bicicletas e músicas em MP3. Um registro para um item "livro" teria coisas como ISBN, número de páginas, autor, etc. Uma "bicicleta" poderia ter tamanho e cor da roda, e um "MP3" teria comprimento, artista, gênero, etc. Você nunca obteria todas essas coisas em uma tabela de "item" no anRDS sem sobrecarregar seriamente ou deixar campos vazios. Um banco de dados NoSQL permitiria armazenar todas essas informações na tabela e apenas para os itens que precisam delas.
Você pode definitivamente construir o esquema que inclui com sua pergunta usando as capacidades de indexação do Dynamo, mas você estaria tentando fazer um banco de dados NoSQL agir como um RDS.
Dito isto:eu mesmo tentaria com o Dynamo primeiro como uma experiência de aprendizado. :)