O DynamoDB da Amazon é um banco de dados NoSQL to­tal­mente ge­ren­ci­ado e sem servidor (ser­ver­less). Entre os prin­ci­pais destaques do serviço estão es­ca­la­bi­li­dade au­to­má­tica, tempos de resposta de mi­lis­se­gun­dos e baixa ne­ces­si­dade de ma­nu­ten­ção, além de uma in­te­gra­ção des­com­pli­cada com o ecos­sis­tema da AWS. Os casos de uso são amplos: desde o de­sen­vol­vi­mento de software até a es­ca­la­bi­li­dade de pla­ta­for­mas de jogos e streaming de vídeo em tempo real.

O que é DynamoDB?

O DynamoDB da Amazon é um serviço de banco de dados NoSQL ser­ver­less voltado para apli­ca­ções modernas de qualquer porte, dis­po­ní­vel desde 2012 por meio da AWS (Amazon Web Services). Di­fe­ren­te­mente de muitos con­cor­ren­tes, o DynamoDB é uma solução to­tal­mente ge­ren­ci­ada. Isso significa que tarefas como atu­a­li­za­ções, upgrades e es­ca­la­bi­li­dade são ad­mi­nis­tra­das au­to­ma­ti­ca­mente, sem in­ter­ven­ção manual.

O sistema de ge­ren­ci­a­mento de banco de dados (DBMS) oferece ainda um conjunto robusto de recursos de segurança e padrões de con­for­mi­dade. Além disso, o DynamoDB se integra per­fei­ta­mente a outros serviços da AWS, como o Lambda ou o Amazon Open­Se­arch Service.

Estrutura do DynamoDB

A estrutura do DynamoDB segue uma hi­e­rar­quia clara, com tabelas como entidade principal, sem a ne­ces­si­dade de relações rígidas entre elas, di­fe­ren­te­mente dos bancos de dados re­la­ci­o­nais. Os dados são ar­ma­ze­na­dos em partições, que são au­to­ma­ti­ca­mente dis­tri­buí­das e re­pli­ca­das. Cada partição contém três nós, cada um com uma cópia dos dados, o que facilita a es­ca­la­bi­li­dade e garante re­dun­dân­cia em caso de falha.

Os de­sen­vol­ve­do­res armazenam os registros como conjuntos de atributos, cada um associado a uma chave primária única. O DynamoDB suporta tanto o modelo orientado a chave-valor quanto a do­cu­men­tos.

Classes de tabela no DynamoDB

As classes de tabela permitem otimizar o de­sem­pe­nho e o custo das tabelas no DynamoDB. Os usuários podem escolher entre duas opções e alternar entre elas até duas vezes por mês sem in­ter­rup­ções, ajustando os custos conforme os padrões de uso:

  • DynamoDB Standard é a classe padrão, projetada para cargas de trabalho de alto de­sem­pe­nho e volumes de acesso im­pre­vi­sí­veis. Essa classe costuma ter custos mais baixos para operações de leitura e escrita.
  • DynamoDB Standard In­fre­quent Access é otimizada para tabelas em que o custo de ar­ma­ze­na­mento é o principal fator. Com custos reduzidos de ar­ma­ze­na­mento, é ideal para dados acessados com pouca frequên­cia.

Recursos do DynamoDB

O DynamoDB da Amazon oferece uma ampla gama de fun­ci­o­na­li­da­des que vi­a­bi­li­zam apli­ca­ções es­ca­lá­veis, altamente dis­po­ní­veis e com ótimo de­sem­pe­nho. A seguir, os prin­ci­pais recursos:

  • Modelos de dados ori­en­ta­dos a chave-valor e a do­cu­men­tos: O DynamoDB possui um esquema flexível, per­mi­tindo que di­fe­ren­tes atributos sejam as­so­ci­a­dos a cada item.
  • Tran­sa­ções ACID: O banco oferece suporte a tran­sa­ções com ato­mi­ci­dade, con­sis­tên­cia, iso­la­mento e du­ra­bi­li­dade (ACID), per­mi­tindo que apli­ca­ções críticas tirem proveito da es­ca­la­bi­li­dade e de­sem­pe­nho da pla­ta­forma.
  • Tabelas globais com re­pli­ca­ção ativa-ativa: As tabelas globais são mul­ti­a­ti­vas, per­mi­tindo leitura e escrita a partir de qualquer réplica. A ca­pa­ci­dade é ajustada au­to­ma­ti­ca­mente conforme a carga em cada região.
  • DynamoDB Streams: Essa fun­ci­o­na­li­dade registra eventos sempre que um item é criado, mo­di­fi­cado ou excluído em uma tabela. Os registros ficam dis­po­ní­veis por 24 horas.
  • Índices se­cun­dá­rios: O DynamoDB suporta índices se­cun­dá­rios locais e globais, per­mi­tindo consultas por chaves al­ter­na­ti­vas. Também é possível utilizar índices esparsos (sparse indexes), indexando apenas sub­con­jun­tos es­pe­cí­fi­cos de dados.
  • Par­ti­ci­o­na­mento au­to­má­tico: Os dados são dis­tri­buí­dos au­to­ma­ti­ca­mente entre partições, com es­ca­la­bi­li­dade sob demanda.
  • Recursos de segurança: O serviço oferece controle de acesso granular, crip­to­gra­fia em repouso, re­cu­pe­ra­ção pontual, backups sob demanda e co­nec­ti­vi­dade privada via rede.
  • Modelos de ca­pa­ci­dade: Os usuários podem escolher entre o modo sob demanda (on-demand) e o modo pro­vi­si­o­nado, de acordo com suas ne­ces­si­da­des.
  • DynamoDB Ac­ce­le­ra­tor (DAX): Serviço opcional de caching in-memory, que pode melhorar o de­sem­pe­nho em até 10 vezes.

Vantagens e des­van­ta­gens do DynamoDB

Entre os prin­ci­pais pontos fortes do serviço NoSQL da Amazon, destacam-se:

  • Es­ca­la­bi­li­dade au­to­má­tica: O DynamoDB ajusta di­na­mi­ca­mente a ca­pa­ci­dade e o par­ti­ci­o­na­mento conforme o th­rough­put, vi­a­bi­li­zando cres­ci­mento ho­ri­zon­tal ilimitado.
  • Ar­qui­te­tura ser­ver­less: Como é to­tal­mente ge­ren­ci­ado, os de­sen­vol­ve­do­res podem focar no de­sen­vol­vi­mento de apli­ca­ções, sem se preocupar com in­fra­es­tru­tura.
  • Alta dis­po­ni­bi­li­dade: Com re­pli­ca­ção au­to­má­tica entre regiões e suporte a tabelas mul­tir­re­gião, o DynamoDB oferece dis­po­ni­bi­li­dade de até 99,999%.
  • Baixa latência: Operações de leitura e escrita com latência de apenas alguns mi­lis­se­gun­dos. Com o DynamoDB Ac­ce­le­ra­tor, esse tempo pode chegar a apenas alguns mi­cros­se­gun­dos.
  • In­te­gra­ção sim­pli­fi­cada com AWS: A in­te­gra­ção nativa com serviços como CloudWatch ou Kinesis amplia as fun­ci­o­na­li­da­des do DynamoDB e permite análises avançadas de dados.
Cloud Compute Engine da IONOS

Empresas de médio e grande porte optam pela nuvem da Alemanha. Serviços IaaS e PaaS são para campeões.

  • Seguro
  • Confiável
  • Flexível

Embora as vantagens superem am­pla­mente as des­van­ta­gens e o DynamoDB seja de­fi­ni­ti­va­mente entre as melhores al­ter­na­ti­vas ao SQL, a pla­ta­forma apresenta algumas li­mi­ta­ções. Por um lado, o banco de dados oferece opções de consulta limitadas, menos abran­gen­tes do que as de muitos con­cor­ren­tes. Por outro, a forte in­te­gra­ção com serviços da AWS dificulta a migração para outras pla­ta­for­mas. Além disso, nos modelos sob demanda, picos re­pen­ti­nos de carga podem resultar em custos ines­pe­ra­da­mente altos.

Usos do DynamoDB

O DynamoDB foi de­sen­vol­vido es­pe­ci­al­mente para workloads que exigem pro­ces­sa­mento, es­ca­la­bi­li­dade e alta dis­po­ni­bi­li­dade de grandes volumes de dados com baixa latência. Entre os casos de uso mais comuns estão:

  • Apli­ca­ções web ser­ver­less e backends móveis, onde dados de contas, sessões e con­fi­gu­ra­ções precisam ser acessados com latência mínima
  • Pla­ta­for­mas de jogos, que precisam atender si­mul­ta­ne­a­mente centenas de milhares ou até milhões de jogadores co­nec­ta­dos aos ser­vi­do­res
  • Streaming de conteúdo, voltado a públicos globais e com padrões de tráfego ir­re­gu­la­res ou com picos de acesso
  • Bancos e ins­ti­tui­ções fi­nan­cei­ras, que realizam um grande volume de tran­sa­ções si­mul­tâ­neas em tempo real e enfrentam o desafio de garantir a in­te­gri­dade e a segurança dessas operações
  • Apli­ca­ções de IoT (Internet das Coisas), que processam e armazenam grandes quan­ti­da­des de dados gerados por sensores

Prin­ci­pais al­ter­na­ti­vas ao DynamoDB da Amazon

Além do DynamoDB, há outras soluções de banco de dados que podem ser con­si­de­ra­das de­pen­dendo dos re­qui­si­tos técnicos, do modelo de dados, da es­ca­la­bi­li­dade ne­ces­sá­ria e da in­fra­es­tru­tura. Entre os destaques estão:

  • MongoDB: Altamente flexível e escalável
  • MySQL: Sistema re­la­ci­o­nal am­pla­mente utilizado, com alta dis­po­ni­bi­li­dade
  • MariaDB: Al­ter­na­tiva re­la­ci­o­nal de código aberto ao DynamoDB
  • Post­greSQL: Banco de dados re­la­ci­o­nal que também oferece suporte a tipos de dados não re­la­ci­o­nais
  • Firebase do Google: Excelente opção para apli­ca­ções móveis e web
  • Apache Cassandra: Ideal para ar­ma­ze­na­mento e ge­ren­ci­a­mento de grandes volumes de dados

As vantagens es­pe­cí­fi­cas de cada uma dessas al­ter­na­ti­vas ao DynamoDB são de­ta­lha­das no guia indicado no link.

Ir para o menu principal