Como funcionam as tabelas globais do DynamoDB - Amazon DynamoDB

Como funcionam as tabelas globais do DynamoDB

As tabelas globais de várias contas estendem os recursos totalmente gerenciados, multirregionais, sem servidor e multiativos das tabelas globais do DynamoDB para abranger várias contas da AWS. As tabelas globais de várias contas replicam dados entre regiões e contas da AWS, oferecendo a mesma funcionalidade ativa-ativa das tabelas globais da mesma conta. Quando você grava em qualquer réplica, o DynamoDB replica os dados em todas as outras réplicas.

As principais diferenças em relação às tabelas globais da mesma conta incluem:

  • É possível usar a replicação multirregional com tabelas globais com consistência final multirregional (MREC).

  • Só é possível adicionar réplicas começando com uma tabela de região única. Não é possível converter uma tabela global existente da mesma conta em uma configuração de várias contas. Para migrar e criar uma tabela global de várias contas, primeiro é necessário excluir as réplicas existentes para retornar a uma tabela de região única.

  • Cada réplica deve residir em uma conta da AWS separada. Para uma tabela global de várias contas com N réplicas, é necessário ter N contas.

  • Por padrão, as tabelas globais de várias contas usam configurações de tabela unificadas em todas as réplicas. Todas as réplicas compartilham automaticamente a mesma configuração (como modo de throughput e TTL) e, diferentemente das tabelas globais da mesma conta, essas configurações não podem ser substituídas por réplicas.

  • Os clientes devem fornecer permissões de replicação à entidade principal do serviço de tabelas globais do DynamoDB em suas políticas de recursos.

As tabelas globais de várias contas usam a mesma tecnologia de replicação subjacente das tabelas globais da mesma conta. As configurações da tabela são replicadas automaticamente em todas as réplicas regionais e os clientes não podem substituí-las por réplicas nem personalizá-las. Isso garante uma configuração consistente e um comportamento previsível em várias contas da AWS que compartilham a mesma tabela global.

As configurações nas tabelas globais do DynamoDB definem como uma tabela se comporta e como os dados são replicados nas regiões. Essas configurações são definidas por meio de APIs do ambiente de gerenciamento do DynamoDB durante a criação da tabela ou ao adicionar uma nova réplica regional.

Ao criar uma tabela global de várias contas, os clientes devem definir GlobalTableSettingsReplicationMode = ENABLED para cada réplica regional. Isso garante que as alterações de configuração feitas em uma região se propaguem automaticamente para todas as outras regiões que compartilham a tabela global.

É possível habilitar a replicação das configurações após a criação da tabela. Isso é adequado para o cenário em que uma tabela é criada originalmente como uma tabela regional e depois atualizada para uma tabela global de várias contas.

Configurações sincronizadas

As seguintes configurações são sempre sincronizadas entre as réplicas em uma tabela global de várias contas:

nota

Diferentemente das tabelas globais da mesma conta, as tabelas globais de várias contas não permitem substituições por região para essas configurações. A única exceção é que as substituições de políticas de ajuste de escala automático de leitura (tabelas e GSIs) são permitidas, pois são recursos externos separados.

  • Modo de capacidade (capacidade provisionada ou sob demanda)

  • Capacidade provisionada de leitura e gravação da tabela

  • Ajuste de escala automático de leitura e gravação da tabela

  • Definição do índice secundário local (LSI)

  • Definição do Índice Secundário Global (GSI)

  • Capacidade provisionada de leitura e gravação do GSI

  • Ajuste de escala automático de leitura e gravação do GSI

  • Definição de streams no modo MREC

  • Vida útil (TTL)

  • Throughput a quente

  • Throughput máximo sob demanda de leitura e gravação

Configurações não sincronizadas

As configurações a seguir não são sincronizadas entre as réplicas e devem ser definidas de forma independente para cada tabela-réplica em cada região.

  • Classe de tabela

  • Tipo de criptografia do lado do servidor (SSE)

  • Recuperação para um ponto no tempo

  • ID da chave do KMS da criptografia do lado do servidor (SSE)

  • Proteção contra exclusão

  • Kinesis Data Streams (KDSD)

  • Tags

  • Política de recursos

  • Tabela Cloudwatch-Contributor Insights (CCI)

  • GSI Cloudwatch-Contributor Insights (CCI)

Monitoramento

Tabelas globais configuradas para consistência final em várias regiões (MREC) publicam a métrica ReplicationLatency no CloudWatch. Essa métrica controla o tempo decorrido entre quando um item foi gravado em uma tabela-réplica e quando esse item aparece em outra réplica na tabela global. ReplicationLatency é expresso em milissegundos e é emitido para cada par de regiões de origem e destino em uma tabela global.

Os valores típicos de ReplicationLatency dependem da distância entre as regiões da AWS escolhidas, bem como de outras variáveis como tipo de workload e throughput. Por exemplo, uma réplica de origem na região Oeste dos EUA (N. da Califórnia) (us-west-1) tem uma ReplicationLatency menor para a região Oeste dos EUA (Oregon) (us-west-2) em comparação com a região África (Cidade do Cabo) (af-south-1).

Um valor elevado para ReplicationLatency pode indicar que as atualizações de uma réplica não se propagaram para outras tabelas-réplica em tempo hábil. Nesse caso, você pode redirecionar temporariamente as atividades de leitura e gravação da aplicação para outra região da AWS.

Lidar com problemas de latência de replicação em tabelas globais de várias contas

Se ReplicationLatency exceder três horas devido a problemas causados pelo cliente em uma tabela-réplica, o DynamoDB enviará uma notificação solicitando que o cliente resolva o problema subjacente. Os problemas comuns causados pelo cliente que podem impedir a replicação incluem:

  • Remover as permissões necessárias da política de recursos da tabela-réplica.

  • Optar por não aderir a uma região da AWS que hospede uma réplica da tabela global de várias contas.

  • Negar as permissões da chave do AWS KMS da tabela necessárias para descriptografar dados.

Dentro de três horas, o DynamoDB enviará uma notificação inicial de alta latência de replicação, seguida de uma segunda notificação após vinte horas se o problema continuar sem solução. Se o problema não for corrigido dentro do período exigido, o DynamoDB desassociará automaticamente a réplica da tabela global. Depois, a réplica afetada será convertida em uma tabela regional.