Recursos do Amazon DynamoDB

Por que usar o DynamoDB?

O Amazon DynamoDB é um serviço de banco de dados NoSQL com tecnologia sem servidor compatível com modelos de dados de chave/valor e de documentos. Os desenvolvedores podem usar o DynamoDB para desenvolver aplicações modernas e com tecnologia sem servidor, que podem começar de forma pequena e serem escaladas para um alcance global. O DynamoDB escala para se tornar compatível com tabelas de praticamente qualquer tamanho com escalabilidade horizontal automatizada.

A disponibilidade, a durabilidade e a tolerância a falhas são incorporadas e não é possível desativá-las, o que remove a necessidade de arquitetar suas aplicações para essas funcionalidades.

O DynamoDB foi criado para executar aplicações de alto desempenho e na escala da Internet, o que sobrecarregaria bancos de dados relacionais tradicionais. Com mais de dez anos de investimento pioneiro em inovação, o DynamoDB oferece escalabilidade ilimitada com performance consistente de milissegundos de um dígito e até 99,999% de disponibilidade.

Para saber mais sobre novos recursos e funcionalidades, acesse os anúncios de Novidades para o DynamoDB.

Performance de tecnologia sem servidor com escalabilidade ilimitada

O DynamoDB oferece suporte a modelos de dados de documentos e chave/valor. Como um banco de dados NoSQL, o DynamoDB apresenta um esquema flexível, possibilitando que cada item contenha muitos atributos diferentes. Esse esquema permite se adaptar facilmente às mudanças nos requisitos comerciais, sem o problema de ter que redefinir o esquema de tabelas, como acontece em bancos de dados relacionais.

Com o DynamoDB, não há servidores para provisionar, aplicar patches ou gerenciar nem softwares para instalar, manter ou operar. O DynamoDB não conta com versões (principais, secundárias ou de correção) e não existem janelas de manutenção. Além disso, ele fornece manutenção sem causar tempo de inatividade. Os preços sob demanda do DynamoDB proporcionam um sistema de preço conforme o uso, permitem escalabilidade até zero e escalam automaticamente as tabelas para atender à capacidade, garantindo performance sem a necessidade de administração.

O DynamoDB foi desenvolvido para workloads essenciais e inclui suporte para transações de atomicidade, consistência, isolamento e durabilidade (ACID) para aplicações que requerem lógica de negócios complexa. O DynamoDB fornece suporte nativo e do lado do servidor para transações, simplificando a experiência do desenvolvedor ao realizar alterações coordenadas, em que tudo ou nada é aplicado a múltiplos itens, tanto em uma tabela quanto entre tabelas.

O DynamoDB oferece suporte para cem ações por transação, o que aumenta a produtividade dos desenvolvedores. Com o suporte para transações, os desenvolvedores podem estender o dimensionamento, o desempenho e os benefícios empresariais do DynamoDB a um conjunto mais amplo de cargas de trabalho de missão crítica.

As tabelas globais do DynamoDB fornece uma replicação ativa/ativa dos seus dados nas regiões da AWS que você escolher, com uma disponibilidade de 99,999%. As tabelas globais são multifuncionais, o que significa que você pode realizar leitura e gravação usando qualquer réplica, e suas aplicações distribuídas globalmente podem acessar os dados localmente nas regiões selecionadas, alcançando uma performance de leitura e de gravação de milissegundos de um dígito.

Além disso, as tabelas globais escalam automaticamente a capacidade para acomodar workloads multirregionais. As tabelas globais melhoram a resiliência multirregional da aplicação e devem ser consideradas parte da estratégia de continuidade de negócios da sua organização.

O DynamoDB Streams é uma funcionalidade de captura de alterações nos dados. Sempre que uma aplicação cria, atualiza ou exclui itens em uma tabela, o DynamoDB Streams registra uma sequência em ordem temporal de cada alteração em nível de item quase em tempo real, tornando-o ideal para aplicações em arquiteturas orientadas a eventos que consomem e respondem a essas alterações. Todas as alterações passaram por um processo para eliminar a duplicação e são armazenadas por 24 horas.

Além disso, as aplicações podem acessar este log e visualizar os itens de dados como eles estavam antes e como eles estão depois de serem modificados praticamente em tempo real. O DynamoDB Streams assegura que cada registro no fluxo seja apresentado exatamente uma vez e, para cada item modificado, os registros no fluxo são exibidos na mesma sequência das alterações efetivamente realizadas no item.

Assim como em todos os outros sistemas de banco de dados, você começa com a criação de uma tabela, que é uma coleção de itens. Com o DynamoDB, cada item na tabela é identificado por sua própria chave primária. Muitas aplicações também podem se beneficiar de uma ou mais chaves secundárias para pesquisar dados com mais eficiência usando outros atributos. O DynamoDB fornece a opção de criar índices secundários globais e locais, permitindo que você consulte os dados na tabela usando uma chave secundária ou alternativa.

Os índices secundários globais também são conhecidos como índices esparsos. Além de oferecer a máxima flexibilidade sobre como acessar seus dados, você pode provisionar um throughput de gravação inferior com excelente performance e com um custo reduzido.

Segurança e confiabilidade

No DynamoDB, não são usados nomes de usuário ou senhas. O DynamoDB usa o AWS Identity and Access Management (IAM) para autenticação, criação e acesso a recursos. É possível especificar políticas do IAM, políticas baseadas em recursos e condições que permitem um acesso detalhado, restringindo o acesso de leitura ou de gravação a itens e atributos específicos em uma tabela, de acordo com a identidade do usuário. Isso permite aos clientes aplicarem políticas de segurança no nível do código.

O DynamoDB criptografa todos os dados em repouso do cliente por padrão. A criptografia em repouso aumenta a segurança dos seus dados ao usar chaves de criptografia armazenadas no AWS Key Management Service (AWS KMS). Com a adição do SDK de criptografia de banco de dados da AWS, é possível realizar a criptografia em nível de atributo para reforçar ainda mais o controle de acesso granular aos dados na tabela. O DynamoDB auxilia no desenvolvimento de aplicações que requerem segurança, atendendo a requisitos rigorosos de conformidade e regulamentação relacionados à criptografia.

As chaves de criptografia fornecem uma camada adicional de proteção de dados ao proteger os dados contra o acesso não autorizado ao armazenamento subjacente. É possível especificar se o DynamoDB deve usar uma chave de propriedade da AWS (que corresponde ao tipo de criptografia padrão), uma chave gerenciada pela AWS ou uma chave gerenciada pelo cliente para criptografar os dados do usuário. A criptografia padrão com chaves do AWS KMS é disponibilizada sem custos adicionais.

A recuperação para um ponto no tempo (PITR) ajuda a proteger suas tabelas do DynamoDB contra operações de gravação ou de exclusão acidentais. A PITR fornece backups contínuos dos dados da sua tabela do DynamoDB, permitindo que você restaure a tabela para qualquer momento nos últimos 35 dias, com precisão de até um segundo.

A PITR não usa capacidade provisionada e não tem impacto na performance ou na disponibilidade de suas aplicações. A habilitação da PITR ou o início de operações de backup e de restauração podem ser feitos em uma única etapa no Console de Gerenciamento da AWS ou com uma única chamada de API.

O backup e a restauração sob demanda permitem a criação de backups completos dos dados das suas tabelas do DynamoDB para fins de arquivamento, ajudando a cumprir os requisitos regulatórios corporativos e governamentais. Você pode fazer backup de tabelas de alguns megabytes a centenas de terabytes de dados, sem afetar a performance ou a disponibilidade das aplicações de produção. Com a integração do AWS Backup, também é possível copiar backups sob demanda entre contas e regiões diferentes, criar marcações de alocação de custos para os backups e realizar a transição backups para o armazenamento frio.

O DynamoDB é compatível com endpoints da nuvem privada virtual (VPC) de gateway e com endpoints da VPC de interface para conexões dentro de uma VPC ou de data centers on-premises. É possível configurar a conectividade de rede privada de suas aplicações on-premises com o DynamoDB por meio de endpoints da VPC de interface habilitados com o AWS PrivateLink. Isso permite que os clientes simplifiquem a conectividade privada para o DynamoDB e mantenham a conformidade.

Economia

O DynamoDB disponibiliza modos de capacidade para cada tabela: sob demanda e provisionada.

  • Para workloads que são menos previsíveis e para as quais você não tem certeza se terá alta utilização, o modo de capacidade sob demanda gerencia a capacidade para você, e você paga somente pelo que usar.
  • As tabelas que usam o modo de capacidade provisionada requerem que você configure a capacidade de leitura e de gravação. O modo de capacidade provisionada é mais vantajoso em termos de custo quando você está confiante de que terá uma utilização adequada da capacidade que definiu. 

Para tabelas que usam o modo de capacidade sob demanda, o DynamoDB adapta-se instantaneamente às suas workloads à medida que elas aumentam ou diminuem para qualquer nível de tráfego previamente atingido. Se o nível de tráfego de uma carga de trabalho atingir um novo pico, o DynamoDB faz adaptações rapidamente para acomodar a carga de trabalho. Também é possível configurar o throughput máximo de leitura ou gravação (ou ambos) para tabelas sob demanda e índices secundários associados, facilitando o equilíbrio entre custos e performance. Você pode usar o modo de capacidade sob demanda para tabelas novas e existentes e continuar usando as APIs do DynamoDB sem alterar códigos.

Para dados que são acessados com pouca frequência, você pode usar a classe de tabela Amazon DynamoDB Standard-IA, que ajuda a reduzir os custos do DynamoDB em até 60%. As tabelas na classe Standard-IA, com seu custo de armazenamento reduzido, são projetadas para o armazenamento de longo prazo de dados que são acessados com pouca frequência, como logs de aplicações, dados históricos de jogos, publicações antigas em mídias sociais e outros. Elas têm a mesma disponibilidade, durabilidade e performance das tabelas Standard do Amazon DynamoDB, que são a opção padrão e mais econômica para a maioria das workloads.

Para tabelas que usam capacidade provisionada, o DynamoDB fornece ajuste de escala automático do throughput e do armazenamento, com base na capacidade estabelecida previamente ao monitorar o uso de performance da sua aplicação.

  • Caso o tráfego da sua aplicação aumente, o DynamoDB ajusta o throughput para atender à demanda.
  • Se o tráfego do seu aplicativo diminuir, o DynamoDB diminui para que você possa pagar menos pela capacidade não utilizada.

Integrações com os serviços da AWS

A funcionalidade de importação e exportação em massa do Amazon Simple Storage Service (Amazon S3) ajuda você a obter mais valor dos dados ao remover a necessidade de gravar código para realizar movimentações, transformações e cópias das suas tabelas do DynamoDB de uma aplicação, conta ou região para outra. A importação e a exportação em massa não usam a capacidade de leitura ou de gravação da sua tabela, portanto, você não precisa planejar ou provisionar capacidade adicional. O processo de importação e de exportação em massa é totalmente gerenciado pelo DynamoDB.

As importações em massa do Amazon S3 permitem a importação de dados em qualquer escala, desde megabytes até terabytes, usando os formatos compatíveis, como CSV, DynamoDB JSON e Amazon Ion. Com as importações em massa do Amazon S3, os clientes podem economizar até 66% em comparação com gravações baseadas no cliente usando capacidade provisionada.

Com as exportações em massa para o Amazon S3, é possível exportar dados de tabelas com a PITR habilitada para qualquer ponto no tempo dos últimos 35 dias, com granularidade por segundo. Uma vez que você exporta dados do DynamoDB para o Amazon S3, é possível usar outros serviços da AWS, como o Amazon Athena, o Amazon SageMaker e muitos outros, para analisar os dados e extrair insights acionáveis.

O Amazon Kinesis Data Streams para DynamoDB captura alterações em nível de item nas tabelas do DynamoDB, permitindo a criação de painéis em tempo real, a geração de métricas e a entrega de dados em data lakes. O Kinesis Data Streams permite desenvolver aplicações de transmissão avançadas, como agregação de log em tempo real, análise de negócios em tempo real e captura de dados de IoT.

Por meio do Kinesis Data Streams, também é possível usar o Amazon Kinesis Data Firehose para entregar automaticamente os dados do DynamoDB a outros serviços da AWS, como o Amazon S3, o Amazon OpenSearch Service e o Amazon Redshift.

Para facilitar o monitoramento da performance do banco de dados, o DynamoDB é integrado com o Amazon CloudWatch, que coleta e processa os dados brutos de performance do banco de dados. É possível usar o CloudWatch para criar visualizações personalizadas e painéis de métricas e de alarmes para os bancos de dados do DynamoDB. Esse recurso de monitoramento é oferecido por padrão e é gratuito. Também é possível criar alarmes que são enviados automaticamente para você com base na performance da métrica.

O Amazon CloudWatch Contributor Insights ajuda a identificar rapidamente quem ou o que está afetando a performance dos bancos de dados e das aplicações. Essa funcionalidade facilita o isolamento, o diagnóstico e a remediação de problemas com rapidez durante um evento operacional.

Perguntas frequentes

Entre as vantagens exclusivas do DynamoDB estão o fato de ser um banco de dados sem servidor totalmente gerenciado, que pode ser escalável até zero, fornecendo performance de milissegundos de um dígito e disponibilidade de até 99,999%. Com uma performance consistente em grande escala, o DynamoDB também oferece a segurança, a durabilidade e a confiabilidade integradas, atendendo às necessidades de aplicações globais com os requisitos mais rigorosos.

Devido à sua facilidade de uso, o DynamoDB é frequentemente escolhido tanto para novas aplicações modernas quanto para aplicações de grande escala já consolidadas na Internet que buscam performance rápida e consistente com escalabilidade ilimitada.

O DynamoDB é projetado para desenvolvedores e, por ter uma tecnologia sem servidor, é simples configurá-lo usando nossa documentação técnica.