Tabelas globais: replicação em várias regiões para o DynamoDB - Amazon DynamoDB

Tabelas globais: replicação em várias regiões para o DynamoDB

As tabelas globais do Amazon DynamoDB são uma opção de banco de dados totalmente gerenciado, multiativo e multirregional que fornece performance alta e localizada de leitura e gravação para aplicações globais amplamente escaladas.

As tabelas globais fornecem uma solução totalmente gerenciada para a implantação de um banco de dados multiativo em várias regiões, sem exigir que você crie e mantenha sua própria solução de replicação. Basta especificar os itens das Regiões da AWS nas quais você deseja que as tabelas estejam disponíveis que o DynamoDB propaga continuamente as alterações de dados para todas elas.

Os benefícios específicos do uso de tabelas globais incluem:

  • Replicação automática de tabelas do DynamoDB nas regiões da AWS escolhidas por você.

  • Eliminação do árduo trabalho de replicar dados entre regiões e resolver conflitos de atualização, para que você possa se concentrar na lógica de negócios da aplicação.

  • Apoio para que as aplicações permaneçam altamente disponíveis mesmo no caso improvável de isolamento ou degradação de uma região inteira.

As tabelas globais do DynamoDB são ideais para aplicações muito dimensionadas e com usuários globalmente dispersos. Nesse ambiente, os usuários esperam aplicativos de altíssima performance. As tabelas globais fornecem replicação automática de vários mestres em regiões da AWS em todo o mundo. Elas permitem fornecer acesso de baixa latência aos usuários independentemente de onde estão localizados.

O vídeo a seguir oferece uma introdução sobre tabelas globais.

Você pode configurar tabelas globais no Console de Gerenciamento da AWS ou na AWS CLI. Como as tabelas globais usam APIs existentes do DynamoDB, nenhuma alteração na aplicação é necessária. Você paga apenas pelos recursos provisionados, sem nenhum custo ou compromisso inicial.

Replicar dados continuamente entre regiões com tabelas globais

Suponha que você tenha uma ampla base de clientes distribuídos em três áreas geográficas: Costa Leste dos EUA, Costa Oeste dos EUA e Europa Ocidental. Esses clientes podem atualizar suas informações de perfil usando sua aplicação. Para satisfazer esse caso de uso, é necessário criar três tabelas do DynamoDB idênticas, chamadas CustomerProfiles, em três regiões diferentes da AWS onde os clientes estão localizados. Essas três tabelas seriam totalmente diferentes uma da outra e as alterações nos dados de uma tabela não seriam incluídas nas demais. Sem uma solução de replicação gerenciada, você precisaria gravar código para replicar as alterações nos dados. No entanto, isso seria um esforço demorado e trabalhoso.

Em vez de escrever seu próprio código, você pode criar uma tabela global que englobe as três tabelas CustomerProfiles específicas à região. O DynamoDB pode então replicar automaticamente as alterações de dados entre essas tabelas para que as alterações na CustomerProfiles de uma região sejam perfeitamente propagadas para as outras regiões. Além disso, se uma das regiões da AWS se tornasse temporariamente indisponível, os clientes ainda poderiam acessar os mesmos dados de CustomerProfiles nas outras regiões.

nota
  • O suporte de região para tabelas globais Global Tables versão 2017.11.29 (herdada) é limitado ao Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Norte da Califórnia), Oeste dos EUA (Oregon), Europa (Irlanda), Europa (Londres), Europa (Frankfurt), Ásia-Pacífico (Singapura), Ásia-Pacífico (Sydney), Ásia-Pacífico (Tóquio) e Ásia-Pacífico (Seul).

  • As operações transacionais fornecem garantia de atomicidade, consistência, isolamento e durabilidade (ACID) somente na região em que a gravação é realizada originalmente. As transações não são compatíveis entre regiões em tabelas globais. Por exemplo, se você tiver uma tabela global com réplicas nas regiões Leste dos EUA (Ohio) e Oeste dos EUA (Oregon) e realizar uma operação TransactWriteItems na região Leste dos EUA (Norte da Virgínia), poderá observar transações parcialmente concluídas na região Oeste dos EUA (Oregon) à medida que as alterações forem replicadas. As alterações só serão replicadas para outras regiões quando forem confirmadas na região de origem.

  • Se você Desabilitar uma região da AWS, o DynamoDB removerá essa réplica do grupo de replicação 20 horas após detectar que a região da AWS está inacessível. A réplica não será excluída e a replicação será interrompida com essa região.

  • Você deve esperar 24 horas a partir do momento em que adicionar uma réplica de leitura para excluir com êxito uma tabela de origem. Se tentar excluir uma tabela durante as primeiras 24 horas após adicionar uma réplica de leitura, você receberá uma mensagem de erro informando: “A réplica não pode ser excluída porque ela atuou como uma região de origem para novas réplicas adicionadas na tabela nas últimas 24 horas”.

  • A performance não é afetada nas regiões de origem ao adicionar novas réplicas.

  • Quando você altera a capacidade de leitura e gravação de uma réplica, a nova capacidade de gravação é refletida em outras réplicas sincronizadas, mas a nova capacidade de leitura não.

Para obter mais informações sobre disponibilidade de regiões da AWS e preços, consulte Preços do Amazon DynamoDB.

Fornecer segurança e acesso às suas tabelas globais com o AWS KMS

  • Você pode executar operações do AWS KMS em suas tabelas globais usando a função vinculada ao serviço AWSServiceRoleForDynamoDBReplication na chave gerenciada pelo cliente ou na Chave gerenciada pela AWS usada para criptografar a réplica.

  • Se a chave gerenciada pelo cliente usada para criptografar uma réplica de tabela global estiver inacessível, o DynamoDB removerá essa réplica do grupo de replicação. A réplica não será excluída e a replicação será interrompida nessa região 20 horas após detectar que a chave KMS está inacessível.

  • Se desejar desabilitar sua chave gerenciada pelo cliente usada para criptografar uma tabela-réplica, você deve fazer isso somente se a chave não for mais usada para criptografar uma tabela-réplica. Depois de emitir um comando para excluir uma tabela-réplica, você deve aguardar a conclusão da operação de exclusão e que a tabela global se torne Active antes de desabilitar a chave. Não fazer isso pode resultar na replicação parcial de dados de e para a tabela-réplica.

  • Se desejar modificar ou excluir sua política de perfil do IAM para a tabela-réplica, você deverá fazê-lo quando a tabela-réplica estiver estado Active. Caso contrário, a criação, atualização ou exclusão da tabela-réplica poderá falhar.

  • As tabelas globais são criadas com a proteção contra exclusão desativada por padrão. Mesmo quando a proteção contra exclusão estiver ativada para uma tabela global, todas as réplicas dessa tabela serão iniciadas com a proteção contra exclusão desativada por padrão.

  • Enquanto a proteção contra exclusão estiver desativada para uma tabela, ela poderá ser excluída acidentalmente. Enquanto a proteção contra exclusão estiver ativada para uma tabela, não será possível excluí-la.

  • Alterar a configuração de proteção contra exclusão de uma tabela de réplica não atualizará outras réplicas no grupo.

nota

Chaves gerenciadas pelo cliente não são compatíveis em Global Tables versão 2017.11.29 (herdada). Se quiser usar uma chave gerenciada pelo cliente em uma tabela global do DynamoDB, você precisará atualizar a tabela para Global Tables versão 2019.11.21 (atual) e habilitá-la.