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 oferecem disponibilidade de 99,999%, aumentam a resiliência das aplicações e aprimoram a continuidade dos negócios. 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.

No caso raro de falha de uma única região, não há necessidade de failover de banco de dados, pois a arquitetura multiativa das tabelas globais permite que os clientes leiam e gravem em qualquer tabela de réplica. As tabelas globais também eliminam o difícil trabalho de replicar dados entre regiões e de resolver conflitos de atualização para workloads multiativas. Além disso, as tabelas globais possibilitam que as aplicações permaneçam altamente disponíveis, mesmo no caso raro de isolamento ou degradação de uma região inteira.

Você pode configurar tabelas globais no Console de Gerenciamento da AWS com a AWS Command Line Interface (AWS CLI) ou com o AWS CloudFormation. Não é necessário alterar a aplicação ao ler ou gravar em uma tabela global, pois as tabelas globais 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. Saiba mais sobre como configurar tabelas globais no Guia do desenvolvedor do Amazon DynamoDB. Para obter mais informações sobre os preços das tabelas globais, consulte as opções de preços do Amazon DynamoDB para modelos sob demanda e provisionados.

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 alguma tabela de réplica, o DynamoDB replica automaticamente esses dados em todas as outras tabelas de réplica da 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. Sem tabelas globais, seria necessário criar uma tabela em cada região da AWS e escrever código para replicar as alterações de dados em cada tabela 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 de sua aplicação tenham acesso de baixa latência aos dados, onde quer que estejam localizados. No caso improvável de uma região da AWS ficar temporariamente indisponível, seus clientes ainda poderão acessar as tabelas de réplicas nas outras 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. Como as tabelas globais são multiativas, a aplicação pode ler ou gravar em qualquer tabela de réplica. No caso raro de um evento regional não planejado, a aplicação poderá redirecionar para outra réplica.

Você pode 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 »