Tabelas globais do Amazon DynamoDB

Por que usar as tabelas globais do Amazon DynamoDB?

As tabelas globais do Amazon DynamoDB são um banco de dados totalmente gerenciado, com tecnologia sem servidor, multirregional e multiativo. As tabelas globais fornecem 99,999% de disponibilidade, maior resiliência para aplicações e continuidade de negócios aprimorada. Como as tabelas globais replicam as tabelas do Amazon DynamoDB automaticamente nas regiões da AWS de sua preferência, é possível obter uma performance rápida e local de leitura e gravação.

Caso o processamento da aplicação seja interrompido em uma região, não há necessidade de realizar o failover do banco de dados, pois a arquitetura multiativa das tabelas globais possibilita que os clientes realizem operações de leitura e de gravação em qualquer tabela réplica. Além disso, as tabelas globais removem o trabalho complexo de replicação de dados entre regiões e de resolução de conflitos de atualização para workloads em diversas regiões.

Agora, para workloads em diversas regiões, é possível optar entre consistência robusta (NOVIDADE [versão prévia]) ou consistência eventual. A consistência robusta permite que você desenvolva aplicações com um objetivo de ponto de recuperação com valor zero, também conhecido como RPO zero. Ela também garante que a aplicação esteja sempre lendo os dados mais recentes.

Começar a usar as tabelas globais é um processo simples, pois elas usam as mesmas APIs do DynamoDB que as tabelas de uma única região. Não há custos ou compromissos adiantados para usar as tabelas globais, e você paga apenas pelos recursos que utilizar. É possível configurar as tabelas globais no Console de Gerenciamento da AWS com a AWS Command Line Interface (AWS CLI) ou com o AWS CloudFormation, e você pode obter mais informações no Guia do desenvolvedor do Amazon DynamoDB. Para obter mais informações sobre o preço das tabelas globais, consulte as opções de preços do Amazon DynamoDB para o uso sob demanda e provisionado.

Como ele funciona

Uma tabela global do DynamoDB é composta por várias tabelas de réplica. Cada tabela de réplica existe em uma região diferente, mas todas as réplicas têm o mesmo nome e chave primária. Quando os dados são gravados em qualquer tabela de réplica, o DynamoDB realiza automaticamente a replicação desses dados para todas as demais tabelas de réplica na tabela global.

Por exemplo, suponha que sua aplicação atenda a uma grande base de clientes espalhadas entre três regiões geográficas: Costa Oeste dos EUA, Canadá e Europa Ocidental. Na ausência de tabelas globais, seria necessário criar uma tabela em cada região da AWS e realizar a gravação de um código para replicar as alterações dos dados entre as tabelas de cada região.

Com tabelas globais, é possível criar uma tabela global com uma tabela de réplica nas três regiões mais próximas de cada área geográfica. O DynamoDB replicará automaticamente as alterações de qualquer réplica para as réplicas nas outras regiões.

As tabelas globais permitem que os usuários da aplicação tenham acesso de baixa latência aos dados, independentemente do local em que estejam. Caso o processamento da aplicação seja interrompido em uma região, os clientes poderão continuar acessando as tabelas de réplica nas demais regiões.

Como ele funciona

Benefícios da tabela global do Amazon DynamoDB

As tabelas globais eliminam a complexidade e a carga operacional de implantar e gerenciar a replicação multiativa e multirregional no Amazon DynamoDB. Selecione as regiões nas quais você precisa dos dados replicados, e o DynamoDB dá conta do resto. As aplicações acessam as tabelas globais usando as APIs do DynamoDB e endpoints existentes.

A replicação multiativa e multirregional garante que as atualizações realizadas em uma tabela de réplica de uma região sejam replicadas para as tabelas de réplica de outras regiões. A replicação entre réplicas de tabelas em todas as regiões acaba sendo consistente. Isso significa que as leituras e gravações locais em tabelas de réplica na mesma região da aplicação podem alcançar uma forte consistência. Porém, as leituras de itens que estão em outras tabelas de réplica de uma região acabam sendo consistentes.

As tabelas globais foram projetadas para fornecer 99,999% de disponibilidade. Se uma única região ficar isolada ou degradada, sua aplicação poderá redirecionar o tráfego para uma região diferente e executar leituras e gravações de acordo com uma tabela replicada diferente. É possível aplicar lógicas de negócio personalizadas para determinar quando redirecionar solicitações para outras regiões. 

Além disso, o Amazon DynamoDB monitora as gravações realizadas que ainda não foram propagadas para todas as tabelas replicadas. Quando uma região volta a ficar on-line, o Amazon DynamoDB retoma a propagação de qualquer gravação pendente daquela região para as tabelas replicadas em outras regiões, e vice-versa.

As alterações feitas em um item de uma tabela replicada serão replicadas em todas as outras réplicas da mesma tabela global. Em uma tabela global, um item recém-gravado normalmente é propagado em todas as tabelas replicadas em um segundo.  Em uma tabela global, cada tabela replicada armazena o mesmo conjunto de itens de dados. O Amazon DynamoDB não é compatível com replicação parcial de apenas alguns itens. Se as aplicações atualizarem o mesmo item em diferentes regiões aproximadamente ao mesmo tempo, pode haver conflitos.

Para resolver conflitos, as tabelas globais do Amazon DynamoDB usam uma reconciliação do tipo “last-writer-wins” entre as atualizações simultâneas, na qual o Amazon DynamoDB determina o responsável pela última gravação com base no melhor esforço. Com esse mecanismo de resolução de conflitos, todas as réplicas concordam com a última atualização e convergem para um estado em que todas apresentem dados idênticos.

Com as tabelas globais, você lê e grava dados localmente fornecendo uma latência de milissegundo de digito único para sua aplicação distribuída globalmente, em qualquer escala. Isso pode aumentar a performance de aplicações globais em escala.

Tópicos da página

Geral

Geral

Uma tabela global é uma coleção de uma ou mais tabelas de réplica que pertencem a uma única conta da AWS. Uma única tabela global do Amazon DynamoDB pode ter apenas uma tabela de réplica por região da AWS.

Uma tabela de réplica é uma única tabela do DynamoDB. Cada tabela de réplica armazena o mesmo conjunto de itens de dados, tem o mesmo nome de tabela e o mesmo esquema de chave primária. Quando uma aplicação grava dados em uma tabela de réplica em uma região, o Amazon DynamoDB replica a gravação nas outas tabelas de réplica de outras regiões da AWS.

Sim, as tabelas globais do Amazon Dynamo reforçam a continuidade dos negócios, pois aumentam a resiliência da aplicação e proporcionam forte consistência para uma única região. Com a consistência sólida em várias regiões, é possível desenvolver aplicações com RPO zero e os maiores níveis de resiliência.

É possível criar uma tabela global usando o console do Amazon DynamoDB, a AWS CLI ou o AWS CloudFormation com este guia detalhado.

Antes de adicionar outra réplica em uma região diferente a uma tabela global do Amazon DynamoDB, a tabela deve ter o DynamoDB Streams habilitado, ter o mesmo nome de todas as outras réplicas, ter a mesma chave de partição de todas as outras réplicas, ter as mesmas configurações de capacidade de gravação especificadas.

Todas as tabelas de réplica de uma tabela global do Amazon DynamoDB devem ter o mesmo nome.

De forma semelhante a outros bancos de dados, o Amazon DynamoDB armazena dados em tabelas. A tabela é uma coleção de itens, e cada item é uma coleção de atributos. O Amazon DynamoDB usa chaves primárias para identificar de forma exclusiva cada item de uma tabela e tem índices secundários para fornecer mais flexibilidade de consulta.

Por outro lado, uma tabela global do Amazon DynamoDB é uma coleção de uma ou mais tabelas de réplica que pertence a uma única conta da AWS. Cada tabela de réplica é estruturalmente igual a uma tabela normal do Amazon DynamoDB.

Sim, é possível habilitar a recuperação para um ponto no tempo em cada réplica de uma tabela global.

  • Zoom

    Com o início da pandemia da COVID-19, a demanda por nossos serviços de voz e de vídeo cresceu de forma significativa. No início de 2020, observamos um crescimento de uso sem precedentes de 10M para 300M de participantes em reuniões diárias de clientes novos e existentes que precisavam de se conectar virtualmente. No backend, conseguimos gerenciar esse aumento com o Amazon DynamoDB para reuniões por Zoom. Usar as tabelas globais do DynamoDB em conjunto com o modo sob demanda nos possibilitou escalar quase infinitamente sem problemas de performance, mesmo com o aumento repentino no uso.

    Yasin Mohammed, gerente de engenharia, operações na nuvem na Zoom Video Communications, Inc.
  • Disney

    O Disney+ usa o Amazon DynamoDB para processar conteúdo, metadados e bilhões de ações de clientes a cada dia, o que possibilita aos espectadores adicionar conteúdo às suas Listas de Assistidos, começar a assistir a um vídeo e continuar em um dispositivo diferente, além de receber recomendações sobre o que assistir a seguir.

    Bilhões de favoritos são ingeridos diariamente pelo Amazon Kinesis e armazenados no Amazon DynamoDB.

    Attilio Giue, diretor de descoberta de conteúdo do Disney+
    Leia o comunicado à imprensa »
  • Snap Inc.

    A Snap Inc. reduziu significativamente os custos anuais de infraestrutura e possibilitou a implantação de uma infraestrutura rápida e confiável para o aplicativo de mensagens multimídia Snapchat ao usar o Amazon DynamoDB.

    As funcionalidades oferecidas pelo Amazon DynamoDB, em conjunto com sua constante inovação, garantem que possamos continuar a confiar nele e a desenvolver novas soluções em sua plataforma.

    Saral Jain, diretor de engenharia e diretor de infraestrutura da Snap Inc.
    Leia o estudo de caso »